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/testing/v1/test_execution.proto
20
21package testing
22
23import (
24	context "context"
25	reflect "reflect"
26	sync "sync"
27
28	_ "google.golang.org/genproto/googleapis/api/annotations"
29	grpc "google.golang.org/grpc"
30	codes "google.golang.org/grpc/codes"
31	status "google.golang.org/grpc/status"
32	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
33	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
34	durationpb "google.golang.org/protobuf/types/known/durationpb"
35	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
36)
37
38const (
39	// Verify that this generated code is sufficiently up-to-date.
40	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
41	// Verify that runtime/protoimpl is sufficiently up-to-date.
42	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
43)
44
45// Specifies how to execute the test.
46type OrchestratorOption int32
47
48const (
49	// Default value: the server will choose the mode. Currently implies that
50	// the test will run without the orchestrator. In the future,
51	// all instrumentation tests will be run with the orchestrator.
52	// Using the orchestrator is highly encouraged because of all the benefits it
53	// offers.
54	OrchestratorOption_ORCHESTRATOR_OPTION_UNSPECIFIED OrchestratorOption = 0
55	// Run test using orchestrator.
56	// ** Only compatible with AndroidJUnitRunner version 1.0 or higher! **
57	// Recommended.
58	OrchestratorOption_USE_ORCHESTRATOR OrchestratorOption = 1
59	// Run test without using orchestrator.
60	OrchestratorOption_DO_NOT_USE_ORCHESTRATOR OrchestratorOption = 2
61)
62
63// Enum value maps for OrchestratorOption.
64var (
65	OrchestratorOption_name = map[int32]string{
66		0: "ORCHESTRATOR_OPTION_UNSPECIFIED",
67		1: "USE_ORCHESTRATOR",
68		2: "DO_NOT_USE_ORCHESTRATOR",
69	}
70	OrchestratorOption_value = map[string]int32{
71		"ORCHESTRATOR_OPTION_UNSPECIFIED": 0,
72		"USE_ORCHESTRATOR":                1,
73		"DO_NOT_USE_ORCHESTRATOR":         2,
74	}
75)
76
77func (x OrchestratorOption) Enum() *OrchestratorOption {
78	p := new(OrchestratorOption)
79	*p = x
80	return p
81}
82
83func (x OrchestratorOption) String() string {
84	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
85}
86
87func (OrchestratorOption) Descriptor() protoreflect.EnumDescriptor {
88	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[0].Descriptor()
89}
90
91func (OrchestratorOption) Type() protoreflect.EnumType {
92	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[0]
93}
94
95func (x OrchestratorOption) Number() protoreflect.EnumNumber {
96	return protoreflect.EnumNumber(x)
97}
98
99// Deprecated: Use OrchestratorOption.Descriptor instead.
100func (OrchestratorOption) EnumDescriptor() ([]byte, []int) {
101	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{0}
102}
103
104// Actions which Robo can perform on UI elements.
105type RoboActionType int32
106
107const (
108	// DO NOT USE. For proto versioning only.
109	RoboActionType_ACTION_TYPE_UNSPECIFIED RoboActionType = 0
110	// Direct Robo to click on the specified element. No-op if specified element
111	// is not clickable.
112	RoboActionType_SINGLE_CLICK RoboActionType = 1
113	// Direct Robo to enter text on the specified element. No-op if specified
114	// element is not enabled or does not allow text entry.
115	RoboActionType_ENTER_TEXT RoboActionType = 2
116	// Direct Robo to ignore interactions with a specific element.
117	RoboActionType_IGNORE RoboActionType = 3
118)
119
120// Enum value maps for RoboActionType.
121var (
122	RoboActionType_name = map[int32]string{
123		0: "ACTION_TYPE_UNSPECIFIED",
124		1: "SINGLE_CLICK",
125		2: "ENTER_TEXT",
126		3: "IGNORE",
127	}
128	RoboActionType_value = map[string]int32{
129		"ACTION_TYPE_UNSPECIFIED": 0,
130		"SINGLE_CLICK":            1,
131		"ENTER_TEXT":              2,
132		"IGNORE":                  3,
133	}
134)
135
136func (x RoboActionType) Enum() *RoboActionType {
137	p := new(RoboActionType)
138	*p = x
139	return p
140}
141
142func (x RoboActionType) String() string {
143	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
144}
145
146func (RoboActionType) Descriptor() protoreflect.EnumDescriptor {
147	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[1].Descriptor()
148}
149
150func (RoboActionType) Type() protoreflect.EnumType {
151	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[1]
152}
153
154func (x RoboActionType) Number() protoreflect.EnumNumber {
155	return protoreflect.EnumNumber(x)
156}
157
158// Deprecated: Use RoboActionType.Descriptor instead.
159func (RoboActionType) EnumDescriptor() ([]byte, []int) {
160	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{1}
161}
162
163// The detailed reason that a Matrix was deemed INVALID.
164type InvalidMatrixDetails int32
165
166const (
167	// Do not use. For proto versioning only.
168	InvalidMatrixDetails_INVALID_MATRIX_DETAILS_UNSPECIFIED InvalidMatrixDetails = 0
169	// The matrix is INVALID, but there are no further details available.
170	InvalidMatrixDetails_DETAILS_UNAVAILABLE InvalidMatrixDetails = 1
171	// The input app APK could not be parsed.
172	InvalidMatrixDetails_MALFORMED_APK InvalidMatrixDetails = 2
173	// The input test APK could not be parsed.
174	InvalidMatrixDetails_MALFORMED_TEST_APK InvalidMatrixDetails = 3
175	// The AndroidManifest.xml could not be found.
176	InvalidMatrixDetails_NO_MANIFEST InvalidMatrixDetails = 4
177	// The APK manifest does not declare a package name.
178	InvalidMatrixDetails_NO_PACKAGE_NAME InvalidMatrixDetails = 5
179	// The APK application ID (aka package name) is invalid.
180	// See also
181	// https://developer.android.com/studio/build/application-id
182	InvalidMatrixDetails_INVALID_PACKAGE_NAME InvalidMatrixDetails = 31
183	// The test package and app package are the same.
184	InvalidMatrixDetails_TEST_SAME_AS_APP InvalidMatrixDetails = 6
185	// The test apk does not declare an instrumentation.
186	InvalidMatrixDetails_NO_INSTRUMENTATION InvalidMatrixDetails = 7
187	// The input app apk does not have a signature.
188	InvalidMatrixDetails_NO_SIGNATURE InvalidMatrixDetails = 20
189	// The test runner class specified by user or in the test APK's manifest file
190	// is not compatible with Android Test Orchestrator.
191	// Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
192	// higher.
193	// Orchestrator can be disabled by using DO_NOT_USE_ORCHESTRATOR
194	// OrchestratorOption.
195	InvalidMatrixDetails_INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE InvalidMatrixDetails = 18
196	// The test APK does not contain the test runner class specified by user or in
197	// the manifest file.
198	// This can be caused by either of the following reasons:
199	// - the user provided a runner class name that's incorrect, or
200	// - the test runner isn't built into the test APK (might be in the app APK
201	// instead).
202	InvalidMatrixDetails_NO_TEST_RUNNER_CLASS InvalidMatrixDetails = 19
203	// A main launcher activity could not be found.
204	InvalidMatrixDetails_NO_LAUNCHER_ACTIVITY InvalidMatrixDetails = 8
205	// The app declares one or more permissions that are not allowed.
206	InvalidMatrixDetails_FORBIDDEN_PERMISSIONS InvalidMatrixDetails = 9
207	// There is a conflict in the provided robo_directives.
208	InvalidMatrixDetails_INVALID_ROBO_DIRECTIVES InvalidMatrixDetails = 10
209	// There is at least one invalid resource name in the provided
210	// robo directives
211	InvalidMatrixDetails_INVALID_RESOURCE_NAME InvalidMatrixDetails = 33
212	// Invalid definition of action in the robo directives
213	// (e.g. a click or ignore action includes an input text field)
214	InvalidMatrixDetails_INVALID_DIRECTIVE_ACTION InvalidMatrixDetails = 34
215	// There is no test loop intent filter, or the one that is given is
216	// not formatted correctly.
217	InvalidMatrixDetails_TEST_LOOP_INTENT_FILTER_NOT_FOUND InvalidMatrixDetails = 12
218	// The request contains a scenario label that was not declared in the
219	// manifest.
220	InvalidMatrixDetails_SCENARIO_LABEL_NOT_DECLARED InvalidMatrixDetails = 13
221	// There was an error when parsing a label's value.
222	InvalidMatrixDetails_SCENARIO_LABEL_MALFORMED InvalidMatrixDetails = 14
223	// The request contains a scenario number that was not declared in the
224	// manifest.
225	InvalidMatrixDetails_SCENARIO_NOT_DECLARED InvalidMatrixDetails = 15
226	// Device administrator applications are not allowed.
227	InvalidMatrixDetails_DEVICE_ADMIN_RECEIVER InvalidMatrixDetails = 17
228	// The zipped XCTest was malformed. The zip did not contain a single
229	// .xctestrun file and the contents of the DerivedData/Build/Products
230	// directory.
231	InvalidMatrixDetails_MALFORMED_XC_TEST_ZIP InvalidMatrixDetails = 11
232	// The zipped XCTest was built for the iOS simulator rather than for a
233	// physical device.
234	InvalidMatrixDetails_BUILT_FOR_IOS_SIMULATOR InvalidMatrixDetails = 24
235	// The .xctestrun file did not specify any test targets.
236	InvalidMatrixDetails_NO_TESTS_IN_XC_TEST_ZIP InvalidMatrixDetails = 25
237	// One or more of the test targets defined in the .xctestrun file specifies
238	// "UseDestinationArtifacts", which is disallowed.
239	InvalidMatrixDetails_USE_DESTINATION_ARTIFACTS InvalidMatrixDetails = 26
240	// XC tests which run on physical devices must have
241	// "IsAppHostedTestBundle" == "true" in the xctestrun file.
242	InvalidMatrixDetails_TEST_NOT_APP_HOSTED InvalidMatrixDetails = 28
243	// An Info.plist file in the XCTest zip could not be parsed.
244	InvalidMatrixDetails_PLIST_CANNOT_BE_PARSED InvalidMatrixDetails = 30
245	// The APK is marked as "testOnly".
246	// Deprecated and not currently used.
247	//
248	// Deprecated: Do not use.
249	InvalidMatrixDetails_TEST_ONLY_APK InvalidMatrixDetails = 21
250	// The input IPA could not be parsed.
251	InvalidMatrixDetails_MALFORMED_IPA InvalidMatrixDetails = 22
252	// The application doesn't register the game loop URL scheme.
253	InvalidMatrixDetails_MISSING_URL_SCHEME InvalidMatrixDetails = 35
254	// The iOS application bundle (.app) couldn't be processed.
255	InvalidMatrixDetails_MALFORMED_APP_BUNDLE InvalidMatrixDetails = 36
256	// APK contains no code.
257	// See also
258	// https://developer.android.com/guide/topics/manifest/application-element.html#code
259	InvalidMatrixDetails_NO_CODE_APK InvalidMatrixDetails = 23
260	// Either the provided input APK path was malformed,
261	// the APK file does not exist, or the user does not have permission to
262	// access the APK file.
263	InvalidMatrixDetails_INVALID_INPUT_APK InvalidMatrixDetails = 27
264	// APK is built for a preview SDK which is unsupported
265	InvalidMatrixDetails_INVALID_APK_PREVIEW_SDK InvalidMatrixDetails = 29
266)
267
268// Enum value maps for InvalidMatrixDetails.
269var (
270	InvalidMatrixDetails_name = map[int32]string{
271		0:  "INVALID_MATRIX_DETAILS_UNSPECIFIED",
272		1:  "DETAILS_UNAVAILABLE",
273		2:  "MALFORMED_APK",
274		3:  "MALFORMED_TEST_APK",
275		4:  "NO_MANIFEST",
276		5:  "NO_PACKAGE_NAME",
277		31: "INVALID_PACKAGE_NAME",
278		6:  "TEST_SAME_AS_APP",
279		7:  "NO_INSTRUMENTATION",
280		20: "NO_SIGNATURE",
281		18: "INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE",
282		19: "NO_TEST_RUNNER_CLASS",
283		8:  "NO_LAUNCHER_ACTIVITY",
284		9:  "FORBIDDEN_PERMISSIONS",
285		10: "INVALID_ROBO_DIRECTIVES",
286		33: "INVALID_RESOURCE_NAME",
287		34: "INVALID_DIRECTIVE_ACTION",
288		12: "TEST_LOOP_INTENT_FILTER_NOT_FOUND",
289		13: "SCENARIO_LABEL_NOT_DECLARED",
290		14: "SCENARIO_LABEL_MALFORMED",
291		15: "SCENARIO_NOT_DECLARED",
292		17: "DEVICE_ADMIN_RECEIVER",
293		11: "MALFORMED_XC_TEST_ZIP",
294		24: "BUILT_FOR_IOS_SIMULATOR",
295		25: "NO_TESTS_IN_XC_TEST_ZIP",
296		26: "USE_DESTINATION_ARTIFACTS",
297		28: "TEST_NOT_APP_HOSTED",
298		30: "PLIST_CANNOT_BE_PARSED",
299		21: "TEST_ONLY_APK",
300		22: "MALFORMED_IPA",
301		35: "MISSING_URL_SCHEME",
302		36: "MALFORMED_APP_BUNDLE",
303		23: "NO_CODE_APK",
304		27: "INVALID_INPUT_APK",
305		29: "INVALID_APK_PREVIEW_SDK",
306	}
307	InvalidMatrixDetails_value = map[string]int32{
308		"INVALID_MATRIX_DETAILS_UNSPECIFIED":        0,
309		"DETAILS_UNAVAILABLE":                       1,
310		"MALFORMED_APK":                             2,
311		"MALFORMED_TEST_APK":                        3,
312		"NO_MANIFEST":                               4,
313		"NO_PACKAGE_NAME":                           5,
314		"INVALID_PACKAGE_NAME":                      31,
315		"TEST_SAME_AS_APP":                          6,
316		"NO_INSTRUMENTATION":                        7,
317		"NO_SIGNATURE":                              20,
318		"INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE": 18,
319		"NO_TEST_RUNNER_CLASS":                      19,
320		"NO_LAUNCHER_ACTIVITY":                      8,
321		"FORBIDDEN_PERMISSIONS":                     9,
322		"INVALID_ROBO_DIRECTIVES":                   10,
323		"INVALID_RESOURCE_NAME":                     33,
324		"INVALID_DIRECTIVE_ACTION":                  34,
325		"TEST_LOOP_INTENT_FILTER_NOT_FOUND":         12,
326		"SCENARIO_LABEL_NOT_DECLARED":               13,
327		"SCENARIO_LABEL_MALFORMED":                  14,
328		"SCENARIO_NOT_DECLARED":                     15,
329		"DEVICE_ADMIN_RECEIVER":                     17,
330		"MALFORMED_XC_TEST_ZIP":                     11,
331		"BUILT_FOR_IOS_SIMULATOR":                   24,
332		"NO_TESTS_IN_XC_TEST_ZIP":                   25,
333		"USE_DESTINATION_ARTIFACTS":                 26,
334		"TEST_NOT_APP_HOSTED":                       28,
335		"PLIST_CANNOT_BE_PARSED":                    30,
336		"TEST_ONLY_APK":                             21,
337		"MALFORMED_IPA":                             22,
338		"MISSING_URL_SCHEME":                        35,
339		"MALFORMED_APP_BUNDLE":                      36,
340		"NO_CODE_APK":                               23,
341		"INVALID_INPUT_APK":                         27,
342		"INVALID_APK_PREVIEW_SDK":                   29,
343	}
344)
345
346func (x InvalidMatrixDetails) Enum() *InvalidMatrixDetails {
347	p := new(InvalidMatrixDetails)
348	*p = x
349	return p
350}
351
352func (x InvalidMatrixDetails) String() string {
353	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
354}
355
356func (InvalidMatrixDetails) Descriptor() protoreflect.EnumDescriptor {
357	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[2].Descriptor()
358}
359
360func (InvalidMatrixDetails) Type() protoreflect.EnumType {
361	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[2]
362}
363
364func (x InvalidMatrixDetails) Number() protoreflect.EnumNumber {
365	return protoreflect.EnumNumber(x)
366}
367
368// Deprecated: Use InvalidMatrixDetails.Descriptor instead.
369func (InvalidMatrixDetails) EnumDescriptor() ([]byte, []int) {
370	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{2}
371}
372
373// The state (i.e., progress) of a test execution or matrix.
374type TestState int32
375
376const (
377	// Do not use.  For proto versioning only.
378	TestState_TEST_STATE_UNSPECIFIED TestState = 0
379	// The execution or matrix is being validated.
380	TestState_VALIDATING TestState = 8
381	// The execution or matrix is waiting for resources to become available.
382	TestState_PENDING TestState = 1
383	// The execution is currently being processed.
384	//
385	// Can only be set on an execution.
386	TestState_RUNNING TestState = 2
387	// The execution or matrix has terminated normally.
388	//
389	// On a matrix this means that the matrix level processing completed normally,
390	// but individual executions may be in an ERROR state.
391	TestState_FINISHED TestState = 3
392	// The execution or matrix has stopped because it encountered an
393	// infrastructure failure.
394	TestState_ERROR TestState = 4
395	// The execution was not run because it corresponds to a unsupported
396	// environment.
397	//
398	// Can only be set on an execution.
399	TestState_UNSUPPORTED_ENVIRONMENT TestState = 5
400	// The execution was not run because the provided inputs are incompatible with
401	// the requested environment.
402	//
403	// Example: requested AndroidVersion is lower than APK's minSdkVersion
404	//
405	// Can only be set on an execution.
406	TestState_INCOMPATIBLE_ENVIRONMENT TestState = 9
407	// The execution was not run because the provided inputs are incompatible with
408	// the requested architecture.
409	//
410	// Example: requested device does not support running the native code in
411	// the supplied APK
412	//
413	// Can only be set on an execution.
414	TestState_INCOMPATIBLE_ARCHITECTURE TestState = 10
415	// The user cancelled the execution.
416	//
417	// Can only be set on an execution.
418	TestState_CANCELLED TestState = 6
419	// The execution or matrix was not run because the provided inputs are not
420	// valid.
421	//
422	// Examples: input file is not of the expected type, is malformed/corrupt, or
423	// was flagged as malware
424	TestState_INVALID TestState = 7
425)
426
427// Enum value maps for TestState.
428var (
429	TestState_name = map[int32]string{
430		0:  "TEST_STATE_UNSPECIFIED",
431		8:  "VALIDATING",
432		1:  "PENDING",
433		2:  "RUNNING",
434		3:  "FINISHED",
435		4:  "ERROR",
436		5:  "UNSUPPORTED_ENVIRONMENT",
437		9:  "INCOMPATIBLE_ENVIRONMENT",
438		10: "INCOMPATIBLE_ARCHITECTURE",
439		6:  "CANCELLED",
440		7:  "INVALID",
441	}
442	TestState_value = map[string]int32{
443		"TEST_STATE_UNSPECIFIED":    0,
444		"VALIDATING":                8,
445		"PENDING":                   1,
446		"RUNNING":                   2,
447		"FINISHED":                  3,
448		"ERROR":                     4,
449		"UNSUPPORTED_ENVIRONMENT":   5,
450		"INCOMPATIBLE_ENVIRONMENT":  9,
451		"INCOMPATIBLE_ARCHITECTURE": 10,
452		"CANCELLED":                 6,
453		"INVALID":                   7,
454	}
455)
456
457func (x TestState) Enum() *TestState {
458	p := new(TestState)
459	*p = x
460	return p
461}
462
463func (x TestState) String() string {
464	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
465}
466
467func (TestState) Descriptor() protoreflect.EnumDescriptor {
468	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[3].Descriptor()
469}
470
471func (TestState) Type() protoreflect.EnumType {
472	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[3]
473}
474
475func (x TestState) Number() protoreflect.EnumNumber {
476	return protoreflect.EnumNumber(x)
477}
478
479// Deprecated: Use TestState.Descriptor instead.
480func (TestState) EnumDescriptor() ([]byte, []int) {
481	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{3}
482}
483
484// Outcome summary for a finished test matrix.
485type OutcomeSummary int32
486
487const (
488	// Do not use. For proto versioning only.
489	OutcomeSummary_OUTCOME_SUMMARY_UNSPECIFIED OutcomeSummary = 0
490	// The test matrix run was successful, for instance:
491	// - All the test cases passed.
492	// - Robo did not detect a crash of the application under test.
493	OutcomeSummary_SUCCESS OutcomeSummary = 1
494	// A run failed, for instance:
495	// - One or more test case failed.
496	// - A test timed out.
497	// - The application under test crashed.
498	OutcomeSummary_FAILURE OutcomeSummary = 2
499	// Something unexpected happened. The run should still be considered
500	// unsuccessful but this is likely a transient problem and re-running the
501	// test might be successful.
502	OutcomeSummary_INCONCLUSIVE OutcomeSummary = 3
503	// All tests were skipped, for instance:
504	// - All device configurations were incompatible.
505	OutcomeSummary_SKIPPED OutcomeSummary = 4
506)
507
508// Enum value maps for OutcomeSummary.
509var (
510	OutcomeSummary_name = map[int32]string{
511		0: "OUTCOME_SUMMARY_UNSPECIFIED",
512		1: "SUCCESS",
513		2: "FAILURE",
514		3: "INCONCLUSIVE",
515		4: "SKIPPED",
516	}
517	OutcomeSummary_value = map[string]int32{
518		"OUTCOME_SUMMARY_UNSPECIFIED": 0,
519		"SUCCESS":                     1,
520		"FAILURE":                     2,
521		"INCONCLUSIVE":                3,
522		"SKIPPED":                     4,
523	}
524)
525
526func (x OutcomeSummary) Enum() *OutcomeSummary {
527	p := new(OutcomeSummary)
528	*p = x
529	return p
530}
531
532func (x OutcomeSummary) String() string {
533	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
534}
535
536func (OutcomeSummary) Descriptor() protoreflect.EnumDescriptor {
537	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[4].Descriptor()
538}
539
540func (OutcomeSummary) Type() protoreflect.EnumType {
541	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[4]
542}
543
544func (x OutcomeSummary) Number() protoreflect.EnumNumber {
545	return protoreflect.EnumNumber(x)
546}
547
548// Deprecated: Use OutcomeSummary.Descriptor instead.
549func (OutcomeSummary) EnumDescriptor() ([]byte, []int) {
550	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{4}
551}
552
553// Possible invalid request reasons.
554type InvalidRequestDetail_Reason int32
555
556const (
557	// No reason has been specified - the default.
558	InvalidRequestDetail_REASON_UNSPECIFIED InvalidRequestDetail_Reason = 0
559	// The request is not valid.
560	InvalidRequestDetail_REQUEST_INVALID InvalidRequestDetail_Reason = 1
561	// One or more of the resources specified in the request is too large.
562	InvalidRequestDetail_RESOURCE_TOO_BIG InvalidRequestDetail_Reason = 2
563	// One or more resources specified in the request cannot be found.
564	InvalidRequestDetail_RESOURCE_NOT_FOUND InvalidRequestDetail_Reason = 3
565	// This request is not (currently) supported.
566	InvalidRequestDetail_UNSUPPORTED InvalidRequestDetail_Reason = 4
567	// This request is not currently implemented.
568	InvalidRequestDetail_NOT_IMPLEMENTED InvalidRequestDetail_Reason = 5
569)
570
571// Enum value maps for InvalidRequestDetail_Reason.
572var (
573	InvalidRequestDetail_Reason_name = map[int32]string{
574		0: "REASON_UNSPECIFIED",
575		1: "REQUEST_INVALID",
576		2: "RESOURCE_TOO_BIG",
577		3: "RESOURCE_NOT_FOUND",
578		4: "UNSUPPORTED",
579		5: "NOT_IMPLEMENTED",
580	}
581	InvalidRequestDetail_Reason_value = map[string]int32{
582		"REASON_UNSPECIFIED": 0,
583		"REQUEST_INVALID":    1,
584		"RESOURCE_TOO_BIG":   2,
585		"RESOURCE_NOT_FOUND": 3,
586		"UNSUPPORTED":        4,
587		"NOT_IMPLEMENTED":    5,
588	}
589)
590
591func (x InvalidRequestDetail_Reason) Enum() *InvalidRequestDetail_Reason {
592	p := new(InvalidRequestDetail_Reason)
593	*p = x
594	return p
595}
596
597func (x InvalidRequestDetail_Reason) String() string {
598	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
599}
600
601func (InvalidRequestDetail_Reason) Descriptor() protoreflect.EnumDescriptor {
602	return file_google_devtools_testing_v1_test_execution_proto_enumTypes[5].Descriptor()
603}
604
605func (InvalidRequestDetail_Reason) Type() protoreflect.EnumType {
606	return &file_google_devtools_testing_v1_test_execution_proto_enumTypes[5]
607}
608
609func (x InvalidRequestDetail_Reason) Number() protoreflect.EnumNumber {
610	return protoreflect.EnumNumber(x)
611}
612
613// Deprecated: Use InvalidRequestDetail_Reason.Descriptor instead.
614func (InvalidRequestDetail_Reason) EnumDescriptor() ([]byte, []int) {
615	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{40, 0}
616}
617
618// TestMatrix captures all details about a test. It contains the environment
619// configuration, test specification, test executions and overall state and
620// outcome.
621type TestMatrix struct {
622	state         protoimpl.MessageState
623	sizeCache     protoimpl.SizeCache
624	unknownFields protoimpl.UnknownFields
625
626	// Output only. Unique id set by the service.
627	TestMatrixId string `protobuf:"bytes,1,opt,name=test_matrix_id,json=testMatrixId,proto3" json:"test_matrix_id,omitempty"`
628	// The cloud project that owns the test matrix.
629	ProjectId string `protobuf:"bytes,7,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
630	// Information about the client which invoked the test.
631	ClientInfo *ClientInfo `protobuf:"bytes,10,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"`
632	// Required. How to run the test.
633	TestSpecification *TestSpecification `protobuf:"bytes,3,opt,name=test_specification,json=testSpecification,proto3" json:"test_specification,omitempty"`
634	// Required. The devices the tests are being executed on.
635	EnvironmentMatrix *EnvironmentMatrix `protobuf:"bytes,4,opt,name=environment_matrix,json=environmentMatrix,proto3" json:"environment_matrix,omitempty"`
636	// Output only. The list of test executions that the service creates for
637	// this matrix.
638	TestExecutions []*TestExecution `protobuf:"bytes,5,rep,name=test_executions,json=testExecutions,proto3" json:"test_executions,omitempty"`
639	// Required. Where the results for the matrix are written.
640	ResultStorage *ResultStorage `protobuf:"bytes,6,opt,name=result_storage,json=resultStorage,proto3" json:"result_storage,omitempty"`
641	// Output only. Indicates the current progress of the test matrix.
642	State TestState `protobuf:"varint,8,opt,name=state,proto3,enum=google.devtools.testing.v1.TestState" json:"state,omitempty"`
643	// Output only. The time this test matrix was initially created.
644	Timestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
645	// Output only. Describes why the matrix is considered invalid.
646	// Only useful for matrices in the INVALID state.
647	InvalidMatrixDetails InvalidMatrixDetails `protobuf:"varint,11,opt,name=invalid_matrix_details,json=invalidMatrixDetails,proto3,enum=google.devtools.testing.v1.InvalidMatrixDetails" json:"invalid_matrix_details,omitempty"`
648	// The number of times a TestExecution should be re-attempted if one or more
649	// of its test cases fail for any reason.
650	// The maximum number of reruns allowed is 10.
651	//
652	// Default is 0, which implies no reruns.
653	FlakyTestAttempts int32 `protobuf:"varint,13,opt,name=flaky_test_attempts,json=flakyTestAttempts,proto3" json:"flaky_test_attempts,omitempty"`
654	// Output Only. The overall outcome of the test.
655	// Only set when the test matrix state is FINISHED.
656	OutcomeSummary OutcomeSummary `protobuf:"varint,14,opt,name=outcome_summary,json=outcomeSummary,proto3,enum=google.devtools.testing.v1.OutcomeSummary" json:"outcome_summary,omitempty"`
657	// If true, only a single attempt at most will be made to run each
658	// execution/shard in the matrix. Flaky test attempts are not affected.
659	//
660	// Normally, 2 or more attempts are made if a potential infrastructure issue
661	// is detected.
662	//
663	// This feature is for latency sensitive workloads. The incidence of
664	// execution failures may be significantly greater for fail-fast matrices
665	// and support is more limited because of that expectation.
666	FailFast bool `protobuf:"varint,17,opt,name=fail_fast,json=failFast,proto3" json:"fail_fast,omitempty"`
667}
668
669func (x *TestMatrix) Reset() {
670	*x = TestMatrix{}
671	if protoimpl.UnsafeEnabled {
672		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[0]
673		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
674		ms.StoreMessageInfo(mi)
675	}
676}
677
678func (x *TestMatrix) String() string {
679	return protoimpl.X.MessageStringOf(x)
680}
681
682func (*TestMatrix) ProtoMessage() {}
683
684func (x *TestMatrix) ProtoReflect() protoreflect.Message {
685	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[0]
686	if protoimpl.UnsafeEnabled && x != nil {
687		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
688		if ms.LoadMessageInfo() == nil {
689			ms.StoreMessageInfo(mi)
690		}
691		return ms
692	}
693	return mi.MessageOf(x)
694}
695
696// Deprecated: Use TestMatrix.ProtoReflect.Descriptor instead.
697func (*TestMatrix) Descriptor() ([]byte, []int) {
698	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{0}
699}
700
701func (x *TestMatrix) GetTestMatrixId() string {
702	if x != nil {
703		return x.TestMatrixId
704	}
705	return ""
706}
707
708func (x *TestMatrix) GetProjectId() string {
709	if x != nil {
710		return x.ProjectId
711	}
712	return ""
713}
714
715func (x *TestMatrix) GetClientInfo() *ClientInfo {
716	if x != nil {
717		return x.ClientInfo
718	}
719	return nil
720}
721
722func (x *TestMatrix) GetTestSpecification() *TestSpecification {
723	if x != nil {
724		return x.TestSpecification
725	}
726	return nil
727}
728
729func (x *TestMatrix) GetEnvironmentMatrix() *EnvironmentMatrix {
730	if x != nil {
731		return x.EnvironmentMatrix
732	}
733	return nil
734}
735
736func (x *TestMatrix) GetTestExecutions() []*TestExecution {
737	if x != nil {
738		return x.TestExecutions
739	}
740	return nil
741}
742
743func (x *TestMatrix) GetResultStorage() *ResultStorage {
744	if x != nil {
745		return x.ResultStorage
746	}
747	return nil
748}
749
750func (x *TestMatrix) GetState() TestState {
751	if x != nil {
752		return x.State
753	}
754	return TestState_TEST_STATE_UNSPECIFIED
755}
756
757func (x *TestMatrix) GetTimestamp() *timestamppb.Timestamp {
758	if x != nil {
759		return x.Timestamp
760	}
761	return nil
762}
763
764func (x *TestMatrix) GetInvalidMatrixDetails() InvalidMatrixDetails {
765	if x != nil {
766		return x.InvalidMatrixDetails
767	}
768	return InvalidMatrixDetails_INVALID_MATRIX_DETAILS_UNSPECIFIED
769}
770
771func (x *TestMatrix) GetFlakyTestAttempts() int32 {
772	if x != nil {
773		return x.FlakyTestAttempts
774	}
775	return 0
776}
777
778func (x *TestMatrix) GetOutcomeSummary() OutcomeSummary {
779	if x != nil {
780		return x.OutcomeSummary
781	}
782	return OutcomeSummary_OUTCOME_SUMMARY_UNSPECIFIED
783}
784
785func (x *TestMatrix) GetFailFast() bool {
786	if x != nil {
787		return x.FailFast
788	}
789	return false
790}
791
792// A single test executed in a single environment.
793type TestExecution struct {
794	state         protoimpl.MessageState
795	sizeCache     protoimpl.SizeCache
796	unknownFields protoimpl.UnknownFields
797
798	// Output only. Unique id set by the service.
799	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
800	// Output only. Id of the containing TestMatrix.
801	MatrixId string `protobuf:"bytes,9,opt,name=matrix_id,json=matrixId,proto3" json:"matrix_id,omitempty"`
802	// Output only. The cloud project that owns the test execution.
803	ProjectId string `protobuf:"bytes,10,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
804	// Output only. How to run the test.
805	TestSpecification *TestSpecification `protobuf:"bytes,3,opt,name=test_specification,json=testSpecification,proto3" json:"test_specification,omitempty"`
806	// Output only. Details about the shard.
807	Shard *Shard `protobuf:"bytes,12,opt,name=shard,proto3" json:"shard,omitempty"`
808	// Output only. How the host machine(s) are configured.
809	Environment *Environment `protobuf:"bytes,4,opt,name=environment,proto3" json:"environment,omitempty"`
810	// Output only. Indicates the current progress of the test execution
811	// (e.g., FINISHED).
812	State TestState `protobuf:"varint,5,opt,name=state,proto3,enum=google.devtools.testing.v1.TestState" json:"state,omitempty"`
813	// Output only. Where the results for this execution are written.
814	ToolResultsStep *ToolResultsStep `protobuf:"bytes,11,opt,name=tool_results_step,json=toolResultsStep,proto3" json:"tool_results_step,omitempty"`
815	// Output only. The time this test execution was initially created.
816	Timestamp *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
817	// Output only. Additional details about the running test.
818	TestDetails *TestDetails `protobuf:"bytes,8,opt,name=test_details,json=testDetails,proto3" json:"test_details,omitempty"`
819}
820
821func (x *TestExecution) Reset() {
822	*x = TestExecution{}
823	if protoimpl.UnsafeEnabled {
824		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[1]
825		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
826		ms.StoreMessageInfo(mi)
827	}
828}
829
830func (x *TestExecution) String() string {
831	return protoimpl.X.MessageStringOf(x)
832}
833
834func (*TestExecution) ProtoMessage() {}
835
836func (x *TestExecution) ProtoReflect() protoreflect.Message {
837	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[1]
838	if protoimpl.UnsafeEnabled && x != nil {
839		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
840		if ms.LoadMessageInfo() == nil {
841			ms.StoreMessageInfo(mi)
842		}
843		return ms
844	}
845	return mi.MessageOf(x)
846}
847
848// Deprecated: Use TestExecution.ProtoReflect.Descriptor instead.
849func (*TestExecution) Descriptor() ([]byte, []int) {
850	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{1}
851}
852
853func (x *TestExecution) GetId() string {
854	if x != nil {
855		return x.Id
856	}
857	return ""
858}
859
860func (x *TestExecution) GetMatrixId() string {
861	if x != nil {
862		return x.MatrixId
863	}
864	return ""
865}
866
867func (x *TestExecution) GetProjectId() string {
868	if x != nil {
869		return x.ProjectId
870	}
871	return ""
872}
873
874func (x *TestExecution) GetTestSpecification() *TestSpecification {
875	if x != nil {
876		return x.TestSpecification
877	}
878	return nil
879}
880
881func (x *TestExecution) GetShard() *Shard {
882	if x != nil {
883		return x.Shard
884	}
885	return nil
886}
887
888func (x *TestExecution) GetEnvironment() *Environment {
889	if x != nil {
890		return x.Environment
891	}
892	return nil
893}
894
895func (x *TestExecution) GetState() TestState {
896	if x != nil {
897		return x.State
898	}
899	return TestState_TEST_STATE_UNSPECIFIED
900}
901
902func (x *TestExecution) GetToolResultsStep() *ToolResultsStep {
903	if x != nil {
904		return x.ToolResultsStep
905	}
906	return nil
907}
908
909func (x *TestExecution) GetTimestamp() *timestamppb.Timestamp {
910	if x != nil {
911		return x.Timestamp
912	}
913	return nil
914}
915
916func (x *TestExecution) GetTestDetails() *TestDetails {
917	if x != nil {
918		return x.TestDetails
919	}
920	return nil
921}
922
923// A description of how to run the test.
924type TestSpecification struct {
925	state         protoimpl.MessageState
926	sizeCache     protoimpl.SizeCache
927	unknownFields protoimpl.UnknownFields
928
929	// Max time a test execution is allowed to run before it is
930	// automatically cancelled.
931	// The default value is 5 min.
932	TestTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=test_timeout,json=testTimeout,proto3" json:"test_timeout,omitempty"`
933	// Test setup requirements.
934	//
935	// Types that are assignable to Setup:
936	//	*TestSpecification_TestSetup
937	//	*TestSpecification_IosTestSetup
938	Setup isTestSpecification_Setup `protobuf_oneof:"setup"`
939	// Required. The type of test to run.
940	//
941	// Types that are assignable to Test:
942	//	*TestSpecification_AndroidInstrumentationTest
943	//	*TestSpecification_AndroidRoboTest
944	//	*TestSpecification_AndroidTestLoop
945	//	*TestSpecification_IosXcTest
946	//	*TestSpecification_IosTestLoop
947	Test isTestSpecification_Test `protobuf_oneof:"test"`
948	// Disables video recording. May reduce test latency.
949	DisableVideoRecording bool `protobuf:"varint,10,opt,name=disable_video_recording,json=disableVideoRecording,proto3" json:"disable_video_recording,omitempty"`
950	// Disables performance metrics recording. May reduce test latency.
951	DisablePerformanceMetrics bool `protobuf:"varint,11,opt,name=disable_performance_metrics,json=disablePerformanceMetrics,proto3" json:"disable_performance_metrics,omitempty"`
952}
953
954func (x *TestSpecification) Reset() {
955	*x = TestSpecification{}
956	if protoimpl.UnsafeEnabled {
957		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[2]
958		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
959		ms.StoreMessageInfo(mi)
960	}
961}
962
963func (x *TestSpecification) String() string {
964	return protoimpl.X.MessageStringOf(x)
965}
966
967func (*TestSpecification) ProtoMessage() {}
968
969func (x *TestSpecification) ProtoReflect() protoreflect.Message {
970	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[2]
971	if protoimpl.UnsafeEnabled && x != nil {
972		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
973		if ms.LoadMessageInfo() == nil {
974			ms.StoreMessageInfo(mi)
975		}
976		return ms
977	}
978	return mi.MessageOf(x)
979}
980
981// Deprecated: Use TestSpecification.ProtoReflect.Descriptor instead.
982func (*TestSpecification) Descriptor() ([]byte, []int) {
983	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{2}
984}
985
986func (x *TestSpecification) GetTestTimeout() *durationpb.Duration {
987	if x != nil {
988		return x.TestTimeout
989	}
990	return nil
991}
992
993func (m *TestSpecification) GetSetup() isTestSpecification_Setup {
994	if m != nil {
995		return m.Setup
996	}
997	return nil
998}
999
1000func (x *TestSpecification) GetTestSetup() *TestSetup {
1001	if x, ok := x.GetSetup().(*TestSpecification_TestSetup); ok {
1002		return x.TestSetup
1003	}
1004	return nil
1005}
1006
1007func (x *TestSpecification) GetIosTestSetup() *IosTestSetup {
1008	if x, ok := x.GetSetup().(*TestSpecification_IosTestSetup); ok {
1009		return x.IosTestSetup
1010	}
1011	return nil
1012}
1013
1014func (m *TestSpecification) GetTest() isTestSpecification_Test {
1015	if m != nil {
1016		return m.Test
1017	}
1018	return nil
1019}
1020
1021func (x *TestSpecification) GetAndroidInstrumentationTest() *AndroidInstrumentationTest {
1022	if x, ok := x.GetTest().(*TestSpecification_AndroidInstrumentationTest); ok {
1023		return x.AndroidInstrumentationTest
1024	}
1025	return nil
1026}
1027
1028func (x *TestSpecification) GetAndroidRoboTest() *AndroidRoboTest {
1029	if x, ok := x.GetTest().(*TestSpecification_AndroidRoboTest); ok {
1030		return x.AndroidRoboTest
1031	}
1032	return nil
1033}
1034
1035func (x *TestSpecification) GetAndroidTestLoop() *AndroidTestLoop {
1036	if x, ok := x.GetTest().(*TestSpecification_AndroidTestLoop); ok {
1037		return x.AndroidTestLoop
1038	}
1039	return nil
1040}
1041
1042func (x *TestSpecification) GetIosXcTest() *IosXcTest {
1043	if x, ok := x.GetTest().(*TestSpecification_IosXcTest); ok {
1044		return x.IosXcTest
1045	}
1046	return nil
1047}
1048
1049func (x *TestSpecification) GetIosTestLoop() *IosTestLoop {
1050	if x, ok := x.GetTest().(*TestSpecification_IosTestLoop); ok {
1051		return x.IosTestLoop
1052	}
1053	return nil
1054}
1055
1056func (x *TestSpecification) GetDisableVideoRecording() bool {
1057	if x != nil {
1058		return x.DisableVideoRecording
1059	}
1060	return false
1061}
1062
1063func (x *TestSpecification) GetDisablePerformanceMetrics() bool {
1064	if x != nil {
1065		return x.DisablePerformanceMetrics
1066	}
1067	return false
1068}
1069
1070type isTestSpecification_Setup interface {
1071	isTestSpecification_Setup()
1072}
1073
1074type TestSpecification_TestSetup struct {
1075	// Test setup requirements for Android e.g. files to install, bootstrap
1076	// scripts.
1077	TestSetup *TestSetup `protobuf:"bytes,6,opt,name=test_setup,json=testSetup,proto3,oneof"`
1078}
1079
1080type TestSpecification_IosTestSetup struct {
1081	// Test setup requirements for iOS.
1082	IosTestSetup *IosTestSetup `protobuf:"bytes,14,opt,name=ios_test_setup,json=iosTestSetup,proto3,oneof"`
1083}
1084
1085func (*TestSpecification_TestSetup) isTestSpecification_Setup() {}
1086
1087func (*TestSpecification_IosTestSetup) isTestSpecification_Setup() {}
1088
1089type isTestSpecification_Test interface {
1090	isTestSpecification_Test()
1091}
1092
1093type TestSpecification_AndroidInstrumentationTest struct {
1094	// An Android instrumentation test.
1095	AndroidInstrumentationTest *AndroidInstrumentationTest `protobuf:"bytes,2,opt,name=android_instrumentation_test,json=androidInstrumentationTest,proto3,oneof"`
1096}
1097
1098type TestSpecification_AndroidRoboTest struct {
1099	// An Android robo test.
1100	AndroidRoboTest *AndroidRoboTest `protobuf:"bytes,3,opt,name=android_robo_test,json=androidRoboTest,proto3,oneof"`
1101}
1102
1103type TestSpecification_AndroidTestLoop struct {
1104	// An Android Application with a Test Loop.
1105	AndroidTestLoop *AndroidTestLoop `protobuf:"bytes,9,opt,name=android_test_loop,json=androidTestLoop,proto3,oneof"`
1106}
1107
1108type TestSpecification_IosXcTest struct {
1109	// An iOS XCTest, via an .xctestrun file.
1110	IosXcTest *IosXcTest `protobuf:"bytes,13,opt,name=ios_xc_test,json=iosXcTest,proto3,oneof"`
1111}
1112
1113type TestSpecification_IosTestLoop struct {
1114	// An iOS application with a test loop.
1115	IosTestLoop *IosTestLoop `protobuf:"bytes,15,opt,name=ios_test_loop,json=iosTestLoop,proto3,oneof"`
1116}
1117
1118func (*TestSpecification_AndroidInstrumentationTest) isTestSpecification_Test() {}
1119
1120func (*TestSpecification_AndroidRoboTest) isTestSpecification_Test() {}
1121
1122func (*TestSpecification_AndroidTestLoop) isTestSpecification_Test() {}
1123
1124func (*TestSpecification_IosXcTest) isTestSpecification_Test() {}
1125
1126func (*TestSpecification_IosTestLoop) isTestSpecification_Test() {}
1127
1128type SystraceSetup struct {
1129	state         protoimpl.MessageState
1130	sizeCache     protoimpl.SizeCache
1131	unknownFields protoimpl.UnknownFields
1132
1133	// Systrace duration in seconds.
1134	// Should be between 1 and 30 seconds. 0 disables systrace.
1135	DurationSeconds int32 `protobuf:"varint,1,opt,name=duration_seconds,json=durationSeconds,proto3" json:"duration_seconds,omitempty"`
1136}
1137
1138func (x *SystraceSetup) Reset() {
1139	*x = SystraceSetup{}
1140	if protoimpl.UnsafeEnabled {
1141		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[3]
1142		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1143		ms.StoreMessageInfo(mi)
1144	}
1145}
1146
1147func (x *SystraceSetup) String() string {
1148	return protoimpl.X.MessageStringOf(x)
1149}
1150
1151func (*SystraceSetup) ProtoMessage() {}
1152
1153func (x *SystraceSetup) ProtoReflect() protoreflect.Message {
1154	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[3]
1155	if protoimpl.UnsafeEnabled && x != nil {
1156		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1157		if ms.LoadMessageInfo() == nil {
1158			ms.StoreMessageInfo(mi)
1159		}
1160		return ms
1161	}
1162	return mi.MessageOf(x)
1163}
1164
1165// Deprecated: Use SystraceSetup.ProtoReflect.Descriptor instead.
1166func (*SystraceSetup) Descriptor() ([]byte, []int) {
1167	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{3}
1168}
1169
1170func (x *SystraceSetup) GetDurationSeconds() int32 {
1171	if x != nil {
1172		return x.DurationSeconds
1173	}
1174	return 0
1175}
1176
1177// A description of how to set up the Android device prior to running the test.
1178type TestSetup struct {
1179	state         protoimpl.MessageState
1180	sizeCache     protoimpl.SizeCache
1181	unknownFields protoimpl.UnknownFields
1182
1183	// List of files to push to the device before starting the test.
1184	FilesToPush []*DeviceFile `protobuf:"bytes,1,rep,name=files_to_push,json=filesToPush,proto3" json:"files_to_push,omitempty"`
1185	// List of directories on the device to upload to GCS at the end of the test;
1186	// they must be absolute paths under /sdcard, /storage or /data/local/tmp.
1187	// Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
1188	//
1189	// Note: The paths /sdcard and /data will be made available and treated as
1190	// implicit path substitutions. E.g. if /sdcard on a particular device does
1191	// not map to external storage, the system will replace it with the external
1192	// storage path prefix for that device.
1193	DirectoriesToPull []string `protobuf:"bytes,2,rep,name=directories_to_pull,json=directoriesToPull,proto3" json:"directories_to_pull,omitempty"`
1194	// APKs to install in addition to those being directly tested.
1195	// Currently capped at 100.
1196	AdditionalApks []*Apk `protobuf:"bytes,3,rep,name=additional_apks,json=additionalApks,proto3" json:"additional_apks,omitempty"`
1197	// The device will be logged in on this account for the duration of the test.
1198	Account *Account `protobuf:"bytes,4,opt,name=account,proto3" json:"account,omitempty"`
1199	// The network traffic profile used for running the test.
1200	// Available network profiles can be queried by using the
1201	// NETWORK_CONFIGURATION environment type when calling
1202	// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1203	NetworkProfile string `protobuf:"bytes,5,opt,name=network_profile,json=networkProfile,proto3" json:"network_profile,omitempty"`
1204	// Environment variables to set for the test (only applicable for
1205	// instrumentation tests).
1206	EnvironmentVariables []*EnvironmentVariable `protobuf:"bytes,6,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
1207	// Systrace configuration for the run.
1208	// If set a systrace will be taken, starting on test start and lasting for the
1209	// configured duration. The systrace file thus obtained is put in the results
1210	// bucket together with the other artifacts from the run.
1211	Systrace *SystraceSetup `protobuf:"bytes,9,opt,name=systrace,proto3" json:"systrace,omitempty"`
1212	// Whether to prevent all runtime permissions to be granted at app install
1213	DontAutograntPermissions bool `protobuf:"varint,23,opt,name=dont_autogrant_permissions,json=dontAutograntPermissions,proto3" json:"dont_autogrant_permissions,omitempty"`
1214}
1215
1216func (x *TestSetup) Reset() {
1217	*x = TestSetup{}
1218	if protoimpl.UnsafeEnabled {
1219		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[4]
1220		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1221		ms.StoreMessageInfo(mi)
1222	}
1223}
1224
1225func (x *TestSetup) String() string {
1226	return protoimpl.X.MessageStringOf(x)
1227}
1228
1229func (*TestSetup) ProtoMessage() {}
1230
1231func (x *TestSetup) ProtoReflect() protoreflect.Message {
1232	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[4]
1233	if protoimpl.UnsafeEnabled && x != nil {
1234		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1235		if ms.LoadMessageInfo() == nil {
1236			ms.StoreMessageInfo(mi)
1237		}
1238		return ms
1239	}
1240	return mi.MessageOf(x)
1241}
1242
1243// Deprecated: Use TestSetup.ProtoReflect.Descriptor instead.
1244func (*TestSetup) Descriptor() ([]byte, []int) {
1245	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{4}
1246}
1247
1248func (x *TestSetup) GetFilesToPush() []*DeviceFile {
1249	if x != nil {
1250		return x.FilesToPush
1251	}
1252	return nil
1253}
1254
1255func (x *TestSetup) GetDirectoriesToPull() []string {
1256	if x != nil {
1257		return x.DirectoriesToPull
1258	}
1259	return nil
1260}
1261
1262func (x *TestSetup) GetAdditionalApks() []*Apk {
1263	if x != nil {
1264		return x.AdditionalApks
1265	}
1266	return nil
1267}
1268
1269func (x *TestSetup) GetAccount() *Account {
1270	if x != nil {
1271		return x.Account
1272	}
1273	return nil
1274}
1275
1276func (x *TestSetup) GetNetworkProfile() string {
1277	if x != nil {
1278		return x.NetworkProfile
1279	}
1280	return ""
1281}
1282
1283func (x *TestSetup) GetEnvironmentVariables() []*EnvironmentVariable {
1284	if x != nil {
1285		return x.EnvironmentVariables
1286	}
1287	return nil
1288}
1289
1290func (x *TestSetup) GetSystrace() *SystraceSetup {
1291	if x != nil {
1292		return x.Systrace
1293	}
1294	return nil
1295}
1296
1297func (x *TestSetup) GetDontAutograntPermissions() bool {
1298	if x != nil {
1299		return x.DontAutograntPermissions
1300	}
1301	return false
1302}
1303
1304// A description of how to set up an iOS device prior to running the test.
1305type IosTestSetup struct {
1306	state         protoimpl.MessageState
1307	sizeCache     protoimpl.SizeCache
1308	unknownFields protoimpl.UnknownFields
1309
1310	// The network traffic profile used for running the test.
1311	// Available network profiles can be queried by using the
1312	// NETWORK_CONFIGURATION environment type when calling
1313	// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
1314	NetworkProfile string `protobuf:"bytes,1,opt,name=network_profile,json=networkProfile,proto3" json:"network_profile,omitempty"`
1315	// iOS apps to install in addition to those being directly tested.
1316	AdditionalIpas []*FileReference `protobuf:"bytes,2,rep,name=additional_ipas,json=additionalIpas,proto3" json:"additional_ipas,omitempty"`
1317	// List of files to push to the device before starting the test.
1318	PushFiles []*IosDeviceFile `protobuf:"bytes,3,rep,name=push_files,json=pushFiles,proto3" json:"push_files,omitempty"`
1319	// List of directories on the device to upload to Cloud Storage at the end of
1320	// the test.
1321	//
1322	// Directories should either be in a shared directory
1323	// (e.g. /private/var/mobile/Media) or within an accessible directory inside
1324	// the app's filesystem (e.g. /Documents) by specifying the bundle id.
1325	PullDirectories []*IosDeviceFile `protobuf:"bytes,4,rep,name=pull_directories,json=pullDirectories,proto3" json:"pull_directories,omitempty"`
1326}
1327
1328func (x *IosTestSetup) Reset() {
1329	*x = IosTestSetup{}
1330	if protoimpl.UnsafeEnabled {
1331		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[5]
1332		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1333		ms.StoreMessageInfo(mi)
1334	}
1335}
1336
1337func (x *IosTestSetup) String() string {
1338	return protoimpl.X.MessageStringOf(x)
1339}
1340
1341func (*IosTestSetup) ProtoMessage() {}
1342
1343func (x *IosTestSetup) ProtoReflect() protoreflect.Message {
1344	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[5]
1345	if protoimpl.UnsafeEnabled && x != nil {
1346		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1347		if ms.LoadMessageInfo() == nil {
1348			ms.StoreMessageInfo(mi)
1349		}
1350		return ms
1351	}
1352	return mi.MessageOf(x)
1353}
1354
1355// Deprecated: Use IosTestSetup.ProtoReflect.Descriptor instead.
1356func (*IosTestSetup) Descriptor() ([]byte, []int) {
1357	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{5}
1358}
1359
1360func (x *IosTestSetup) GetNetworkProfile() string {
1361	if x != nil {
1362		return x.NetworkProfile
1363	}
1364	return ""
1365}
1366
1367func (x *IosTestSetup) GetAdditionalIpas() []*FileReference {
1368	if x != nil {
1369		return x.AdditionalIpas
1370	}
1371	return nil
1372}
1373
1374func (x *IosTestSetup) GetPushFiles() []*IosDeviceFile {
1375	if x != nil {
1376		return x.PushFiles
1377	}
1378	return nil
1379}
1380
1381func (x *IosTestSetup) GetPullDirectories() []*IosDeviceFile {
1382	if x != nil {
1383		return x.PullDirectories
1384	}
1385	return nil
1386}
1387
1388// A key-value pair passed as an environment variable to the test.
1389type EnvironmentVariable struct {
1390	state         protoimpl.MessageState
1391	sizeCache     protoimpl.SizeCache
1392	unknownFields protoimpl.UnknownFields
1393
1394	// Key for the environment variable.
1395	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
1396	// Value for the environment variable.
1397	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
1398}
1399
1400func (x *EnvironmentVariable) Reset() {
1401	*x = EnvironmentVariable{}
1402	if protoimpl.UnsafeEnabled {
1403		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[6]
1404		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1405		ms.StoreMessageInfo(mi)
1406	}
1407}
1408
1409func (x *EnvironmentVariable) String() string {
1410	return protoimpl.X.MessageStringOf(x)
1411}
1412
1413func (*EnvironmentVariable) ProtoMessage() {}
1414
1415func (x *EnvironmentVariable) ProtoReflect() protoreflect.Message {
1416	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[6]
1417	if protoimpl.UnsafeEnabled && x != nil {
1418		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1419		if ms.LoadMessageInfo() == nil {
1420			ms.StoreMessageInfo(mi)
1421		}
1422		return ms
1423	}
1424	return mi.MessageOf(x)
1425}
1426
1427// Deprecated: Use EnvironmentVariable.ProtoReflect.Descriptor instead.
1428func (*EnvironmentVariable) Descriptor() ([]byte, []int) {
1429	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{6}
1430}
1431
1432func (x *EnvironmentVariable) GetKey() string {
1433	if x != nil {
1434		return x.Key
1435	}
1436	return ""
1437}
1438
1439func (x *EnvironmentVariable) GetValue() string {
1440	if x != nil {
1441		return x.Value
1442	}
1443	return ""
1444}
1445
1446// Identifies an account and how to log into it.
1447type Account struct {
1448	state         protoimpl.MessageState
1449	sizeCache     protoimpl.SizeCache
1450	unknownFields protoimpl.UnknownFields
1451
1452	// Required. The type of account, based what it's for (e.g. Google) and what
1453	// its login mechanism is (e.g. username and password).
1454	//
1455	// Types that are assignable to AccountType:
1456	//	*Account_GoogleAuto
1457	AccountType isAccount_AccountType `protobuf_oneof:"account_type"`
1458}
1459
1460func (x *Account) Reset() {
1461	*x = Account{}
1462	if protoimpl.UnsafeEnabled {
1463		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[7]
1464		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1465		ms.StoreMessageInfo(mi)
1466	}
1467}
1468
1469func (x *Account) String() string {
1470	return protoimpl.X.MessageStringOf(x)
1471}
1472
1473func (*Account) ProtoMessage() {}
1474
1475func (x *Account) ProtoReflect() protoreflect.Message {
1476	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[7]
1477	if protoimpl.UnsafeEnabled && x != nil {
1478		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1479		if ms.LoadMessageInfo() == nil {
1480			ms.StoreMessageInfo(mi)
1481		}
1482		return ms
1483	}
1484	return mi.MessageOf(x)
1485}
1486
1487// Deprecated: Use Account.ProtoReflect.Descriptor instead.
1488func (*Account) Descriptor() ([]byte, []int) {
1489	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{7}
1490}
1491
1492func (m *Account) GetAccountType() isAccount_AccountType {
1493	if m != nil {
1494		return m.AccountType
1495	}
1496	return nil
1497}
1498
1499func (x *Account) GetGoogleAuto() *GoogleAuto {
1500	if x, ok := x.GetAccountType().(*Account_GoogleAuto); ok {
1501		return x.GoogleAuto
1502	}
1503	return nil
1504}
1505
1506type isAccount_AccountType interface {
1507	isAccount_AccountType()
1508}
1509
1510type Account_GoogleAuto struct {
1511	// An automatic google login account.
1512	GoogleAuto *GoogleAuto `protobuf:"bytes,1,opt,name=google_auto,json=googleAuto,proto3,oneof"`
1513}
1514
1515func (*Account_GoogleAuto) isAccount_AccountType() {}
1516
1517// Enables automatic Google account login.
1518// If set, the service automatically generates a Google test account and adds
1519// it to the device, before executing the test. Note that test accounts might be
1520// reused.
1521// Many applications show their full set of functionalities when an account is
1522// present on the device. Logging into the device with these generated accounts
1523// allows testing more functionalities.
1524type GoogleAuto struct {
1525	state         protoimpl.MessageState
1526	sizeCache     protoimpl.SizeCache
1527	unknownFields protoimpl.UnknownFields
1528}
1529
1530func (x *GoogleAuto) Reset() {
1531	*x = GoogleAuto{}
1532	if protoimpl.UnsafeEnabled {
1533		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[8]
1534		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1535		ms.StoreMessageInfo(mi)
1536	}
1537}
1538
1539func (x *GoogleAuto) String() string {
1540	return protoimpl.X.MessageStringOf(x)
1541}
1542
1543func (*GoogleAuto) ProtoMessage() {}
1544
1545func (x *GoogleAuto) ProtoReflect() protoreflect.Message {
1546	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[8]
1547	if protoimpl.UnsafeEnabled && x != nil {
1548		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1549		if ms.LoadMessageInfo() == nil {
1550			ms.StoreMessageInfo(mi)
1551		}
1552		return ms
1553	}
1554	return mi.MessageOf(x)
1555}
1556
1557// Deprecated: Use GoogleAuto.ProtoReflect.Descriptor instead.
1558func (*GoogleAuto) Descriptor() ([]byte, []int) {
1559	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{8}
1560}
1561
1562// An Android package file to install.
1563type Apk struct {
1564	state         protoimpl.MessageState
1565	sizeCache     protoimpl.SizeCache
1566	unknownFields protoimpl.UnknownFields
1567
1568	// The path to an APK to be installed on the device before the test begins.
1569	Location *FileReference `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
1570	// The java package for the APK to be installed.
1571	// Value is determined by examining the application's manifest.
1572	PackageName string `protobuf:"bytes,2,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"`
1573}
1574
1575func (x *Apk) Reset() {
1576	*x = Apk{}
1577	if protoimpl.UnsafeEnabled {
1578		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[9]
1579		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1580		ms.StoreMessageInfo(mi)
1581	}
1582}
1583
1584func (x *Apk) String() string {
1585	return protoimpl.X.MessageStringOf(x)
1586}
1587
1588func (*Apk) ProtoMessage() {}
1589
1590func (x *Apk) ProtoReflect() protoreflect.Message {
1591	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[9]
1592	if protoimpl.UnsafeEnabled && x != nil {
1593		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1594		if ms.LoadMessageInfo() == nil {
1595			ms.StoreMessageInfo(mi)
1596		}
1597		return ms
1598	}
1599	return mi.MessageOf(x)
1600}
1601
1602// Deprecated: Use Apk.ProtoReflect.Descriptor instead.
1603func (*Apk) Descriptor() ([]byte, []int) {
1604	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{9}
1605}
1606
1607func (x *Apk) GetLocation() *FileReference {
1608	if x != nil {
1609		return x.Location
1610	}
1611	return nil
1612}
1613
1614func (x *Apk) GetPackageName() string {
1615	if x != nil {
1616		return x.PackageName
1617	}
1618	return ""
1619}
1620
1621// An Android App Bundle file format, containing a BundleConfig.pb file,
1622// a base module directory, zero or more dynamic feature module directories.
1623// <p>See https://developer.android.com/guide/app-bundle/build for guidance on
1624// building App Bundles.
1625type AppBundle struct {
1626	state         protoimpl.MessageState
1627	sizeCache     protoimpl.SizeCache
1628	unknownFields protoimpl.UnknownFields
1629
1630	// Required. Bundle location information.
1631	//
1632	// Types that are assignable to Bundle:
1633	//	*AppBundle_BundleLocation
1634	Bundle isAppBundle_Bundle `protobuf_oneof:"bundle"`
1635}
1636
1637func (x *AppBundle) Reset() {
1638	*x = AppBundle{}
1639	if protoimpl.UnsafeEnabled {
1640		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[10]
1641		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1642		ms.StoreMessageInfo(mi)
1643	}
1644}
1645
1646func (x *AppBundle) String() string {
1647	return protoimpl.X.MessageStringOf(x)
1648}
1649
1650func (*AppBundle) ProtoMessage() {}
1651
1652func (x *AppBundle) ProtoReflect() protoreflect.Message {
1653	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[10]
1654	if protoimpl.UnsafeEnabled && x != nil {
1655		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1656		if ms.LoadMessageInfo() == nil {
1657			ms.StoreMessageInfo(mi)
1658		}
1659		return ms
1660	}
1661	return mi.MessageOf(x)
1662}
1663
1664// Deprecated: Use AppBundle.ProtoReflect.Descriptor instead.
1665func (*AppBundle) Descriptor() ([]byte, []int) {
1666	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{10}
1667}
1668
1669func (m *AppBundle) GetBundle() isAppBundle_Bundle {
1670	if m != nil {
1671		return m.Bundle
1672	}
1673	return nil
1674}
1675
1676func (x *AppBundle) GetBundleLocation() *FileReference {
1677	if x, ok := x.GetBundle().(*AppBundle_BundleLocation); ok {
1678		return x.BundleLocation
1679	}
1680	return nil
1681}
1682
1683type isAppBundle_Bundle interface {
1684	isAppBundle_Bundle()
1685}
1686
1687type AppBundle_BundleLocation struct {
1688	// .aab file representing the app bundle under test.
1689	BundleLocation *FileReference `protobuf:"bytes,1,opt,name=bundle_location,json=bundleLocation,proto3,oneof"`
1690}
1691
1692func (*AppBundle_BundleLocation) isAppBundle_Bundle() {}
1693
1694// A single device file description.
1695type DeviceFile struct {
1696	state         protoimpl.MessageState
1697	sizeCache     protoimpl.SizeCache
1698	unknownFields protoimpl.UnknownFields
1699
1700	// Required.
1701	//
1702	// Types that are assignable to DeviceFile:
1703	//	*DeviceFile_ObbFile
1704	//	*DeviceFile_RegularFile
1705	DeviceFile isDeviceFile_DeviceFile `protobuf_oneof:"device_file"`
1706}
1707
1708func (x *DeviceFile) Reset() {
1709	*x = DeviceFile{}
1710	if protoimpl.UnsafeEnabled {
1711		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[11]
1712		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1713		ms.StoreMessageInfo(mi)
1714	}
1715}
1716
1717func (x *DeviceFile) String() string {
1718	return protoimpl.X.MessageStringOf(x)
1719}
1720
1721func (*DeviceFile) ProtoMessage() {}
1722
1723func (x *DeviceFile) ProtoReflect() protoreflect.Message {
1724	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[11]
1725	if protoimpl.UnsafeEnabled && x != nil {
1726		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1727		if ms.LoadMessageInfo() == nil {
1728			ms.StoreMessageInfo(mi)
1729		}
1730		return ms
1731	}
1732	return mi.MessageOf(x)
1733}
1734
1735// Deprecated: Use DeviceFile.ProtoReflect.Descriptor instead.
1736func (*DeviceFile) Descriptor() ([]byte, []int) {
1737	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{11}
1738}
1739
1740func (m *DeviceFile) GetDeviceFile() isDeviceFile_DeviceFile {
1741	if m != nil {
1742		return m.DeviceFile
1743	}
1744	return nil
1745}
1746
1747func (x *DeviceFile) GetObbFile() *ObbFile {
1748	if x, ok := x.GetDeviceFile().(*DeviceFile_ObbFile); ok {
1749		return x.ObbFile
1750	}
1751	return nil
1752}
1753
1754func (x *DeviceFile) GetRegularFile() *RegularFile {
1755	if x, ok := x.GetDeviceFile().(*DeviceFile_RegularFile); ok {
1756		return x.RegularFile
1757	}
1758	return nil
1759}
1760
1761type isDeviceFile_DeviceFile interface {
1762	isDeviceFile_DeviceFile()
1763}
1764
1765type DeviceFile_ObbFile struct {
1766	// A reference to an opaque binary blob file.
1767	ObbFile *ObbFile `protobuf:"bytes,1,opt,name=obb_file,json=obbFile,proto3,oneof"`
1768}
1769
1770type DeviceFile_RegularFile struct {
1771	// A reference to a regular file.
1772	RegularFile *RegularFile `protobuf:"bytes,2,opt,name=regular_file,json=regularFile,proto3,oneof"`
1773}
1774
1775func (*DeviceFile_ObbFile) isDeviceFile_DeviceFile() {}
1776
1777func (*DeviceFile_RegularFile) isDeviceFile_DeviceFile() {}
1778
1779// An opaque binary blob file to install on the device before the test starts.
1780type ObbFile struct {
1781	state         protoimpl.MessageState
1782	sizeCache     protoimpl.SizeCache
1783	unknownFields protoimpl.UnknownFields
1784
1785	// Required. OBB file name which must conform to the format as specified by
1786	// Android
1787	// e.g. [main|patch].0300110.com.example.android.obb
1788	// which will be installed into
1789	//   \<shared-storage\>/Android/obb/\<package-name\>/
1790	// on the device.
1791	ObbFileName string `protobuf:"bytes,1,opt,name=obb_file_name,json=obbFileName,proto3" json:"obb_file_name,omitempty"`
1792	// Required. Opaque Binary Blob (OBB) file(s) to install on the device.
1793	Obb *FileReference `protobuf:"bytes,2,opt,name=obb,proto3" json:"obb,omitempty"`
1794}
1795
1796func (x *ObbFile) Reset() {
1797	*x = ObbFile{}
1798	if protoimpl.UnsafeEnabled {
1799		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[12]
1800		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1801		ms.StoreMessageInfo(mi)
1802	}
1803}
1804
1805func (x *ObbFile) String() string {
1806	return protoimpl.X.MessageStringOf(x)
1807}
1808
1809func (*ObbFile) ProtoMessage() {}
1810
1811func (x *ObbFile) ProtoReflect() protoreflect.Message {
1812	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[12]
1813	if protoimpl.UnsafeEnabled && x != nil {
1814		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1815		if ms.LoadMessageInfo() == nil {
1816			ms.StoreMessageInfo(mi)
1817		}
1818		return ms
1819	}
1820	return mi.MessageOf(x)
1821}
1822
1823// Deprecated: Use ObbFile.ProtoReflect.Descriptor instead.
1824func (*ObbFile) Descriptor() ([]byte, []int) {
1825	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{12}
1826}
1827
1828func (x *ObbFile) GetObbFileName() string {
1829	if x != nil {
1830		return x.ObbFileName
1831	}
1832	return ""
1833}
1834
1835func (x *ObbFile) GetObb() *FileReference {
1836	if x != nil {
1837		return x.Obb
1838	}
1839	return nil
1840}
1841
1842// A file or directory to install on the device before the test starts.
1843type RegularFile struct {
1844	state         protoimpl.MessageState
1845	sizeCache     protoimpl.SizeCache
1846	unknownFields protoimpl.UnknownFields
1847
1848	// Required. The source file.
1849	Content *FileReference `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
1850	// Required. Where to put the content on the device. Must be an absolute,
1851	// allowlisted path. If the file exists, it will be replaced.
1852	// The following device-side directories and any of their subdirectories are
1853	// allowlisted:
1854	// <p>${EXTERNAL_STORAGE}, /sdcard, or /storage</p>
1855	// <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
1856	// <p>Specifying a path outside of these directory trees is invalid.
1857	//
1858	// <p> The paths /sdcard and /data will be made available and treated as
1859	// implicit path substitutions. E.g. if /sdcard on a particular device does
1860	// not map to external storage, the system will replace it with the external
1861	// storage path prefix for that device and copy the file there.
1862	//
1863	// <p> It is strongly advised to use the <a href=
1864	// "http://developer.android.com/reference/android/os/Environment.html">
1865	// Environment API</a> in app and test code to access files on the device in a
1866	// portable way.
1867	DevicePath string `protobuf:"bytes,2,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
1868}
1869
1870func (x *RegularFile) Reset() {
1871	*x = RegularFile{}
1872	if protoimpl.UnsafeEnabled {
1873		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[13]
1874		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1875		ms.StoreMessageInfo(mi)
1876	}
1877}
1878
1879func (x *RegularFile) String() string {
1880	return protoimpl.X.MessageStringOf(x)
1881}
1882
1883func (*RegularFile) ProtoMessage() {}
1884
1885func (x *RegularFile) ProtoReflect() protoreflect.Message {
1886	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[13]
1887	if protoimpl.UnsafeEnabled && x != nil {
1888		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1889		if ms.LoadMessageInfo() == nil {
1890			ms.StoreMessageInfo(mi)
1891		}
1892		return ms
1893	}
1894	return mi.MessageOf(x)
1895}
1896
1897// Deprecated: Use RegularFile.ProtoReflect.Descriptor instead.
1898func (*RegularFile) Descriptor() ([]byte, []int) {
1899	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{13}
1900}
1901
1902func (x *RegularFile) GetContent() *FileReference {
1903	if x != nil {
1904		return x.Content
1905	}
1906	return nil
1907}
1908
1909func (x *RegularFile) GetDevicePath() string {
1910	if x != nil {
1911		return x.DevicePath
1912	}
1913	return ""
1914}
1915
1916// A file or directory to install on the device before the test starts.
1917type IosDeviceFile struct {
1918	state         protoimpl.MessageState
1919	sizeCache     protoimpl.SizeCache
1920	unknownFields protoimpl.UnknownFields
1921
1922	// The source file
1923	Content *FileReference `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
1924	// The bundle id of the app where this file lives.
1925	//
1926	// iOS apps sandbox their own filesystem, so app files must specify which app
1927	// installed on the device.
1928	BundleId string `protobuf:"bytes,2,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"`
1929	// Location of the file on the device, inside the app's sandboxed filesystem
1930	DevicePath string `protobuf:"bytes,3,opt,name=device_path,json=devicePath,proto3" json:"device_path,omitempty"`
1931}
1932
1933func (x *IosDeviceFile) Reset() {
1934	*x = IosDeviceFile{}
1935	if protoimpl.UnsafeEnabled {
1936		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[14]
1937		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1938		ms.StoreMessageInfo(mi)
1939	}
1940}
1941
1942func (x *IosDeviceFile) String() string {
1943	return protoimpl.X.MessageStringOf(x)
1944}
1945
1946func (*IosDeviceFile) ProtoMessage() {}
1947
1948func (x *IosDeviceFile) ProtoReflect() protoreflect.Message {
1949	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[14]
1950	if protoimpl.UnsafeEnabled && x != nil {
1951		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1952		if ms.LoadMessageInfo() == nil {
1953			ms.StoreMessageInfo(mi)
1954		}
1955		return ms
1956	}
1957	return mi.MessageOf(x)
1958}
1959
1960// Deprecated: Use IosDeviceFile.ProtoReflect.Descriptor instead.
1961func (*IosDeviceFile) Descriptor() ([]byte, []int) {
1962	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{14}
1963}
1964
1965func (x *IosDeviceFile) GetContent() *FileReference {
1966	if x != nil {
1967		return x.Content
1968	}
1969	return nil
1970}
1971
1972func (x *IosDeviceFile) GetBundleId() string {
1973	if x != nil {
1974		return x.BundleId
1975	}
1976	return ""
1977}
1978
1979func (x *IosDeviceFile) GetDevicePath() string {
1980	if x != nil {
1981		return x.DevicePath
1982	}
1983	return ""
1984}
1985
1986// A test of an Android Application with a Test Loop.
1987// The intent \<intent-name\> will be implicitly added, since Games is the only
1988// user of this api, for the time being.
1989type AndroidTestLoop struct {
1990	state         protoimpl.MessageState
1991	sizeCache     protoimpl.SizeCache
1992	unknownFields protoimpl.UnknownFields
1993
1994	// Required. The Android package to test.
1995	//
1996	// Types that are assignable to AppUnderTest:
1997	//	*AndroidTestLoop_AppApk
1998	//	*AndroidTestLoop_AppBundle
1999	AppUnderTest isAndroidTestLoop_AppUnderTest `protobuf_oneof:"app_under_test"`
2000	// The java package for the application under test.
2001	// The default is determined by examining the application's manifest.
2002	AppPackageId string `protobuf:"bytes,2,opt,name=app_package_id,json=appPackageId,proto3" json:"app_package_id,omitempty"`
2003	// The list of scenarios that should be run during the test.
2004	// The default is all test loops, derived from the application's
2005	// manifest.
2006	Scenarios []int32 `protobuf:"varint,3,rep,packed,name=scenarios,proto3" json:"scenarios,omitempty"`
2007	// The list of scenario labels that should be run during the test.
2008	// The scenario labels should map to labels defined in the application's
2009	// manifest. For example, player_experience and
2010	// com.google.test.loops.player_experience add all of the loops labeled in the
2011	// manifest with the com.google.test.loops.player_experience name to the
2012	// execution.
2013	// Scenarios can also be specified in the scenarios field.
2014	ScenarioLabels []string `protobuf:"bytes,4,rep,name=scenario_labels,json=scenarioLabels,proto3" json:"scenario_labels,omitempty"`
2015}
2016
2017func (x *AndroidTestLoop) Reset() {
2018	*x = AndroidTestLoop{}
2019	if protoimpl.UnsafeEnabled {
2020		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[15]
2021		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2022		ms.StoreMessageInfo(mi)
2023	}
2024}
2025
2026func (x *AndroidTestLoop) String() string {
2027	return protoimpl.X.MessageStringOf(x)
2028}
2029
2030func (*AndroidTestLoop) ProtoMessage() {}
2031
2032func (x *AndroidTestLoop) ProtoReflect() protoreflect.Message {
2033	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[15]
2034	if protoimpl.UnsafeEnabled && x != nil {
2035		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2036		if ms.LoadMessageInfo() == nil {
2037			ms.StoreMessageInfo(mi)
2038		}
2039		return ms
2040	}
2041	return mi.MessageOf(x)
2042}
2043
2044// Deprecated: Use AndroidTestLoop.ProtoReflect.Descriptor instead.
2045func (*AndroidTestLoop) Descriptor() ([]byte, []int) {
2046	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{15}
2047}
2048
2049func (m *AndroidTestLoop) GetAppUnderTest() isAndroidTestLoop_AppUnderTest {
2050	if m != nil {
2051		return m.AppUnderTest
2052	}
2053	return nil
2054}
2055
2056func (x *AndroidTestLoop) GetAppApk() *FileReference {
2057	if x, ok := x.GetAppUnderTest().(*AndroidTestLoop_AppApk); ok {
2058		return x.AppApk
2059	}
2060	return nil
2061}
2062
2063func (x *AndroidTestLoop) GetAppBundle() *AppBundle {
2064	if x, ok := x.GetAppUnderTest().(*AndroidTestLoop_AppBundle); ok {
2065		return x.AppBundle
2066	}
2067	return nil
2068}
2069
2070func (x *AndroidTestLoop) GetAppPackageId() string {
2071	if x != nil {
2072		return x.AppPackageId
2073	}
2074	return ""
2075}
2076
2077func (x *AndroidTestLoop) GetScenarios() []int32 {
2078	if x != nil {
2079		return x.Scenarios
2080	}
2081	return nil
2082}
2083
2084func (x *AndroidTestLoop) GetScenarioLabels() []string {
2085	if x != nil {
2086		return x.ScenarioLabels
2087	}
2088	return nil
2089}
2090
2091type isAndroidTestLoop_AppUnderTest interface {
2092	isAndroidTestLoop_AppUnderTest()
2093}
2094
2095type AndroidTestLoop_AppApk struct {
2096	// The APK for the application under test.
2097	AppApk *FileReference `protobuf:"bytes,1,opt,name=app_apk,json=appApk,proto3,oneof"`
2098}
2099
2100type AndroidTestLoop_AppBundle struct {
2101	// A multi-apk app bundle for the application under test.
2102	AppBundle *AppBundle `protobuf:"bytes,5,opt,name=app_bundle,json=appBundle,proto3,oneof"`
2103}
2104
2105func (*AndroidTestLoop_AppApk) isAndroidTestLoop_AppUnderTest() {}
2106
2107func (*AndroidTestLoop_AppBundle) isAndroidTestLoop_AppUnderTest() {}
2108
2109// A test of an iOS application that uses the XCTest framework.
2110// Xcode supports the option to "build for testing", which generates an
2111// .xctestrun file that contains a test specification (arguments, test methods,
2112// etc). This test type accepts a zip file containing the .xctestrun file and
2113// the corresponding contents of the Build/Products directory that contains all
2114// the binaries needed to run the tests.
2115type IosXcTest struct {
2116	state         protoimpl.MessageState
2117	sizeCache     protoimpl.SizeCache
2118	unknownFields protoimpl.UnknownFields
2119
2120	// Required. The .zip containing the .xctestrun file and the contents of the
2121	// DerivedData/Build/Products directory.
2122	// The .xctestrun file in this zip is ignored if the xctestrun field is
2123	// specified.
2124	TestsZip *FileReference `protobuf:"bytes,1,opt,name=tests_zip,json=testsZip,proto3" json:"tests_zip,omitempty"`
2125	// An .xctestrun file that will override the .xctestrun file in the
2126	// tests zip. Because the .xctestrun file contains environment variables along
2127	// with test methods to run and/or ignore, this can be useful for sharding
2128	// tests. Default is taken from the tests zip.
2129	Xctestrun *FileReference `protobuf:"bytes,2,opt,name=xctestrun,proto3" json:"xctestrun,omitempty"`
2130	// The Xcode version that should be used for the test.
2131	// Use the TestEnvironmentDiscoveryService to get supported options.
2132	// Defaults to the latest Xcode version Firebase Test Lab supports.
2133	XcodeVersion string `protobuf:"bytes,3,opt,name=xcode_version,json=xcodeVersion,proto3" json:"xcode_version,omitempty"`
2134	// Output only. The bundle id for the application under test.
2135	AppBundleId string `protobuf:"bytes,4,opt,name=app_bundle_id,json=appBundleId,proto3" json:"app_bundle_id,omitempty"`
2136	// The option to test special app entitlements. Setting this would re-sign the
2137	// app having special entitlements with an explicit application-identifier.
2138	// Currently supports testing aps-environment entitlement.
2139	TestSpecialEntitlements bool `protobuf:"varint,6,opt,name=test_special_entitlements,json=testSpecialEntitlements,proto3" json:"test_special_entitlements,omitempty"`
2140}
2141
2142func (x *IosXcTest) Reset() {
2143	*x = IosXcTest{}
2144	if protoimpl.UnsafeEnabled {
2145		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[16]
2146		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2147		ms.StoreMessageInfo(mi)
2148	}
2149}
2150
2151func (x *IosXcTest) String() string {
2152	return protoimpl.X.MessageStringOf(x)
2153}
2154
2155func (*IosXcTest) ProtoMessage() {}
2156
2157func (x *IosXcTest) ProtoReflect() protoreflect.Message {
2158	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[16]
2159	if protoimpl.UnsafeEnabled && x != nil {
2160		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2161		if ms.LoadMessageInfo() == nil {
2162			ms.StoreMessageInfo(mi)
2163		}
2164		return ms
2165	}
2166	return mi.MessageOf(x)
2167}
2168
2169// Deprecated: Use IosXcTest.ProtoReflect.Descriptor instead.
2170func (*IosXcTest) Descriptor() ([]byte, []int) {
2171	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{16}
2172}
2173
2174func (x *IosXcTest) GetTestsZip() *FileReference {
2175	if x != nil {
2176		return x.TestsZip
2177	}
2178	return nil
2179}
2180
2181func (x *IosXcTest) GetXctestrun() *FileReference {
2182	if x != nil {
2183		return x.Xctestrun
2184	}
2185	return nil
2186}
2187
2188func (x *IosXcTest) GetXcodeVersion() string {
2189	if x != nil {
2190		return x.XcodeVersion
2191	}
2192	return ""
2193}
2194
2195func (x *IosXcTest) GetAppBundleId() string {
2196	if x != nil {
2197		return x.AppBundleId
2198	}
2199	return ""
2200}
2201
2202func (x *IosXcTest) GetTestSpecialEntitlements() bool {
2203	if x != nil {
2204		return x.TestSpecialEntitlements
2205	}
2206	return false
2207}
2208
2209// A test of an iOS application that implements one or more game loop scenarios.
2210// This test type accepts an archived application (.ipa file) and a list of
2211// integer scenarios that will be executed on the app sequentially.
2212type IosTestLoop struct {
2213	state         protoimpl.MessageState
2214	sizeCache     protoimpl.SizeCache
2215	unknownFields protoimpl.UnknownFields
2216
2217	// Required. The .ipa of the application to test.
2218	AppIpa *FileReference `protobuf:"bytes,1,opt,name=app_ipa,json=appIpa,proto3" json:"app_ipa,omitempty"`
2219	// The list of scenarios that should be run during the test. Defaults to the
2220	// single scenario 0 if unspecified.
2221	Scenarios []int32 `protobuf:"varint,2,rep,packed,name=scenarios,proto3" json:"scenarios,omitempty"`
2222	// Output only. The bundle id for the application under test.
2223	AppBundleId string `protobuf:"bytes,3,opt,name=app_bundle_id,json=appBundleId,proto3" json:"app_bundle_id,omitempty"`
2224}
2225
2226func (x *IosTestLoop) Reset() {
2227	*x = IosTestLoop{}
2228	if protoimpl.UnsafeEnabled {
2229		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[17]
2230		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2231		ms.StoreMessageInfo(mi)
2232	}
2233}
2234
2235func (x *IosTestLoop) String() string {
2236	return protoimpl.X.MessageStringOf(x)
2237}
2238
2239func (*IosTestLoop) ProtoMessage() {}
2240
2241func (x *IosTestLoop) ProtoReflect() protoreflect.Message {
2242	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[17]
2243	if protoimpl.UnsafeEnabled && x != nil {
2244		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2245		if ms.LoadMessageInfo() == nil {
2246			ms.StoreMessageInfo(mi)
2247		}
2248		return ms
2249	}
2250	return mi.MessageOf(x)
2251}
2252
2253// Deprecated: Use IosTestLoop.ProtoReflect.Descriptor instead.
2254func (*IosTestLoop) Descriptor() ([]byte, []int) {
2255	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{17}
2256}
2257
2258func (x *IosTestLoop) GetAppIpa() *FileReference {
2259	if x != nil {
2260		return x.AppIpa
2261	}
2262	return nil
2263}
2264
2265func (x *IosTestLoop) GetScenarios() []int32 {
2266	if x != nil {
2267		return x.Scenarios
2268	}
2269	return nil
2270}
2271
2272func (x *IosTestLoop) GetAppBundleId() string {
2273	if x != nil {
2274		return x.AppBundleId
2275	}
2276	return ""
2277}
2278
2279// A test of an Android application that can control an Android component
2280// independently of its normal lifecycle.
2281// Android instrumentation tests run an application APK and test APK inside the
2282// same process on a virtual or physical AndroidDevice.  They also specify
2283// a test runner class, such as com.google.GoogleTestRunner, which can vary
2284// on the specific instrumentation framework chosen.
2285//
2286// See <http://developer.android.com/tools/testing/testing_android.html> for
2287// more information on types of Android tests.
2288type AndroidInstrumentationTest struct {
2289	state         protoimpl.MessageState
2290	sizeCache     protoimpl.SizeCache
2291	unknownFields protoimpl.UnknownFields
2292
2293	// Required.
2294	//
2295	// Types that are assignable to AppUnderTest:
2296	//	*AndroidInstrumentationTest_AppApk
2297	//	*AndroidInstrumentationTest_AppBundle
2298	AppUnderTest isAndroidInstrumentationTest_AppUnderTest `protobuf_oneof:"app_under_test"`
2299	// Required. The APK containing the test code to be executed.
2300	TestApk *FileReference `protobuf:"bytes,2,opt,name=test_apk,json=testApk,proto3" json:"test_apk,omitempty"`
2301	// The java package for the application under test.
2302	// The default value is determined by examining the application's manifest.
2303	AppPackageId string `protobuf:"bytes,3,opt,name=app_package_id,json=appPackageId,proto3" json:"app_package_id,omitempty"`
2304	// The java package for the test to be executed.
2305	// The default value is determined by examining the application's manifest.
2306	TestPackageId string `protobuf:"bytes,4,opt,name=test_package_id,json=testPackageId,proto3" json:"test_package_id,omitempty"`
2307	// The InstrumentationTestRunner class.
2308	// The default value is determined by examining the application's manifest.
2309	TestRunnerClass string `protobuf:"bytes,5,opt,name=test_runner_class,json=testRunnerClass,proto3" json:"test_runner_class,omitempty"`
2310	// Each target must be fully qualified with the package name or class name,
2311	// in one of these formats:
2312	//  - "package package_name"
2313	//  - "class package_name.class_name"
2314	//  - "class package_name.class_name#method_name"
2315	//
2316	// If empty, all targets in the module will be run.
2317	TestTargets []string `protobuf:"bytes,6,rep,name=test_targets,json=testTargets,proto3" json:"test_targets,omitempty"`
2318	// The option of whether running each test within its own invocation of
2319	// instrumentation with Android Test Orchestrator or not.
2320	// ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
2321	// higher! **
2322	// Orchestrator offers the following benefits:
2323	//  - No shared state
2324	//  - Crashes are isolated
2325	//  - Logs are scoped per test
2326	//
2327	// See
2328	// <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
2329	// for more information about Android Test Orchestrator.
2330	//
2331	// If not set, the test will be run without the orchestrator.
2332	OrchestratorOption OrchestratorOption `protobuf:"varint,7,opt,name=orchestrator_option,json=orchestratorOption,proto3,enum=google.devtools.testing.v1.OrchestratorOption" json:"orchestrator_option,omitempty"`
2333	// The option to run tests in multiple shards in parallel.
2334	ShardingOption *ShardingOption `protobuf:"bytes,9,opt,name=sharding_option,json=shardingOption,proto3" json:"sharding_option,omitempty"`
2335}
2336
2337func (x *AndroidInstrumentationTest) Reset() {
2338	*x = AndroidInstrumentationTest{}
2339	if protoimpl.UnsafeEnabled {
2340		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[18]
2341		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2342		ms.StoreMessageInfo(mi)
2343	}
2344}
2345
2346func (x *AndroidInstrumentationTest) String() string {
2347	return protoimpl.X.MessageStringOf(x)
2348}
2349
2350func (*AndroidInstrumentationTest) ProtoMessage() {}
2351
2352func (x *AndroidInstrumentationTest) ProtoReflect() protoreflect.Message {
2353	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[18]
2354	if protoimpl.UnsafeEnabled && x != nil {
2355		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2356		if ms.LoadMessageInfo() == nil {
2357			ms.StoreMessageInfo(mi)
2358		}
2359		return ms
2360	}
2361	return mi.MessageOf(x)
2362}
2363
2364// Deprecated: Use AndroidInstrumentationTest.ProtoReflect.Descriptor instead.
2365func (*AndroidInstrumentationTest) Descriptor() ([]byte, []int) {
2366	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{18}
2367}
2368
2369func (m *AndroidInstrumentationTest) GetAppUnderTest() isAndroidInstrumentationTest_AppUnderTest {
2370	if m != nil {
2371		return m.AppUnderTest
2372	}
2373	return nil
2374}
2375
2376func (x *AndroidInstrumentationTest) GetAppApk() *FileReference {
2377	if x, ok := x.GetAppUnderTest().(*AndroidInstrumentationTest_AppApk); ok {
2378		return x.AppApk
2379	}
2380	return nil
2381}
2382
2383func (x *AndroidInstrumentationTest) GetAppBundle() *AppBundle {
2384	if x, ok := x.GetAppUnderTest().(*AndroidInstrumentationTest_AppBundle); ok {
2385		return x.AppBundle
2386	}
2387	return nil
2388}
2389
2390func (x *AndroidInstrumentationTest) GetTestApk() *FileReference {
2391	if x != nil {
2392		return x.TestApk
2393	}
2394	return nil
2395}
2396
2397func (x *AndroidInstrumentationTest) GetAppPackageId() string {
2398	if x != nil {
2399		return x.AppPackageId
2400	}
2401	return ""
2402}
2403
2404func (x *AndroidInstrumentationTest) GetTestPackageId() string {
2405	if x != nil {
2406		return x.TestPackageId
2407	}
2408	return ""
2409}
2410
2411func (x *AndroidInstrumentationTest) GetTestRunnerClass() string {
2412	if x != nil {
2413		return x.TestRunnerClass
2414	}
2415	return ""
2416}
2417
2418func (x *AndroidInstrumentationTest) GetTestTargets() []string {
2419	if x != nil {
2420		return x.TestTargets
2421	}
2422	return nil
2423}
2424
2425func (x *AndroidInstrumentationTest) GetOrchestratorOption() OrchestratorOption {
2426	if x != nil {
2427		return x.OrchestratorOption
2428	}
2429	return OrchestratorOption_ORCHESTRATOR_OPTION_UNSPECIFIED
2430}
2431
2432func (x *AndroidInstrumentationTest) GetShardingOption() *ShardingOption {
2433	if x != nil {
2434		return x.ShardingOption
2435	}
2436	return nil
2437}
2438
2439type isAndroidInstrumentationTest_AppUnderTest interface {
2440	isAndroidInstrumentationTest_AppUnderTest()
2441}
2442
2443type AndroidInstrumentationTest_AppApk struct {
2444	// The APK for the application under test.
2445	AppApk *FileReference `protobuf:"bytes,1,opt,name=app_apk,json=appApk,proto3,oneof"`
2446}
2447
2448type AndroidInstrumentationTest_AppBundle struct {
2449	// A multi-apk app bundle for the application under test.
2450	AppBundle *AppBundle `protobuf:"bytes,8,opt,name=app_bundle,json=appBundle,proto3,oneof"`
2451}
2452
2453func (*AndroidInstrumentationTest_AppApk) isAndroidInstrumentationTest_AppUnderTest() {}
2454
2455func (*AndroidInstrumentationTest_AppBundle) isAndroidInstrumentationTest_AppUnderTest() {}
2456
2457// A test of an android application that explores the application on a virtual
2458// or physical Android Device, finding culprits and crashes as it goes.
2459// Next tag: 30
2460type AndroidRoboTest struct {
2461	state         protoimpl.MessageState
2462	sizeCache     protoimpl.SizeCache
2463	unknownFields protoimpl.UnknownFields
2464
2465	// Required.
2466	//
2467	// Types that are assignable to AppUnderTest:
2468	//	*AndroidRoboTest_AppApk
2469	//	*AndroidRoboTest_AppBundle
2470	AppUnderTest isAndroidRoboTest_AppUnderTest `protobuf_oneof:"app_under_test"`
2471	// The java package for the application under test.
2472	// The default value is determined by examining the application's manifest.
2473	AppPackageId string `protobuf:"bytes,2,opt,name=app_package_id,json=appPackageId,proto3" json:"app_package_id,omitempty"`
2474	// The initial activity that should be used to start the app.
2475	AppInitialActivity string `protobuf:"bytes,3,opt,name=app_initial_activity,json=appInitialActivity,proto3" json:"app_initial_activity,omitempty"`
2476	// The max depth of the traversal stack Robo can explore. Needs to be at least
2477	// 2 to make Robo explore the app beyond the first activity.
2478	// Default is 50.
2479	//
2480	// Deprecated: Do not use.
2481	MaxDepth int32 `protobuf:"varint,7,opt,name=max_depth,json=maxDepth,proto3" json:"max_depth,omitempty"`
2482	// The max number of steps Robo can execute.
2483	// Default is no limit.
2484	//
2485	// Deprecated: Do not use.
2486	MaxSteps int32 `protobuf:"varint,8,opt,name=max_steps,json=maxSteps,proto3" json:"max_steps,omitempty"`
2487	// A set of directives Robo should apply during the crawl.
2488	// This allows users to customize the crawl. For example, the username and
2489	// password for a test account can be provided.
2490	RoboDirectives []*RoboDirective `protobuf:"bytes,11,rep,name=robo_directives,json=roboDirectives,proto3" json:"robo_directives,omitempty"`
2491	// A JSON file with a sequence of actions Robo should perform as a prologue
2492	// for the crawl.
2493	RoboScript *FileReference `protobuf:"bytes,13,opt,name=robo_script,json=roboScript,proto3" json:"robo_script,omitempty"`
2494	// The intents used to launch the app for the crawl.
2495	// If none are provided, then the main launcher activity is launched.
2496	// If some are provided, then only those provided are launched (the main
2497	// launcher activity must be provided explicitly).
2498	StartingIntents []*RoboStartingIntent `protobuf:"bytes,15,rep,name=starting_intents,json=startingIntents,proto3" json:"starting_intents,omitempty"`
2499}
2500
2501func (x *AndroidRoboTest) Reset() {
2502	*x = AndroidRoboTest{}
2503	if protoimpl.UnsafeEnabled {
2504		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[19]
2505		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2506		ms.StoreMessageInfo(mi)
2507	}
2508}
2509
2510func (x *AndroidRoboTest) String() string {
2511	return protoimpl.X.MessageStringOf(x)
2512}
2513
2514func (*AndroidRoboTest) ProtoMessage() {}
2515
2516func (x *AndroidRoboTest) ProtoReflect() protoreflect.Message {
2517	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[19]
2518	if protoimpl.UnsafeEnabled && x != nil {
2519		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2520		if ms.LoadMessageInfo() == nil {
2521			ms.StoreMessageInfo(mi)
2522		}
2523		return ms
2524	}
2525	return mi.MessageOf(x)
2526}
2527
2528// Deprecated: Use AndroidRoboTest.ProtoReflect.Descriptor instead.
2529func (*AndroidRoboTest) Descriptor() ([]byte, []int) {
2530	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{19}
2531}
2532
2533func (m *AndroidRoboTest) GetAppUnderTest() isAndroidRoboTest_AppUnderTest {
2534	if m != nil {
2535		return m.AppUnderTest
2536	}
2537	return nil
2538}
2539
2540func (x *AndroidRoboTest) GetAppApk() *FileReference {
2541	if x, ok := x.GetAppUnderTest().(*AndroidRoboTest_AppApk); ok {
2542		return x.AppApk
2543	}
2544	return nil
2545}
2546
2547func (x *AndroidRoboTest) GetAppBundle() *AppBundle {
2548	if x, ok := x.GetAppUnderTest().(*AndroidRoboTest_AppBundle); ok {
2549		return x.AppBundle
2550	}
2551	return nil
2552}
2553
2554func (x *AndroidRoboTest) GetAppPackageId() string {
2555	if x != nil {
2556		return x.AppPackageId
2557	}
2558	return ""
2559}
2560
2561func (x *AndroidRoboTest) GetAppInitialActivity() string {
2562	if x != nil {
2563		return x.AppInitialActivity
2564	}
2565	return ""
2566}
2567
2568// Deprecated: Do not use.
2569func (x *AndroidRoboTest) GetMaxDepth() int32 {
2570	if x != nil {
2571		return x.MaxDepth
2572	}
2573	return 0
2574}
2575
2576// Deprecated: Do not use.
2577func (x *AndroidRoboTest) GetMaxSteps() int32 {
2578	if x != nil {
2579		return x.MaxSteps
2580	}
2581	return 0
2582}
2583
2584func (x *AndroidRoboTest) GetRoboDirectives() []*RoboDirective {
2585	if x != nil {
2586		return x.RoboDirectives
2587	}
2588	return nil
2589}
2590
2591func (x *AndroidRoboTest) GetRoboScript() *FileReference {
2592	if x != nil {
2593		return x.RoboScript
2594	}
2595	return nil
2596}
2597
2598func (x *AndroidRoboTest) GetStartingIntents() []*RoboStartingIntent {
2599	if x != nil {
2600		return x.StartingIntents
2601	}
2602	return nil
2603}
2604
2605type isAndroidRoboTest_AppUnderTest interface {
2606	isAndroidRoboTest_AppUnderTest()
2607}
2608
2609type AndroidRoboTest_AppApk struct {
2610	// The APK for the application under test.
2611	AppApk *FileReference `protobuf:"bytes,1,opt,name=app_apk,json=appApk,proto3,oneof"`
2612}
2613
2614type AndroidRoboTest_AppBundle struct {
2615	// A multi-apk app bundle for the application under test.
2616	AppBundle *AppBundle `protobuf:"bytes,16,opt,name=app_bundle,json=appBundle,proto3,oneof"`
2617}
2618
2619func (*AndroidRoboTest_AppApk) isAndroidRoboTest_AppUnderTest() {}
2620
2621func (*AndroidRoboTest_AppBundle) isAndroidRoboTest_AppUnderTest() {}
2622
2623// Directs Robo to interact with a specific UI element if it is encountered
2624// during the crawl. Currently, Robo can perform text entry or element click.
2625type RoboDirective struct {
2626	state         protoimpl.MessageState
2627	sizeCache     protoimpl.SizeCache
2628	unknownFields protoimpl.UnknownFields
2629
2630	// Required. The android resource name of the target UI element.
2631	// For example,
2632	//    in Java: R.string.foo
2633	//    in xml: @string/foo
2634	// Only the "foo" part is needed.
2635	// Reference doc:
2636	// https://developer.android.com/guide/topics/resources/accessing-resources.html
2637	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
2638	// The text that Robo is directed to set. If left empty, the directive will be
2639	// treated as a CLICK on the element matching the resource_name.
2640	InputText string `protobuf:"bytes,2,opt,name=input_text,json=inputText,proto3" json:"input_text,omitempty"`
2641	// Required. The type of action that Robo should perform on the specified
2642	// element.
2643	ActionType RoboActionType `protobuf:"varint,3,opt,name=action_type,json=actionType,proto3,enum=google.devtools.testing.v1.RoboActionType" json:"action_type,omitempty"`
2644}
2645
2646func (x *RoboDirective) Reset() {
2647	*x = RoboDirective{}
2648	if protoimpl.UnsafeEnabled {
2649		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[20]
2650		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2651		ms.StoreMessageInfo(mi)
2652	}
2653}
2654
2655func (x *RoboDirective) String() string {
2656	return protoimpl.X.MessageStringOf(x)
2657}
2658
2659func (*RoboDirective) ProtoMessage() {}
2660
2661func (x *RoboDirective) ProtoReflect() protoreflect.Message {
2662	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[20]
2663	if protoimpl.UnsafeEnabled && x != nil {
2664		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2665		if ms.LoadMessageInfo() == nil {
2666			ms.StoreMessageInfo(mi)
2667		}
2668		return ms
2669	}
2670	return mi.MessageOf(x)
2671}
2672
2673// Deprecated: Use RoboDirective.ProtoReflect.Descriptor instead.
2674func (*RoboDirective) Descriptor() ([]byte, []int) {
2675	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{20}
2676}
2677
2678func (x *RoboDirective) GetResourceName() string {
2679	if x != nil {
2680		return x.ResourceName
2681	}
2682	return ""
2683}
2684
2685func (x *RoboDirective) GetInputText() string {
2686	if x != nil {
2687		return x.InputText
2688	}
2689	return ""
2690}
2691
2692func (x *RoboDirective) GetActionType() RoboActionType {
2693	if x != nil {
2694		return x.ActionType
2695	}
2696	return RoboActionType_ACTION_TYPE_UNSPECIFIED
2697}
2698
2699// Message for specifying the start activities to crawl.
2700type RoboStartingIntent struct {
2701	state         protoimpl.MessageState
2702	sizeCache     protoimpl.SizeCache
2703	unknownFields protoimpl.UnknownFields
2704
2705	// Required. Intent details to start an activity.
2706	//
2707	// Types that are assignable to StartingIntent:
2708	//	*RoboStartingIntent_LauncherActivity
2709	//	*RoboStartingIntent_StartActivity
2710	StartingIntent isRoboStartingIntent_StartingIntent `protobuf_oneof:"starting_intent"`
2711	// Timeout in seconds for each intent.
2712	Timeout *durationpb.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"`
2713}
2714
2715func (x *RoboStartingIntent) Reset() {
2716	*x = RoboStartingIntent{}
2717	if protoimpl.UnsafeEnabled {
2718		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[21]
2719		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2720		ms.StoreMessageInfo(mi)
2721	}
2722}
2723
2724func (x *RoboStartingIntent) String() string {
2725	return protoimpl.X.MessageStringOf(x)
2726}
2727
2728func (*RoboStartingIntent) ProtoMessage() {}
2729
2730func (x *RoboStartingIntent) ProtoReflect() protoreflect.Message {
2731	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[21]
2732	if protoimpl.UnsafeEnabled && x != nil {
2733		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2734		if ms.LoadMessageInfo() == nil {
2735			ms.StoreMessageInfo(mi)
2736		}
2737		return ms
2738	}
2739	return mi.MessageOf(x)
2740}
2741
2742// Deprecated: Use RoboStartingIntent.ProtoReflect.Descriptor instead.
2743func (*RoboStartingIntent) Descriptor() ([]byte, []int) {
2744	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{21}
2745}
2746
2747func (m *RoboStartingIntent) GetStartingIntent() isRoboStartingIntent_StartingIntent {
2748	if m != nil {
2749		return m.StartingIntent
2750	}
2751	return nil
2752}
2753
2754func (x *RoboStartingIntent) GetLauncherActivity() *LauncherActivityIntent {
2755	if x, ok := x.GetStartingIntent().(*RoboStartingIntent_LauncherActivity); ok {
2756		return x.LauncherActivity
2757	}
2758	return nil
2759}
2760
2761func (x *RoboStartingIntent) GetStartActivity() *StartActivityIntent {
2762	if x, ok := x.GetStartingIntent().(*RoboStartingIntent_StartActivity); ok {
2763		return x.StartActivity
2764	}
2765	return nil
2766}
2767
2768func (x *RoboStartingIntent) GetTimeout() *durationpb.Duration {
2769	if x != nil {
2770		return x.Timeout
2771	}
2772	return nil
2773}
2774
2775type isRoboStartingIntent_StartingIntent interface {
2776	isRoboStartingIntent_StartingIntent()
2777}
2778
2779type RoboStartingIntent_LauncherActivity struct {
2780	// An intent that starts the main launcher activity.
2781	LauncherActivity *LauncherActivityIntent `protobuf:"bytes,1,opt,name=launcher_activity,json=launcherActivity,proto3,oneof"`
2782}
2783
2784type RoboStartingIntent_StartActivity struct {
2785	// An intent that starts an activity with specific details.
2786	StartActivity *StartActivityIntent `protobuf:"bytes,2,opt,name=start_activity,json=startActivity,proto3,oneof"`
2787}
2788
2789func (*RoboStartingIntent_LauncherActivity) isRoboStartingIntent_StartingIntent() {}
2790
2791func (*RoboStartingIntent_StartActivity) isRoboStartingIntent_StartingIntent() {}
2792
2793// Specifies an intent that starts the main launcher activity.
2794type LauncherActivityIntent struct {
2795	state         protoimpl.MessageState
2796	sizeCache     protoimpl.SizeCache
2797	unknownFields protoimpl.UnknownFields
2798}
2799
2800func (x *LauncherActivityIntent) Reset() {
2801	*x = LauncherActivityIntent{}
2802	if protoimpl.UnsafeEnabled {
2803		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[22]
2804		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2805		ms.StoreMessageInfo(mi)
2806	}
2807}
2808
2809func (x *LauncherActivityIntent) String() string {
2810	return protoimpl.X.MessageStringOf(x)
2811}
2812
2813func (*LauncherActivityIntent) ProtoMessage() {}
2814
2815func (x *LauncherActivityIntent) ProtoReflect() protoreflect.Message {
2816	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[22]
2817	if protoimpl.UnsafeEnabled && x != nil {
2818		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2819		if ms.LoadMessageInfo() == nil {
2820			ms.StoreMessageInfo(mi)
2821		}
2822		return ms
2823	}
2824	return mi.MessageOf(x)
2825}
2826
2827// Deprecated: Use LauncherActivityIntent.ProtoReflect.Descriptor instead.
2828func (*LauncherActivityIntent) Descriptor() ([]byte, []int) {
2829	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{22}
2830}
2831
2832// A starting intent specified by an action, uri, and categories.
2833type StartActivityIntent struct {
2834	state         protoimpl.MessageState
2835	sizeCache     protoimpl.SizeCache
2836	unknownFields protoimpl.UnknownFields
2837
2838	// Action name.
2839	// Required for START_ACTIVITY.
2840	Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
2841	// URI for the action.
2842	Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
2843	// Intent categories to set on the intent.
2844	Categories []string `protobuf:"bytes,4,rep,name=categories,proto3" json:"categories,omitempty"`
2845}
2846
2847func (x *StartActivityIntent) Reset() {
2848	*x = StartActivityIntent{}
2849	if protoimpl.UnsafeEnabled {
2850		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[23]
2851		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2852		ms.StoreMessageInfo(mi)
2853	}
2854}
2855
2856func (x *StartActivityIntent) String() string {
2857	return protoimpl.X.MessageStringOf(x)
2858}
2859
2860func (*StartActivityIntent) ProtoMessage() {}
2861
2862func (x *StartActivityIntent) ProtoReflect() protoreflect.Message {
2863	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[23]
2864	if protoimpl.UnsafeEnabled && x != nil {
2865		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2866		if ms.LoadMessageInfo() == nil {
2867			ms.StoreMessageInfo(mi)
2868		}
2869		return ms
2870	}
2871	return mi.MessageOf(x)
2872}
2873
2874// Deprecated: Use StartActivityIntent.ProtoReflect.Descriptor instead.
2875func (*StartActivityIntent) Descriptor() ([]byte, []int) {
2876	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{23}
2877}
2878
2879func (x *StartActivityIntent) GetAction() string {
2880	if x != nil {
2881		return x.Action
2882	}
2883	return ""
2884}
2885
2886func (x *StartActivityIntent) GetUri() string {
2887	if x != nil {
2888		return x.Uri
2889	}
2890	return ""
2891}
2892
2893func (x *StartActivityIntent) GetCategories() []string {
2894	if x != nil {
2895		return x.Categories
2896	}
2897	return nil
2898}
2899
2900// The matrix of environments in which the test is to be executed.
2901type EnvironmentMatrix struct {
2902	state         protoimpl.MessageState
2903	sizeCache     protoimpl.SizeCache
2904	unknownFields protoimpl.UnknownFields
2905
2906	// Required. The environment matrix.
2907	//
2908	// Types that are assignable to EnvironmentMatrix:
2909	//	*EnvironmentMatrix_AndroidMatrix
2910	//	*EnvironmentMatrix_AndroidDeviceList
2911	//	*EnvironmentMatrix_IosDeviceList
2912	EnvironmentMatrix isEnvironmentMatrix_EnvironmentMatrix `protobuf_oneof:"environment_matrix"`
2913}
2914
2915func (x *EnvironmentMatrix) Reset() {
2916	*x = EnvironmentMatrix{}
2917	if protoimpl.UnsafeEnabled {
2918		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[24]
2919		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2920		ms.StoreMessageInfo(mi)
2921	}
2922}
2923
2924func (x *EnvironmentMatrix) String() string {
2925	return protoimpl.X.MessageStringOf(x)
2926}
2927
2928func (*EnvironmentMatrix) ProtoMessage() {}
2929
2930func (x *EnvironmentMatrix) ProtoReflect() protoreflect.Message {
2931	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[24]
2932	if protoimpl.UnsafeEnabled && x != nil {
2933		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2934		if ms.LoadMessageInfo() == nil {
2935			ms.StoreMessageInfo(mi)
2936		}
2937		return ms
2938	}
2939	return mi.MessageOf(x)
2940}
2941
2942// Deprecated: Use EnvironmentMatrix.ProtoReflect.Descriptor instead.
2943func (*EnvironmentMatrix) Descriptor() ([]byte, []int) {
2944	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{24}
2945}
2946
2947func (m *EnvironmentMatrix) GetEnvironmentMatrix() isEnvironmentMatrix_EnvironmentMatrix {
2948	if m != nil {
2949		return m.EnvironmentMatrix
2950	}
2951	return nil
2952}
2953
2954func (x *EnvironmentMatrix) GetAndroidMatrix() *AndroidMatrix {
2955	if x, ok := x.GetEnvironmentMatrix().(*EnvironmentMatrix_AndroidMatrix); ok {
2956		return x.AndroidMatrix
2957	}
2958	return nil
2959}
2960
2961func (x *EnvironmentMatrix) GetAndroidDeviceList() *AndroidDeviceList {
2962	if x, ok := x.GetEnvironmentMatrix().(*EnvironmentMatrix_AndroidDeviceList); ok {
2963		return x.AndroidDeviceList
2964	}
2965	return nil
2966}
2967
2968func (x *EnvironmentMatrix) GetIosDeviceList() *IosDeviceList {
2969	if x, ok := x.GetEnvironmentMatrix().(*EnvironmentMatrix_IosDeviceList); ok {
2970		return x.IosDeviceList
2971	}
2972	return nil
2973}
2974
2975type isEnvironmentMatrix_EnvironmentMatrix interface {
2976	isEnvironmentMatrix_EnvironmentMatrix()
2977}
2978
2979type EnvironmentMatrix_AndroidMatrix struct {
2980	// A matrix of Android devices.
2981	AndroidMatrix *AndroidMatrix `protobuf:"bytes,1,opt,name=android_matrix,json=androidMatrix,proto3,oneof"`
2982}
2983
2984type EnvironmentMatrix_AndroidDeviceList struct {
2985	// A list of Android devices; the test will be run only on the specified
2986	// devices.
2987	AndroidDeviceList *AndroidDeviceList `protobuf:"bytes,2,opt,name=android_device_list,json=androidDeviceList,proto3,oneof"`
2988}
2989
2990type EnvironmentMatrix_IosDeviceList struct {
2991	// A list of iOS devices.
2992	IosDeviceList *IosDeviceList `protobuf:"bytes,3,opt,name=ios_device_list,json=iosDeviceList,proto3,oneof"`
2993}
2994
2995func (*EnvironmentMatrix_AndroidMatrix) isEnvironmentMatrix_EnvironmentMatrix() {}
2996
2997func (*EnvironmentMatrix_AndroidDeviceList) isEnvironmentMatrix_EnvironmentMatrix() {}
2998
2999func (*EnvironmentMatrix_IosDeviceList) isEnvironmentMatrix_EnvironmentMatrix() {}
3000
3001// A list of Android device configurations in which the test is to be executed.
3002type AndroidDeviceList struct {
3003	state         protoimpl.MessageState
3004	sizeCache     protoimpl.SizeCache
3005	unknownFields protoimpl.UnknownFields
3006
3007	// Required. A list of Android devices.
3008	AndroidDevices []*AndroidDevice `protobuf:"bytes,1,rep,name=android_devices,json=androidDevices,proto3" json:"android_devices,omitempty"`
3009}
3010
3011func (x *AndroidDeviceList) Reset() {
3012	*x = AndroidDeviceList{}
3013	if protoimpl.UnsafeEnabled {
3014		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[25]
3015		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3016		ms.StoreMessageInfo(mi)
3017	}
3018}
3019
3020func (x *AndroidDeviceList) String() string {
3021	return protoimpl.X.MessageStringOf(x)
3022}
3023
3024func (*AndroidDeviceList) ProtoMessage() {}
3025
3026func (x *AndroidDeviceList) ProtoReflect() protoreflect.Message {
3027	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[25]
3028	if protoimpl.UnsafeEnabled && x != nil {
3029		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3030		if ms.LoadMessageInfo() == nil {
3031			ms.StoreMessageInfo(mi)
3032		}
3033		return ms
3034	}
3035	return mi.MessageOf(x)
3036}
3037
3038// Deprecated: Use AndroidDeviceList.ProtoReflect.Descriptor instead.
3039func (*AndroidDeviceList) Descriptor() ([]byte, []int) {
3040	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{25}
3041}
3042
3043func (x *AndroidDeviceList) GetAndroidDevices() []*AndroidDevice {
3044	if x != nil {
3045		return x.AndroidDevices
3046	}
3047	return nil
3048}
3049
3050// A list of iOS device configurations in which the test is to be executed.
3051type IosDeviceList struct {
3052	state         protoimpl.MessageState
3053	sizeCache     protoimpl.SizeCache
3054	unknownFields protoimpl.UnknownFields
3055
3056	// Required. A list of iOS devices.
3057	IosDevices []*IosDevice `protobuf:"bytes,1,rep,name=ios_devices,json=iosDevices,proto3" json:"ios_devices,omitempty"`
3058}
3059
3060func (x *IosDeviceList) Reset() {
3061	*x = IosDeviceList{}
3062	if protoimpl.UnsafeEnabled {
3063		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[26]
3064		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3065		ms.StoreMessageInfo(mi)
3066	}
3067}
3068
3069func (x *IosDeviceList) String() string {
3070	return protoimpl.X.MessageStringOf(x)
3071}
3072
3073func (*IosDeviceList) ProtoMessage() {}
3074
3075func (x *IosDeviceList) ProtoReflect() protoreflect.Message {
3076	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[26]
3077	if protoimpl.UnsafeEnabled && x != nil {
3078		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3079		if ms.LoadMessageInfo() == nil {
3080			ms.StoreMessageInfo(mi)
3081		}
3082		return ms
3083	}
3084	return mi.MessageOf(x)
3085}
3086
3087// Deprecated: Use IosDeviceList.ProtoReflect.Descriptor instead.
3088func (*IosDeviceList) Descriptor() ([]byte, []int) {
3089	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{26}
3090}
3091
3092func (x *IosDeviceList) GetIosDevices() []*IosDevice {
3093	if x != nil {
3094		return x.IosDevices
3095	}
3096	return nil
3097}
3098
3099// A set of Android device configuration permutations is defined by the
3100// the cross-product of the given axes. Internally, the given AndroidMatrix
3101// will be expanded into a set of AndroidDevices.
3102//
3103// Only supported permutations will be instantiated.  Invalid permutations
3104// (e.g., incompatible models/versions) are ignored.
3105type AndroidMatrix struct {
3106	state         protoimpl.MessageState
3107	sizeCache     protoimpl.SizeCache
3108	unknownFields protoimpl.UnknownFields
3109
3110	// Required. The ids of the set of Android device to be used.
3111	// Use the TestEnvironmentDiscoveryService to get supported options.
3112	AndroidModelIds []string `protobuf:"bytes,1,rep,name=android_model_ids,json=androidModelIds,proto3" json:"android_model_ids,omitempty"`
3113	// Required. The ids of the set of Android OS version to be used.
3114	// Use the TestEnvironmentDiscoveryService to get supported options.
3115	AndroidVersionIds []string `protobuf:"bytes,2,rep,name=android_version_ids,json=androidVersionIds,proto3" json:"android_version_ids,omitempty"`
3116	// Required. The set of locales the test device will enable for testing.
3117	// Use the TestEnvironmentDiscoveryService to get supported options.
3118	Locales []string `protobuf:"bytes,3,rep,name=locales,proto3" json:"locales,omitempty"`
3119	// Required. The set of orientations to test with.
3120	// Use the TestEnvironmentDiscoveryService to get supported options.
3121	Orientations []string `protobuf:"bytes,4,rep,name=orientations,proto3" json:"orientations,omitempty"`
3122}
3123
3124func (x *AndroidMatrix) Reset() {
3125	*x = AndroidMatrix{}
3126	if protoimpl.UnsafeEnabled {
3127		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[27]
3128		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3129		ms.StoreMessageInfo(mi)
3130	}
3131}
3132
3133func (x *AndroidMatrix) String() string {
3134	return protoimpl.X.MessageStringOf(x)
3135}
3136
3137func (*AndroidMatrix) ProtoMessage() {}
3138
3139func (x *AndroidMatrix) ProtoReflect() protoreflect.Message {
3140	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[27]
3141	if protoimpl.UnsafeEnabled && x != nil {
3142		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3143		if ms.LoadMessageInfo() == nil {
3144			ms.StoreMessageInfo(mi)
3145		}
3146		return ms
3147	}
3148	return mi.MessageOf(x)
3149}
3150
3151// Deprecated: Use AndroidMatrix.ProtoReflect.Descriptor instead.
3152func (*AndroidMatrix) Descriptor() ([]byte, []int) {
3153	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{27}
3154}
3155
3156func (x *AndroidMatrix) GetAndroidModelIds() []string {
3157	if x != nil {
3158		return x.AndroidModelIds
3159	}
3160	return nil
3161}
3162
3163func (x *AndroidMatrix) GetAndroidVersionIds() []string {
3164	if x != nil {
3165		return x.AndroidVersionIds
3166	}
3167	return nil
3168}
3169
3170func (x *AndroidMatrix) GetLocales() []string {
3171	if x != nil {
3172		return x.Locales
3173	}
3174	return nil
3175}
3176
3177func (x *AndroidMatrix) GetOrientations() []string {
3178	if x != nil {
3179		return x.Orientations
3180	}
3181	return nil
3182}
3183
3184// Information about the client which invoked the test.
3185type ClientInfo struct {
3186	state         protoimpl.MessageState
3187	sizeCache     protoimpl.SizeCache
3188	unknownFields protoimpl.UnknownFields
3189
3190	// Required. Client name, such as gcloud.
3191	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
3192	// The list of detailed information about client.
3193	ClientInfoDetails []*ClientInfoDetail `protobuf:"bytes,2,rep,name=client_info_details,json=clientInfoDetails,proto3" json:"client_info_details,omitempty"`
3194}
3195
3196func (x *ClientInfo) Reset() {
3197	*x = ClientInfo{}
3198	if protoimpl.UnsafeEnabled {
3199		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[28]
3200		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3201		ms.StoreMessageInfo(mi)
3202	}
3203}
3204
3205func (x *ClientInfo) String() string {
3206	return protoimpl.X.MessageStringOf(x)
3207}
3208
3209func (*ClientInfo) ProtoMessage() {}
3210
3211func (x *ClientInfo) ProtoReflect() protoreflect.Message {
3212	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[28]
3213	if protoimpl.UnsafeEnabled && x != nil {
3214		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3215		if ms.LoadMessageInfo() == nil {
3216			ms.StoreMessageInfo(mi)
3217		}
3218		return ms
3219	}
3220	return mi.MessageOf(x)
3221}
3222
3223// Deprecated: Use ClientInfo.ProtoReflect.Descriptor instead.
3224func (*ClientInfo) Descriptor() ([]byte, []int) {
3225	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{28}
3226}
3227
3228func (x *ClientInfo) GetName() string {
3229	if x != nil {
3230		return x.Name
3231	}
3232	return ""
3233}
3234
3235func (x *ClientInfo) GetClientInfoDetails() []*ClientInfoDetail {
3236	if x != nil {
3237		return x.ClientInfoDetails
3238	}
3239	return nil
3240}
3241
3242// Key-value pair of detailed information about the client which invoked the
3243// test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}.
3244type ClientInfoDetail struct {
3245	state         protoimpl.MessageState
3246	sizeCache     protoimpl.SizeCache
3247	unknownFields protoimpl.UnknownFields
3248
3249	// Required. The key of detailed client information.
3250	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
3251	// Required. The value of detailed client information.
3252	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
3253}
3254
3255func (x *ClientInfoDetail) Reset() {
3256	*x = ClientInfoDetail{}
3257	if protoimpl.UnsafeEnabled {
3258		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[29]
3259		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3260		ms.StoreMessageInfo(mi)
3261	}
3262}
3263
3264func (x *ClientInfoDetail) String() string {
3265	return protoimpl.X.MessageStringOf(x)
3266}
3267
3268func (*ClientInfoDetail) ProtoMessage() {}
3269
3270func (x *ClientInfoDetail) ProtoReflect() protoreflect.Message {
3271	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[29]
3272	if protoimpl.UnsafeEnabled && x != nil {
3273		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3274		if ms.LoadMessageInfo() == nil {
3275			ms.StoreMessageInfo(mi)
3276		}
3277		return ms
3278	}
3279	return mi.MessageOf(x)
3280}
3281
3282// Deprecated: Use ClientInfoDetail.ProtoReflect.Descriptor instead.
3283func (*ClientInfoDetail) Descriptor() ([]byte, []int) {
3284	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{29}
3285}
3286
3287func (x *ClientInfoDetail) GetKey() string {
3288	if x != nil {
3289		return x.Key
3290	}
3291	return ""
3292}
3293
3294func (x *ClientInfoDetail) GetValue() string {
3295	if x != nil {
3296		return x.Value
3297	}
3298	return ""
3299}
3300
3301// Locations where the results of running the test are stored.
3302type ResultStorage struct {
3303	state         protoimpl.MessageState
3304	sizeCache     protoimpl.SizeCache
3305	unknownFields protoimpl.UnknownFields
3306
3307	// Required.
3308	GoogleCloudStorage *GoogleCloudStorage `protobuf:"bytes,1,opt,name=google_cloud_storage,json=googleCloudStorage,proto3" json:"google_cloud_storage,omitempty"`
3309	// The tool results history that contains the tool results execution that
3310	// results are written to.
3311	//
3312	// If not provided, the service will choose an appropriate value.
3313	ToolResultsHistory *ToolResultsHistory `protobuf:"bytes,5,opt,name=tool_results_history,json=toolResultsHistory,proto3" json:"tool_results_history,omitempty"`
3314	// Output only. The tool results execution that results are written to.
3315	ToolResultsExecution *ToolResultsExecution `protobuf:"bytes,6,opt,name=tool_results_execution,json=toolResultsExecution,proto3" json:"tool_results_execution,omitempty"`
3316	// Output only. URL to the results in the Firebase Web Console.
3317	ResultsUrl string `protobuf:"bytes,7,opt,name=results_url,json=resultsUrl,proto3" json:"results_url,omitempty"`
3318}
3319
3320func (x *ResultStorage) Reset() {
3321	*x = ResultStorage{}
3322	if protoimpl.UnsafeEnabled {
3323		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[30]
3324		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3325		ms.StoreMessageInfo(mi)
3326	}
3327}
3328
3329func (x *ResultStorage) String() string {
3330	return protoimpl.X.MessageStringOf(x)
3331}
3332
3333func (*ResultStorage) ProtoMessage() {}
3334
3335func (x *ResultStorage) ProtoReflect() protoreflect.Message {
3336	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[30]
3337	if protoimpl.UnsafeEnabled && x != nil {
3338		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3339		if ms.LoadMessageInfo() == nil {
3340			ms.StoreMessageInfo(mi)
3341		}
3342		return ms
3343	}
3344	return mi.MessageOf(x)
3345}
3346
3347// Deprecated: Use ResultStorage.ProtoReflect.Descriptor instead.
3348func (*ResultStorage) Descriptor() ([]byte, []int) {
3349	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{30}
3350}
3351
3352func (x *ResultStorage) GetGoogleCloudStorage() *GoogleCloudStorage {
3353	if x != nil {
3354		return x.GoogleCloudStorage
3355	}
3356	return nil
3357}
3358
3359func (x *ResultStorage) GetToolResultsHistory() *ToolResultsHistory {
3360	if x != nil {
3361		return x.ToolResultsHistory
3362	}
3363	return nil
3364}
3365
3366func (x *ResultStorage) GetToolResultsExecution() *ToolResultsExecution {
3367	if x != nil {
3368		return x.ToolResultsExecution
3369	}
3370	return nil
3371}
3372
3373func (x *ResultStorage) GetResultsUrl() string {
3374	if x != nil {
3375		return x.ResultsUrl
3376	}
3377	return ""
3378}
3379
3380// Represents a tool results history resource.
3381type ToolResultsHistory struct {
3382	state         protoimpl.MessageState
3383	sizeCache     protoimpl.SizeCache
3384	unknownFields protoimpl.UnknownFields
3385
3386	// Required. The cloud project that owns the tool results history.
3387	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
3388	// Required. A tool results history ID.
3389	HistoryId string `protobuf:"bytes,2,opt,name=history_id,json=historyId,proto3" json:"history_id,omitempty"`
3390}
3391
3392func (x *ToolResultsHistory) Reset() {
3393	*x = ToolResultsHistory{}
3394	if protoimpl.UnsafeEnabled {
3395		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[31]
3396		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3397		ms.StoreMessageInfo(mi)
3398	}
3399}
3400
3401func (x *ToolResultsHistory) String() string {
3402	return protoimpl.X.MessageStringOf(x)
3403}
3404
3405func (*ToolResultsHistory) ProtoMessage() {}
3406
3407func (x *ToolResultsHistory) ProtoReflect() protoreflect.Message {
3408	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[31]
3409	if protoimpl.UnsafeEnabled && x != nil {
3410		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3411		if ms.LoadMessageInfo() == nil {
3412			ms.StoreMessageInfo(mi)
3413		}
3414		return ms
3415	}
3416	return mi.MessageOf(x)
3417}
3418
3419// Deprecated: Use ToolResultsHistory.ProtoReflect.Descriptor instead.
3420func (*ToolResultsHistory) Descriptor() ([]byte, []int) {
3421	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{31}
3422}
3423
3424func (x *ToolResultsHistory) GetProjectId() string {
3425	if x != nil {
3426		return x.ProjectId
3427	}
3428	return ""
3429}
3430
3431func (x *ToolResultsHistory) GetHistoryId() string {
3432	if x != nil {
3433		return x.HistoryId
3434	}
3435	return ""
3436}
3437
3438// Represents a tool results execution resource.
3439//
3440// This has the results of a TestMatrix.
3441type ToolResultsExecution struct {
3442	state         protoimpl.MessageState
3443	sizeCache     protoimpl.SizeCache
3444	unknownFields protoimpl.UnknownFields
3445
3446	// Output only. The cloud project that owns the tool results execution.
3447	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
3448	// Output only. A tool results history ID.
3449	HistoryId string `protobuf:"bytes,2,opt,name=history_id,json=historyId,proto3" json:"history_id,omitempty"`
3450	// Output only. A tool results execution ID.
3451	ExecutionId string `protobuf:"bytes,3,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"`
3452}
3453
3454func (x *ToolResultsExecution) Reset() {
3455	*x = ToolResultsExecution{}
3456	if protoimpl.UnsafeEnabled {
3457		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[32]
3458		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3459		ms.StoreMessageInfo(mi)
3460	}
3461}
3462
3463func (x *ToolResultsExecution) String() string {
3464	return protoimpl.X.MessageStringOf(x)
3465}
3466
3467func (*ToolResultsExecution) ProtoMessage() {}
3468
3469func (x *ToolResultsExecution) ProtoReflect() protoreflect.Message {
3470	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[32]
3471	if protoimpl.UnsafeEnabled && x != nil {
3472		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3473		if ms.LoadMessageInfo() == nil {
3474			ms.StoreMessageInfo(mi)
3475		}
3476		return ms
3477	}
3478	return mi.MessageOf(x)
3479}
3480
3481// Deprecated: Use ToolResultsExecution.ProtoReflect.Descriptor instead.
3482func (*ToolResultsExecution) Descriptor() ([]byte, []int) {
3483	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{32}
3484}
3485
3486func (x *ToolResultsExecution) GetProjectId() string {
3487	if x != nil {
3488		return x.ProjectId
3489	}
3490	return ""
3491}
3492
3493func (x *ToolResultsExecution) GetHistoryId() string {
3494	if x != nil {
3495		return x.HistoryId
3496	}
3497	return ""
3498}
3499
3500func (x *ToolResultsExecution) GetExecutionId() string {
3501	if x != nil {
3502		return x.ExecutionId
3503	}
3504	return ""
3505}
3506
3507// Represents a tool results step resource.
3508//
3509// This has the results of a TestExecution.
3510type ToolResultsStep struct {
3511	state         protoimpl.MessageState
3512	sizeCache     protoimpl.SizeCache
3513	unknownFields protoimpl.UnknownFields
3514
3515	// Output only. The cloud project that owns the tool results step.
3516	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
3517	// Output only. A tool results history ID.
3518	HistoryId string `protobuf:"bytes,2,opt,name=history_id,json=historyId,proto3" json:"history_id,omitempty"`
3519	// Output only. A tool results execution ID.
3520	ExecutionId string `protobuf:"bytes,3,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"`
3521	// Output only. A tool results step ID.
3522	StepId string `protobuf:"bytes,4,opt,name=step_id,json=stepId,proto3" json:"step_id,omitempty"`
3523}
3524
3525func (x *ToolResultsStep) Reset() {
3526	*x = ToolResultsStep{}
3527	if protoimpl.UnsafeEnabled {
3528		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[33]
3529		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3530		ms.StoreMessageInfo(mi)
3531	}
3532}
3533
3534func (x *ToolResultsStep) String() string {
3535	return protoimpl.X.MessageStringOf(x)
3536}
3537
3538func (*ToolResultsStep) ProtoMessage() {}
3539
3540func (x *ToolResultsStep) ProtoReflect() protoreflect.Message {
3541	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[33]
3542	if protoimpl.UnsafeEnabled && x != nil {
3543		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3544		if ms.LoadMessageInfo() == nil {
3545			ms.StoreMessageInfo(mi)
3546		}
3547		return ms
3548	}
3549	return mi.MessageOf(x)
3550}
3551
3552// Deprecated: Use ToolResultsStep.ProtoReflect.Descriptor instead.
3553func (*ToolResultsStep) Descriptor() ([]byte, []int) {
3554	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{33}
3555}
3556
3557func (x *ToolResultsStep) GetProjectId() string {
3558	if x != nil {
3559		return x.ProjectId
3560	}
3561	return ""
3562}
3563
3564func (x *ToolResultsStep) GetHistoryId() string {
3565	if x != nil {
3566		return x.HistoryId
3567	}
3568	return ""
3569}
3570
3571func (x *ToolResultsStep) GetExecutionId() string {
3572	if x != nil {
3573		return x.ExecutionId
3574	}
3575	return ""
3576}
3577
3578func (x *ToolResultsStep) GetStepId() string {
3579	if x != nil {
3580		return x.StepId
3581	}
3582	return ""
3583}
3584
3585// A storage location within Google cloud storage (GCS).
3586type GoogleCloudStorage struct {
3587	state         protoimpl.MessageState
3588	sizeCache     protoimpl.SizeCache
3589	unknownFields protoimpl.UnknownFields
3590
3591	// Required. The path to a directory in GCS that will
3592	// eventually contain the results for this test.
3593	// The requesting user must have write access on the bucket in the supplied
3594	// path.
3595	GcsPath string `protobuf:"bytes,1,opt,name=gcs_path,json=gcsPath,proto3" json:"gcs_path,omitempty"`
3596}
3597
3598func (x *GoogleCloudStorage) Reset() {
3599	*x = GoogleCloudStorage{}
3600	if protoimpl.UnsafeEnabled {
3601		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[34]
3602		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3603		ms.StoreMessageInfo(mi)
3604	}
3605}
3606
3607func (x *GoogleCloudStorage) String() string {
3608	return protoimpl.X.MessageStringOf(x)
3609}
3610
3611func (*GoogleCloudStorage) ProtoMessage() {}
3612
3613func (x *GoogleCloudStorage) ProtoReflect() protoreflect.Message {
3614	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[34]
3615	if protoimpl.UnsafeEnabled && x != nil {
3616		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3617		if ms.LoadMessageInfo() == nil {
3618			ms.StoreMessageInfo(mi)
3619		}
3620		return ms
3621	}
3622	return mi.MessageOf(x)
3623}
3624
3625// Deprecated: Use GoogleCloudStorage.ProtoReflect.Descriptor instead.
3626func (*GoogleCloudStorage) Descriptor() ([]byte, []int) {
3627	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{34}
3628}
3629
3630func (x *GoogleCloudStorage) GetGcsPath() string {
3631	if x != nil {
3632		return x.GcsPath
3633	}
3634	return ""
3635}
3636
3637// A reference to a file, used for user inputs.
3638type FileReference struct {
3639	state         protoimpl.MessageState
3640	sizeCache     protoimpl.SizeCache
3641	unknownFields protoimpl.UnknownFields
3642
3643	// Required. The file reference.
3644	//
3645	// Types that are assignable to File:
3646	//	*FileReference_GcsPath
3647	File isFileReference_File `protobuf_oneof:"file"`
3648}
3649
3650func (x *FileReference) Reset() {
3651	*x = FileReference{}
3652	if protoimpl.UnsafeEnabled {
3653		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[35]
3654		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3655		ms.StoreMessageInfo(mi)
3656	}
3657}
3658
3659func (x *FileReference) String() string {
3660	return protoimpl.X.MessageStringOf(x)
3661}
3662
3663func (*FileReference) ProtoMessage() {}
3664
3665func (x *FileReference) ProtoReflect() protoreflect.Message {
3666	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[35]
3667	if protoimpl.UnsafeEnabled && x != nil {
3668		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3669		if ms.LoadMessageInfo() == nil {
3670			ms.StoreMessageInfo(mi)
3671		}
3672		return ms
3673	}
3674	return mi.MessageOf(x)
3675}
3676
3677// Deprecated: Use FileReference.ProtoReflect.Descriptor instead.
3678func (*FileReference) Descriptor() ([]byte, []int) {
3679	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{35}
3680}
3681
3682func (m *FileReference) GetFile() isFileReference_File {
3683	if m != nil {
3684		return m.File
3685	}
3686	return nil
3687}
3688
3689func (x *FileReference) GetGcsPath() string {
3690	if x, ok := x.GetFile().(*FileReference_GcsPath); ok {
3691		return x.GcsPath
3692	}
3693	return ""
3694}
3695
3696type isFileReference_File interface {
3697	isFileReference_File()
3698}
3699
3700type FileReference_GcsPath struct {
3701	// A path to a file in Google Cloud Storage.
3702	// Example: gs://build-app-1414623860166/app%40debug-unaligned.apk
3703	// These paths are expected to be url encoded (percent encoding)
3704	GcsPath string `protobuf:"bytes,1,opt,name=gcs_path,json=gcsPath,proto3,oneof"`
3705}
3706
3707func (*FileReference_GcsPath) isFileReference_File() {}
3708
3709// The environment in which the test is run.
3710type Environment struct {
3711	state         protoimpl.MessageState
3712	sizeCache     protoimpl.SizeCache
3713	unknownFields protoimpl.UnknownFields
3714
3715	// Required. The environment.
3716	//
3717	// Types that are assignable to Environment:
3718	//	*Environment_AndroidDevice
3719	//	*Environment_IosDevice
3720	Environment isEnvironment_Environment `protobuf_oneof:"environment"`
3721}
3722
3723func (x *Environment) Reset() {
3724	*x = Environment{}
3725	if protoimpl.UnsafeEnabled {
3726		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[36]
3727		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3728		ms.StoreMessageInfo(mi)
3729	}
3730}
3731
3732func (x *Environment) String() string {
3733	return protoimpl.X.MessageStringOf(x)
3734}
3735
3736func (*Environment) ProtoMessage() {}
3737
3738func (x *Environment) ProtoReflect() protoreflect.Message {
3739	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[36]
3740	if protoimpl.UnsafeEnabled && x != nil {
3741		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3742		if ms.LoadMessageInfo() == nil {
3743			ms.StoreMessageInfo(mi)
3744		}
3745		return ms
3746	}
3747	return mi.MessageOf(x)
3748}
3749
3750// Deprecated: Use Environment.ProtoReflect.Descriptor instead.
3751func (*Environment) Descriptor() ([]byte, []int) {
3752	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{36}
3753}
3754
3755func (m *Environment) GetEnvironment() isEnvironment_Environment {
3756	if m != nil {
3757		return m.Environment
3758	}
3759	return nil
3760}
3761
3762func (x *Environment) GetAndroidDevice() *AndroidDevice {
3763	if x, ok := x.GetEnvironment().(*Environment_AndroidDevice); ok {
3764		return x.AndroidDevice
3765	}
3766	return nil
3767}
3768
3769func (x *Environment) GetIosDevice() *IosDevice {
3770	if x, ok := x.GetEnvironment().(*Environment_IosDevice); ok {
3771		return x.IosDevice
3772	}
3773	return nil
3774}
3775
3776type isEnvironment_Environment interface {
3777	isEnvironment_Environment()
3778}
3779
3780type Environment_AndroidDevice struct {
3781	// An Android device which must be used with an Android test.
3782	AndroidDevice *AndroidDevice `protobuf:"bytes,1,opt,name=android_device,json=androidDevice,proto3,oneof"`
3783}
3784
3785type Environment_IosDevice struct {
3786	// An iOS device which must be used with an iOS test.
3787	IosDevice *IosDevice `protobuf:"bytes,2,opt,name=ios_device,json=iosDevice,proto3,oneof"`
3788}
3789
3790func (*Environment_AndroidDevice) isEnvironment_Environment() {}
3791
3792func (*Environment_IosDevice) isEnvironment_Environment() {}
3793
3794// A single Android device.
3795type AndroidDevice struct {
3796	state         protoimpl.MessageState
3797	sizeCache     protoimpl.SizeCache
3798	unknownFields protoimpl.UnknownFields
3799
3800	// Required. The id of the Android device to be used.
3801	// Use the TestEnvironmentDiscoveryService to get supported options.
3802	AndroidModelId string `protobuf:"bytes,1,opt,name=android_model_id,json=androidModelId,proto3" json:"android_model_id,omitempty"`
3803	// Required. The id of the Android OS version to be used.
3804	// Use the TestEnvironmentDiscoveryService to get supported options.
3805	AndroidVersionId string `protobuf:"bytes,2,opt,name=android_version_id,json=androidVersionId,proto3" json:"android_version_id,omitempty"`
3806	// Required. The locale the test device used for testing.
3807	// Use the TestEnvironmentDiscoveryService to get supported options.
3808	Locale string `protobuf:"bytes,3,opt,name=locale,proto3" json:"locale,omitempty"`
3809	// Required. How the device is oriented during the test.
3810	// Use the TestEnvironmentDiscoveryService to get supported options.
3811	Orientation string `protobuf:"bytes,4,opt,name=orientation,proto3" json:"orientation,omitempty"`
3812}
3813
3814func (x *AndroidDevice) Reset() {
3815	*x = AndroidDevice{}
3816	if protoimpl.UnsafeEnabled {
3817		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[37]
3818		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3819		ms.StoreMessageInfo(mi)
3820	}
3821}
3822
3823func (x *AndroidDevice) String() string {
3824	return protoimpl.X.MessageStringOf(x)
3825}
3826
3827func (*AndroidDevice) ProtoMessage() {}
3828
3829func (x *AndroidDevice) ProtoReflect() protoreflect.Message {
3830	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[37]
3831	if protoimpl.UnsafeEnabled && x != nil {
3832		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3833		if ms.LoadMessageInfo() == nil {
3834			ms.StoreMessageInfo(mi)
3835		}
3836		return ms
3837	}
3838	return mi.MessageOf(x)
3839}
3840
3841// Deprecated: Use AndroidDevice.ProtoReflect.Descriptor instead.
3842func (*AndroidDevice) Descriptor() ([]byte, []int) {
3843	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{37}
3844}
3845
3846func (x *AndroidDevice) GetAndroidModelId() string {
3847	if x != nil {
3848		return x.AndroidModelId
3849	}
3850	return ""
3851}
3852
3853func (x *AndroidDevice) GetAndroidVersionId() string {
3854	if x != nil {
3855		return x.AndroidVersionId
3856	}
3857	return ""
3858}
3859
3860func (x *AndroidDevice) GetLocale() string {
3861	if x != nil {
3862		return x.Locale
3863	}
3864	return ""
3865}
3866
3867func (x *AndroidDevice) GetOrientation() string {
3868	if x != nil {
3869		return x.Orientation
3870	}
3871	return ""
3872}
3873
3874// A single iOS device.
3875type IosDevice struct {
3876	state         protoimpl.MessageState
3877	sizeCache     protoimpl.SizeCache
3878	unknownFields protoimpl.UnknownFields
3879
3880	// Required. The id of the iOS device to be used.
3881	// Use the TestEnvironmentDiscoveryService to get supported options.
3882	IosModelId string `protobuf:"bytes,1,opt,name=ios_model_id,json=iosModelId,proto3" json:"ios_model_id,omitempty"`
3883	// Required. The id of the iOS major software version to be used.
3884	// Use the TestEnvironmentDiscoveryService to get supported options.
3885	IosVersionId string `protobuf:"bytes,2,opt,name=ios_version_id,json=iosVersionId,proto3" json:"ios_version_id,omitempty"`
3886	// Required. The locale the test device used for testing.
3887	// Use the TestEnvironmentDiscoveryService to get supported options.
3888	Locale string `protobuf:"bytes,3,opt,name=locale,proto3" json:"locale,omitempty"`
3889	// Required. How the device is oriented during the test.
3890	// Use the TestEnvironmentDiscoveryService to get supported options.
3891	Orientation string `protobuf:"bytes,4,opt,name=orientation,proto3" json:"orientation,omitempty"`
3892}
3893
3894func (x *IosDevice) Reset() {
3895	*x = IosDevice{}
3896	if protoimpl.UnsafeEnabled {
3897		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[38]
3898		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3899		ms.StoreMessageInfo(mi)
3900	}
3901}
3902
3903func (x *IosDevice) String() string {
3904	return protoimpl.X.MessageStringOf(x)
3905}
3906
3907func (*IosDevice) ProtoMessage() {}
3908
3909func (x *IosDevice) ProtoReflect() protoreflect.Message {
3910	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[38]
3911	if protoimpl.UnsafeEnabled && x != nil {
3912		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3913		if ms.LoadMessageInfo() == nil {
3914			ms.StoreMessageInfo(mi)
3915		}
3916		return ms
3917	}
3918	return mi.MessageOf(x)
3919}
3920
3921// Deprecated: Use IosDevice.ProtoReflect.Descriptor instead.
3922func (*IosDevice) Descriptor() ([]byte, []int) {
3923	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{38}
3924}
3925
3926func (x *IosDevice) GetIosModelId() string {
3927	if x != nil {
3928		return x.IosModelId
3929	}
3930	return ""
3931}
3932
3933func (x *IosDevice) GetIosVersionId() string {
3934	if x != nil {
3935		return x.IosVersionId
3936	}
3937	return ""
3938}
3939
3940func (x *IosDevice) GetLocale() string {
3941	if x != nil {
3942		return x.Locale
3943	}
3944	return ""
3945}
3946
3947func (x *IosDevice) GetOrientation() string {
3948	if x != nil {
3949		return x.Orientation
3950	}
3951	return ""
3952}
3953
3954// Additional details about the progress of the running test.
3955type TestDetails struct {
3956	state         protoimpl.MessageState
3957	sizeCache     protoimpl.SizeCache
3958	unknownFields protoimpl.UnknownFields
3959
3960	// Output only. Human-readable, detailed descriptions of the test's progress.
3961	// For example: "Provisioning a device", "Starting Test".
3962	//
3963	// During the course of execution new data may be appended
3964	// to the end of progress_messages.
3965	ProgressMessages []string `protobuf:"bytes,3,rep,name=progress_messages,json=progressMessages,proto3" json:"progress_messages,omitempty"`
3966	// Output only. If the TestState is ERROR, then this string will contain
3967	// human-readable details about the error.
3968	ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
3969}
3970
3971func (x *TestDetails) Reset() {
3972	*x = TestDetails{}
3973	if protoimpl.UnsafeEnabled {
3974		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[39]
3975		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3976		ms.StoreMessageInfo(mi)
3977	}
3978}
3979
3980func (x *TestDetails) String() string {
3981	return protoimpl.X.MessageStringOf(x)
3982}
3983
3984func (*TestDetails) ProtoMessage() {}
3985
3986func (x *TestDetails) ProtoReflect() protoreflect.Message {
3987	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[39]
3988	if protoimpl.UnsafeEnabled && x != nil {
3989		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3990		if ms.LoadMessageInfo() == nil {
3991			ms.StoreMessageInfo(mi)
3992		}
3993		return ms
3994	}
3995	return mi.MessageOf(x)
3996}
3997
3998// Deprecated: Use TestDetails.ProtoReflect.Descriptor instead.
3999func (*TestDetails) Descriptor() ([]byte, []int) {
4000	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{39}
4001}
4002
4003func (x *TestDetails) GetProgressMessages() []string {
4004	if x != nil {
4005		return x.ProgressMessages
4006	}
4007	return nil
4008}
4009
4010func (x *TestDetails) GetErrorMessage() string {
4011	if x != nil {
4012		return x.ErrorMessage
4013	}
4014	return ""
4015}
4016
4017// Details behind an invalid request.
4018type InvalidRequestDetail struct {
4019	state         protoimpl.MessageState
4020	sizeCache     protoimpl.SizeCache
4021	unknownFields protoimpl.UnknownFields
4022
4023	// The reason behind the error.
4024	Reason InvalidRequestDetail_Reason `protobuf:"varint,1,opt,name=reason,proto3,enum=google.devtools.testing.v1.InvalidRequestDetail_Reason" json:"reason,omitempty"`
4025}
4026
4027func (x *InvalidRequestDetail) Reset() {
4028	*x = InvalidRequestDetail{}
4029	if protoimpl.UnsafeEnabled {
4030		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[40]
4031		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4032		ms.StoreMessageInfo(mi)
4033	}
4034}
4035
4036func (x *InvalidRequestDetail) String() string {
4037	return protoimpl.X.MessageStringOf(x)
4038}
4039
4040func (*InvalidRequestDetail) ProtoMessage() {}
4041
4042func (x *InvalidRequestDetail) ProtoReflect() protoreflect.Message {
4043	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[40]
4044	if protoimpl.UnsafeEnabled && x != nil {
4045		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4046		if ms.LoadMessageInfo() == nil {
4047			ms.StoreMessageInfo(mi)
4048		}
4049		return ms
4050	}
4051	return mi.MessageOf(x)
4052}
4053
4054// Deprecated: Use InvalidRequestDetail.ProtoReflect.Descriptor instead.
4055func (*InvalidRequestDetail) Descriptor() ([]byte, []int) {
4056	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{40}
4057}
4058
4059func (x *InvalidRequestDetail) GetReason() InvalidRequestDetail_Reason {
4060	if x != nil {
4061		return x.Reason
4062	}
4063	return InvalidRequestDetail_REASON_UNSPECIFIED
4064}
4065
4066// Options for enabling sharding.
4067type ShardingOption struct {
4068	state         protoimpl.MessageState
4069	sizeCache     protoimpl.SizeCache
4070	unknownFields protoimpl.UnknownFields
4071
4072	// Types that are assignable to Option:
4073	//	*ShardingOption_UniformSharding
4074	//	*ShardingOption_ManualSharding
4075	Option isShardingOption_Option `protobuf_oneof:"option"`
4076}
4077
4078func (x *ShardingOption) Reset() {
4079	*x = ShardingOption{}
4080	if protoimpl.UnsafeEnabled {
4081		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[41]
4082		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4083		ms.StoreMessageInfo(mi)
4084	}
4085}
4086
4087func (x *ShardingOption) String() string {
4088	return protoimpl.X.MessageStringOf(x)
4089}
4090
4091func (*ShardingOption) ProtoMessage() {}
4092
4093func (x *ShardingOption) ProtoReflect() protoreflect.Message {
4094	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[41]
4095	if protoimpl.UnsafeEnabled && x != nil {
4096		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4097		if ms.LoadMessageInfo() == nil {
4098			ms.StoreMessageInfo(mi)
4099		}
4100		return ms
4101	}
4102	return mi.MessageOf(x)
4103}
4104
4105// Deprecated: Use ShardingOption.ProtoReflect.Descriptor instead.
4106func (*ShardingOption) Descriptor() ([]byte, []int) {
4107	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{41}
4108}
4109
4110func (m *ShardingOption) GetOption() isShardingOption_Option {
4111	if m != nil {
4112		return m.Option
4113	}
4114	return nil
4115}
4116
4117func (x *ShardingOption) GetUniformSharding() *UniformSharding {
4118	if x, ok := x.GetOption().(*ShardingOption_UniformSharding); ok {
4119		return x.UniformSharding
4120	}
4121	return nil
4122}
4123
4124func (x *ShardingOption) GetManualSharding() *ManualSharding {
4125	if x, ok := x.GetOption().(*ShardingOption_ManualSharding); ok {
4126		return x.ManualSharding
4127	}
4128	return nil
4129}
4130
4131type isShardingOption_Option interface {
4132	isShardingOption_Option()
4133}
4134
4135type ShardingOption_UniformSharding struct {
4136	// Uniformly shards test cases given a total number of shards.
4137	UniformSharding *UniformSharding `protobuf:"bytes,1,opt,name=uniform_sharding,json=uniformSharding,proto3,oneof"`
4138}
4139
4140type ShardingOption_ManualSharding struct {
4141	// Shards test cases into the specified groups of packages, classes, and/or
4142	// methods.
4143	ManualSharding *ManualSharding `protobuf:"bytes,2,opt,name=manual_sharding,json=manualSharding,proto3,oneof"`
4144}
4145
4146func (*ShardingOption_UniformSharding) isShardingOption_Option() {}
4147
4148func (*ShardingOption_ManualSharding) isShardingOption_Option() {}
4149
4150// Uniformly shards test cases given a total number of shards.
4151//
4152// For Instrumentation test, it will be translated to "-e numShard" "-e
4153// shardIndex" AndroidJUnitRunner arguments. With uniform sharding enabled,
4154// specifying these sharding arguments via environment_variables is invalid.
4155type UniformSharding struct {
4156	state         protoimpl.MessageState
4157	sizeCache     protoimpl.SizeCache
4158	unknownFields protoimpl.UnknownFields
4159
4160	// Required. Total number of shards. When any physical devices are selected,
4161	// the number must be >= 1 and <= 50. When no physical devices are selected,
4162	// the number must be >= 1 and <= 500.
4163	NumShards int32 `protobuf:"varint,1,opt,name=num_shards,json=numShards,proto3" json:"num_shards,omitempty"`
4164}
4165
4166func (x *UniformSharding) Reset() {
4167	*x = UniformSharding{}
4168	if protoimpl.UnsafeEnabled {
4169		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[42]
4170		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4171		ms.StoreMessageInfo(mi)
4172	}
4173}
4174
4175func (x *UniformSharding) String() string {
4176	return protoimpl.X.MessageStringOf(x)
4177}
4178
4179func (*UniformSharding) ProtoMessage() {}
4180
4181func (x *UniformSharding) ProtoReflect() protoreflect.Message {
4182	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[42]
4183	if protoimpl.UnsafeEnabled && x != nil {
4184		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4185		if ms.LoadMessageInfo() == nil {
4186			ms.StoreMessageInfo(mi)
4187		}
4188		return ms
4189	}
4190	return mi.MessageOf(x)
4191}
4192
4193// Deprecated: Use UniformSharding.ProtoReflect.Descriptor instead.
4194func (*UniformSharding) Descriptor() ([]byte, []int) {
4195	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{42}
4196}
4197
4198func (x *UniformSharding) GetNumShards() int32 {
4199	if x != nil {
4200		return x.NumShards
4201	}
4202	return 0
4203}
4204
4205// Shards test cases into the specified groups of packages, classes, and/or
4206// methods.
4207//
4208// With manual sharding enabled, specifying test targets via
4209// environment_variables or in InstrumentationTest is invalid.
4210type ManualSharding struct {
4211	state         protoimpl.MessageState
4212	sizeCache     protoimpl.SizeCache
4213	unknownFields protoimpl.UnknownFields
4214
4215	// Required. Group of packages, classes, and/or test methods to be run for
4216	// each shard. When any physical devices are selected,  the number of
4217	// test_targets_for_shard must be >= 1 and <= 50. When no physical devices are
4218	// selected, the number must be >= 1 and <= 500.
4219	TestTargetsForShard []*TestTargetsForShard `protobuf:"bytes,1,rep,name=test_targets_for_shard,json=testTargetsForShard,proto3" json:"test_targets_for_shard,omitempty"`
4220}
4221
4222func (x *ManualSharding) Reset() {
4223	*x = ManualSharding{}
4224	if protoimpl.UnsafeEnabled {
4225		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[43]
4226		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4227		ms.StoreMessageInfo(mi)
4228	}
4229}
4230
4231func (x *ManualSharding) String() string {
4232	return protoimpl.X.MessageStringOf(x)
4233}
4234
4235func (*ManualSharding) ProtoMessage() {}
4236
4237func (x *ManualSharding) ProtoReflect() protoreflect.Message {
4238	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[43]
4239	if protoimpl.UnsafeEnabled && x != nil {
4240		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4241		if ms.LoadMessageInfo() == nil {
4242			ms.StoreMessageInfo(mi)
4243		}
4244		return ms
4245	}
4246	return mi.MessageOf(x)
4247}
4248
4249// Deprecated: Use ManualSharding.ProtoReflect.Descriptor instead.
4250func (*ManualSharding) Descriptor() ([]byte, []int) {
4251	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{43}
4252}
4253
4254func (x *ManualSharding) GetTestTargetsForShard() []*TestTargetsForShard {
4255	if x != nil {
4256		return x.TestTargetsForShard
4257	}
4258	return nil
4259}
4260
4261// Test targets for a shard.
4262type TestTargetsForShard struct {
4263	state         protoimpl.MessageState
4264	sizeCache     protoimpl.SizeCache
4265	unknownFields protoimpl.UnknownFields
4266
4267	// Group of packages, classes, and/or test methods to be run for each shard.
4268	// The targets need to be specified in AndroidJUnitRunner argument format. For
4269	// example, "package com.my.packages" "class com.my.package.MyClass".
4270	//
4271	// The number of shard_test_targets must be greater than 0.
4272	TestTargets []string `protobuf:"bytes,1,rep,name=test_targets,json=testTargets,proto3" json:"test_targets,omitempty"`
4273}
4274
4275func (x *TestTargetsForShard) Reset() {
4276	*x = TestTargetsForShard{}
4277	if protoimpl.UnsafeEnabled {
4278		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[44]
4279		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4280		ms.StoreMessageInfo(mi)
4281	}
4282}
4283
4284func (x *TestTargetsForShard) String() string {
4285	return protoimpl.X.MessageStringOf(x)
4286}
4287
4288func (*TestTargetsForShard) ProtoMessage() {}
4289
4290func (x *TestTargetsForShard) ProtoReflect() protoreflect.Message {
4291	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[44]
4292	if protoimpl.UnsafeEnabled && x != nil {
4293		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4294		if ms.LoadMessageInfo() == nil {
4295			ms.StoreMessageInfo(mi)
4296		}
4297		return ms
4298	}
4299	return mi.MessageOf(x)
4300}
4301
4302// Deprecated: Use TestTargetsForShard.ProtoReflect.Descriptor instead.
4303func (*TestTargetsForShard) Descriptor() ([]byte, []int) {
4304	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{44}
4305}
4306
4307func (x *TestTargetsForShard) GetTestTargets() []string {
4308	if x != nil {
4309		return x.TestTargets
4310	}
4311	return nil
4312}
4313
4314// Output only. Details about the shard.
4315type Shard struct {
4316	state         protoimpl.MessageState
4317	sizeCache     protoimpl.SizeCache
4318	unknownFields protoimpl.UnknownFields
4319
4320	// Output only. The index of the shard among all the shards.
4321	ShardIndex int32 `protobuf:"varint,1,opt,name=shard_index,json=shardIndex,proto3" json:"shard_index,omitempty"`
4322	// Output only. The total number of shards.
4323	NumShards int32 `protobuf:"varint,2,opt,name=num_shards,json=numShards,proto3" json:"num_shards,omitempty"`
4324	// Output only. Test targets for each shard.
4325	TestTargetsForShard *TestTargetsForShard `protobuf:"bytes,3,opt,name=test_targets_for_shard,json=testTargetsForShard,proto3" json:"test_targets_for_shard,omitempty"`
4326}
4327
4328func (x *Shard) Reset() {
4329	*x = Shard{}
4330	if protoimpl.UnsafeEnabled {
4331		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[45]
4332		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4333		ms.StoreMessageInfo(mi)
4334	}
4335}
4336
4337func (x *Shard) String() string {
4338	return protoimpl.X.MessageStringOf(x)
4339}
4340
4341func (*Shard) ProtoMessage() {}
4342
4343func (x *Shard) ProtoReflect() protoreflect.Message {
4344	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[45]
4345	if protoimpl.UnsafeEnabled && x != nil {
4346		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4347		if ms.LoadMessageInfo() == nil {
4348			ms.StoreMessageInfo(mi)
4349		}
4350		return ms
4351	}
4352	return mi.MessageOf(x)
4353}
4354
4355// Deprecated: Use Shard.ProtoReflect.Descriptor instead.
4356func (*Shard) Descriptor() ([]byte, []int) {
4357	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{45}
4358}
4359
4360func (x *Shard) GetShardIndex() int32 {
4361	if x != nil {
4362		return x.ShardIndex
4363	}
4364	return 0
4365}
4366
4367func (x *Shard) GetNumShards() int32 {
4368	if x != nil {
4369		return x.NumShards
4370	}
4371	return 0
4372}
4373
4374func (x *Shard) GetTestTargetsForShard() *TestTargetsForShard {
4375	if x != nil {
4376		return x.TestTargetsForShard
4377	}
4378	return nil
4379}
4380
4381// Request to submit a matrix of tests for execution.
4382type CreateTestMatrixRequest struct {
4383	state         protoimpl.MessageState
4384	sizeCache     protoimpl.SizeCache
4385	unknownFields protoimpl.UnknownFields
4386
4387	// The GCE project under which this job will run.
4388	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
4389	// The matrix of tests that the user wants to run.
4390	TestMatrix *TestMatrix `protobuf:"bytes,2,opt,name=test_matrix,json=testMatrix,proto3" json:"test_matrix,omitempty"`
4391	// A string id used to detect duplicated requests.
4392	// Ids are automatically scoped to a project, so
4393	// users should ensure the ID is unique per-project.
4394	// A UUID is recommended.
4395	//
4396	// Optional, but strongly recommended.
4397	RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
4398}
4399
4400func (x *CreateTestMatrixRequest) Reset() {
4401	*x = CreateTestMatrixRequest{}
4402	if protoimpl.UnsafeEnabled {
4403		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[46]
4404		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4405		ms.StoreMessageInfo(mi)
4406	}
4407}
4408
4409func (x *CreateTestMatrixRequest) String() string {
4410	return protoimpl.X.MessageStringOf(x)
4411}
4412
4413func (*CreateTestMatrixRequest) ProtoMessage() {}
4414
4415func (x *CreateTestMatrixRequest) ProtoReflect() protoreflect.Message {
4416	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[46]
4417	if protoimpl.UnsafeEnabled && x != nil {
4418		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4419		if ms.LoadMessageInfo() == nil {
4420			ms.StoreMessageInfo(mi)
4421		}
4422		return ms
4423	}
4424	return mi.MessageOf(x)
4425}
4426
4427// Deprecated: Use CreateTestMatrixRequest.ProtoReflect.Descriptor instead.
4428func (*CreateTestMatrixRequest) Descriptor() ([]byte, []int) {
4429	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{46}
4430}
4431
4432func (x *CreateTestMatrixRequest) GetProjectId() string {
4433	if x != nil {
4434		return x.ProjectId
4435	}
4436	return ""
4437}
4438
4439func (x *CreateTestMatrixRequest) GetTestMatrix() *TestMatrix {
4440	if x != nil {
4441		return x.TestMatrix
4442	}
4443	return nil
4444}
4445
4446func (x *CreateTestMatrixRequest) GetRequestId() string {
4447	if x != nil {
4448		return x.RequestId
4449	}
4450	return ""
4451}
4452
4453// Request to get the Test Matrix with the given id.
4454type GetTestMatrixRequest struct {
4455	state         protoimpl.MessageState
4456	sizeCache     protoimpl.SizeCache
4457	unknownFields protoimpl.UnknownFields
4458
4459	// Cloud project that owns the test matrix.
4460	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
4461	// Unique test matrix id which was assigned by the service.
4462	TestMatrixId string `protobuf:"bytes,2,opt,name=test_matrix_id,json=testMatrixId,proto3" json:"test_matrix_id,omitempty"`
4463}
4464
4465func (x *GetTestMatrixRequest) Reset() {
4466	*x = GetTestMatrixRequest{}
4467	if protoimpl.UnsafeEnabled {
4468		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[47]
4469		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4470		ms.StoreMessageInfo(mi)
4471	}
4472}
4473
4474func (x *GetTestMatrixRequest) String() string {
4475	return protoimpl.X.MessageStringOf(x)
4476}
4477
4478func (*GetTestMatrixRequest) ProtoMessage() {}
4479
4480func (x *GetTestMatrixRequest) ProtoReflect() protoreflect.Message {
4481	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[47]
4482	if protoimpl.UnsafeEnabled && x != nil {
4483		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4484		if ms.LoadMessageInfo() == nil {
4485			ms.StoreMessageInfo(mi)
4486		}
4487		return ms
4488	}
4489	return mi.MessageOf(x)
4490}
4491
4492// Deprecated: Use GetTestMatrixRequest.ProtoReflect.Descriptor instead.
4493func (*GetTestMatrixRequest) Descriptor() ([]byte, []int) {
4494	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{47}
4495}
4496
4497func (x *GetTestMatrixRequest) GetProjectId() string {
4498	if x != nil {
4499		return x.ProjectId
4500	}
4501	return ""
4502}
4503
4504func (x *GetTestMatrixRequest) GetTestMatrixId() string {
4505	if x != nil {
4506		return x.TestMatrixId
4507	}
4508	return ""
4509}
4510
4511// Request to stop running all of the tests in the specified matrix.
4512type CancelTestMatrixRequest struct {
4513	state         protoimpl.MessageState
4514	sizeCache     protoimpl.SizeCache
4515	unknownFields protoimpl.UnknownFields
4516
4517	// Cloud project that owns the test.
4518	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
4519	// Test matrix that will be canceled.
4520	TestMatrixId string `protobuf:"bytes,2,opt,name=test_matrix_id,json=testMatrixId,proto3" json:"test_matrix_id,omitempty"`
4521}
4522
4523func (x *CancelTestMatrixRequest) Reset() {
4524	*x = CancelTestMatrixRequest{}
4525	if protoimpl.UnsafeEnabled {
4526		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[48]
4527		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4528		ms.StoreMessageInfo(mi)
4529	}
4530}
4531
4532func (x *CancelTestMatrixRequest) String() string {
4533	return protoimpl.X.MessageStringOf(x)
4534}
4535
4536func (*CancelTestMatrixRequest) ProtoMessage() {}
4537
4538func (x *CancelTestMatrixRequest) ProtoReflect() protoreflect.Message {
4539	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[48]
4540	if protoimpl.UnsafeEnabled && x != nil {
4541		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4542		if ms.LoadMessageInfo() == nil {
4543			ms.StoreMessageInfo(mi)
4544		}
4545		return ms
4546	}
4547	return mi.MessageOf(x)
4548}
4549
4550// Deprecated: Use CancelTestMatrixRequest.ProtoReflect.Descriptor instead.
4551func (*CancelTestMatrixRequest) Descriptor() ([]byte, []int) {
4552	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{48}
4553}
4554
4555func (x *CancelTestMatrixRequest) GetProjectId() string {
4556	if x != nil {
4557		return x.ProjectId
4558	}
4559	return ""
4560}
4561
4562func (x *CancelTestMatrixRequest) GetTestMatrixId() string {
4563	if x != nil {
4564		return x.TestMatrixId
4565	}
4566	return ""
4567}
4568
4569// Response containing the current state of the specified test matrix.
4570type CancelTestMatrixResponse struct {
4571	state         protoimpl.MessageState
4572	sizeCache     protoimpl.SizeCache
4573	unknownFields protoimpl.UnknownFields
4574
4575	// The current rolled-up state of the test matrix.
4576	// If this state is already final, then the cancelation request will
4577	// have no effect.
4578	TestState TestState `protobuf:"varint,1,opt,name=test_state,json=testState,proto3,enum=google.devtools.testing.v1.TestState" json:"test_state,omitempty"`
4579}
4580
4581func (x *CancelTestMatrixResponse) Reset() {
4582	*x = CancelTestMatrixResponse{}
4583	if protoimpl.UnsafeEnabled {
4584		mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[49]
4585		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4586		ms.StoreMessageInfo(mi)
4587	}
4588}
4589
4590func (x *CancelTestMatrixResponse) String() string {
4591	return protoimpl.X.MessageStringOf(x)
4592}
4593
4594func (*CancelTestMatrixResponse) ProtoMessage() {}
4595
4596func (x *CancelTestMatrixResponse) ProtoReflect() protoreflect.Message {
4597	mi := &file_google_devtools_testing_v1_test_execution_proto_msgTypes[49]
4598	if protoimpl.UnsafeEnabled && x != nil {
4599		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
4600		if ms.LoadMessageInfo() == nil {
4601			ms.StoreMessageInfo(mi)
4602		}
4603		return ms
4604	}
4605	return mi.MessageOf(x)
4606}
4607
4608// Deprecated: Use CancelTestMatrixResponse.ProtoReflect.Descriptor instead.
4609func (*CancelTestMatrixResponse) Descriptor() ([]byte, []int) {
4610	return file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP(), []int{49}
4611}
4612
4613func (x *CancelTestMatrixResponse) GetTestState() TestState {
4614	if x != nil {
4615		return x.TestState
4616	}
4617	return TestState_TEST_STATE_UNSPECIFIED
4618}
4619
4620var File_google_devtools_testing_v1_test_execution_proto protoreflect.FileDescriptor
4621
4622var file_google_devtools_testing_v1_test_execution_proto_rawDesc = []byte{
4623	0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
4624	0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73,
4625	0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
4626	0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
4627	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67,
4628	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
4629	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
4630	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65,
4631	0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f,
4632	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
4633	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
4634	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
4635	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67,
4636	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
4637	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfd, 0x06, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x4d,
4638	0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61,
4639	0x74, 0x72, 0x69, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74,
4640	0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
4641	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
4642	0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x63, 0x6c,
4643	0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
4644	0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
4645	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69,
4646	0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49,
4647	0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x12, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63,
4648	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
4649	0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
4650	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73,
4651	0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11,
4652	0x74, 0x65, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
4653	0x6e, 0x12, 0x5c, 0x0a, 0x12, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
4654	0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
4655	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
4656	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72,
4657	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x11, 0x65, 0x6e,
4658	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12,
4659	0x52, 0x0a, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
4660	0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
4661	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
4662	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
4663	0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
4664	0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74,
4665	0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f,
4666	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
4667	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53,
4668	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74,
4669	0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08,
4670	0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
4671	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
4672	0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
4673	0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
4674	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
4675	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
4676	0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x66, 0x0a, 0x16,
4677	0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x64,
4678	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67,
4679	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
4680	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69,
4681	0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x14,
4682	0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, 0x74,
4683	0x61, 0x69, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x5f, 0x74, 0x65,
4684	0x73, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28,
4685	0x05, 0x52, 0x11, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x54, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x65,
4686	0x6d, 0x70, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f,
4687	0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e,
4688	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
4689	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x63, 0x6f,
4690	0x6d, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x63, 0x6f,
4691	0x6d, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x61, 0x69,
4692	0x6c, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x61,
4693	0x69, 0x6c, 0x46, 0x61, 0x73, 0x74, 0x22, 0xd9, 0x04, 0x0a, 0x0d, 0x54, 0x65, 0x73, 0x74, 0x45,
4694	0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
4695	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x72,
4696	0x69, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x74,
4697	0x72, 0x69, 0x78, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
4698	0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65,
4699	0x63, 0x74, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x12, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65,
4700	0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
4701	0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
4702	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65,
4703	0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
4704	0x11, 0x74, 0x65, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
4705	0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28,
4706	0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
4707	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53,
4708	0x68, 0x61, 0x72, 0x64, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0b, 0x65,
4709	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
4710	0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
4711	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e,
4712	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72,
4713	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
4714	0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64,
4715	0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
4716	0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
4717	0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75,
4718	0x6c, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
4719	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
4720	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c,
4721	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x53, 0x74, 0x65, 0x70, 0x52, 0x0f, 0x74, 0x6f, 0x6f,
4722	0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x53, 0x74, 0x65, 0x70, 0x12, 0x38, 0x0a, 0x09,
4723	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
4724	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
4725	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d,
4726	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x64,
4727	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67,
4728	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
4729	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65,
4730	0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69,
4731	0x6c, 0x73, 0x22, 0xbe, 0x06, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69,
4732	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74,
4733	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
4734	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
4735	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x54,
4736	0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73,
4737	0x65, 0x74, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f,
4738	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
4739	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75,
4740	0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x50,
4741	0x0a, 0x0e, 0x69, 0x6f, 0x73, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70,
4742	0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
4743	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
4744	0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70,
4745	0x48, 0x00, 0x52, 0x0c, 0x69, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70,
4746	0x12, 0x7a, 0x0a, 0x1c, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74,
4747	0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x73, 0x74,
4748	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
4749	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
4750	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72,
4751	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x48, 0x01,
4752	0x52, 0x1a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d,
4753	0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x11,
4754	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x72, 0x6f, 0x62, 0x6f, 0x5f, 0x74, 0x65, 0x73,
4755	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4756	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
4757	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x52, 0x6f, 0x62, 0x6f,
4758	0x54, 0x65, 0x73, 0x74, 0x48, 0x01, 0x52, 0x0f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x52,
4759	0x6f, 0x62, 0x6f, 0x54, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x11, 0x61, 0x6e, 0x64, 0x72, 0x6f,
4760	0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x09, 0x20, 0x01,
4761	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
4762	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
4763	0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x48,
4764	0x01, 0x52, 0x0f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f,
4765	0x6f, 0x70, 0x12, 0x47, 0x0a, 0x0b, 0x69, 0x6f, 0x73, 0x5f, 0x78, 0x63, 0x5f, 0x74, 0x65, 0x73,
4766	0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4767	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
4768	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x58, 0x63, 0x54, 0x65, 0x73, 0x74, 0x48, 0x01,
4769	0x52, 0x09, 0x69, 0x6f, 0x73, 0x58, 0x63, 0x54, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x69,
4770	0x6f, 0x73, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x0f, 0x20, 0x01,
4771	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
4772	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
4773	0x49, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x48, 0x01, 0x52, 0x0b, 0x69,
4774	0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69,
4775	0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f,
4776	0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73,
4777	0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69,
4778	0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x65,
4779	0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
4780	0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
4781	0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69,
4782	0x63, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x74,
4783	0x65, 0x73, 0x74, 0x22, 0x3a, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53,
4784	0x65, 0x74, 0x75, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
4785	0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f,
4786	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22,
4787	0xa4, 0x04, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x4a, 0x0a,
4788	0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x18, 0x01,
4789	0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
4790	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
4791	0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x66, 0x69,
4792	0x6c, 0x65, 0x73, 0x54, 0x6f, 0x50, 0x75, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x72,
4793	0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x75, 0x6c, 0x6c,
4794	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72,
4795	0x69, 0x65, 0x73, 0x54, 0x6f, 0x50, 0x75, 0x6c, 0x6c, 0x12, 0x48, 0x0a, 0x0f, 0x61, 0x64, 0x64,
4796	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x70, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03,
4797	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
4798	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
4799	0x41, 0x70, 0x6b, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41,
4800	0x70, 0x6b, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04,
4801	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
4802	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
4803	0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75,
4804	0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x72,
4805	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74,
4806	0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x15, 0x65,
4807	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61,
4808	0x62, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f,
4809	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
4810	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
4811	0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x14, 0x65, 0x6e, 0x76,
4812	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
4813	0x73, 0x12, 0x45, 0x0a, 0x08, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20,
4814	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
4815	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
4816	0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x08,
4817	0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x64, 0x6f, 0x6e, 0x74,
4818	0x5f, 0x61, 0x75, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69,
4819	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x64, 0x6f,
4820	0x6e, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69,
4821	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xab, 0x02, 0x0a, 0x0c, 0x49, 0x6f, 0x73, 0x54, 0x65,
4822	0x73, 0x74, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f,
4823	0x72, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
4824	0x52, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
4825	0x12, 0x52, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69,
4826	0x70, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
4827	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
4828	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72,
4829	0x65, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
4830	0x49, 0x70, 0x61, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x6c,
4831	0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
4832	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
4833	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46,
4834	0x69, 0x6c, 0x65, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x54,
4835	0x0a, 0x10, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69,
4836	0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
4837	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
4838	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46,
4839	0x69, 0x6c, 0x65, 0x52, 0x0f, 0x70, 0x75, 0x6c, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f,
4840	0x72, 0x69, 0x65, 0x73, 0x22, 0x3d, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
4841	0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b,
4842	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
4843	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
4844	0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49,
4845	0x0a, 0x0b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x01, 0x20,
4846	0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
4847	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
4848	0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x0a, 0x67,
4849	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x0e, 0x0a, 0x0c, 0x61, 0x63, 0x63,
4850	0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x47, 0x6f, 0x6f,
4851	0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x22, 0x6f, 0x0a, 0x03, 0x41, 0x70, 0x6b, 0x12, 0x45,
4852	0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
4853	0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
4854	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69,
4855	0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x6c, 0x6f, 0x63,
4856	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
4857	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63,
4858	0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x42,
4859	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f,
4860	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
4861	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
4862	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65,
4863	0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x75, 0x6e,
4864	0x64, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x62,
4865	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
4866	0x46, 0x69, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x6f, 0x62, 0x62, 0x5f, 0x66, 0x69, 0x6c, 0x65,
4867	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
4868	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
4869	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6f,
4870	0x62, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61,
4871	0x72, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67,
4872	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
4873	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61,
4874	0x72, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72,
4875	0x46, 0x69, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66,
4876	0x69, 0x6c, 0x65, 0x22, 0x6a, 0x0a, 0x07, 0x4f, 0x62, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x22,
4877	0x0a, 0x0d, 0x6f, 0x62, 0x62, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
4878	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x61,
4879	0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x03, 0x6f, 0x62, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
4880	0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
4881	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c,
4882	0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x03, 0x6f, 0x62, 0x62, 0x22,
4883	0x73, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x43,
4884	0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
4885	0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
4886	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c,
4887	0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,
4888	0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61,
4889	0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
4890	0x50, 0x61, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x0d, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69,
4891	0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
4892	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4893	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
4894	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
4895	0x63, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62,
4896	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
4897	0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69,
4898	0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64,
4899	0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x9e, 0x02, 0x0a, 0x0f, 0x41, 0x6e,
4900	0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x44, 0x0a,
4901	0x07, 0x61, 0x70, 0x70, 0x5f, 0x61, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
4902	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
4903	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65,
4904	0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x61, 0x70, 0x70,
4905	0x41, 0x70, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c,
4906	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
4907	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
4908	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x48, 0x00,
4909	0x52, 0x09, 0x61, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61,
4910	0x70, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
4911	0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49,
4912	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x18, 0x03,
4913	0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x12,
4914	0x27, 0x0a, 0x0f, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x5f, 0x6c, 0x61, 0x62, 0x65,
4915	0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72,
4916	0x69, 0x6f, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f,
4917	0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x49,
4918	0x6f, 0x73, 0x58, 0x63, 0x54, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74,
4919	0x73, 0x5f, 0x7a, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f,
4920	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
4921	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66,
4922	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x73, 0x5a, 0x69, 0x70,
4923	0x12, 0x47, 0x0a, 0x09, 0x78, 0x63, 0x74, 0x65, 0x73, 0x74, 0x72, 0x75, 0x6e, 0x18, 0x02, 0x20,
4924	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
4925	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
4926	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09,
4927	0x78, 0x63, 0x74, 0x65, 0x73, 0x74, 0x72, 0x75, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x78, 0x63, 0x6f,
4928	0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
4929	0x52, 0x0c, 0x78, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22,
4930	0x0a, 0x0d, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18,
4931	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
4932	0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69,
4933	0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18,
4934	0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x74, 0x65, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69,
4935	0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x93,
4936	0x01, 0x0a, 0x0b, 0x49, 0x6f, 0x73, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x42,
4937	0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x70, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
4938	0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
4939	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c,
4940	0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x61, 0x70, 0x70, 0x49,
4941	0x70, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73, 0x18,
4942	0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x61, 0x72, 0x69, 0x6f, 0x73,
4943	0x12, 0x22, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x69,
4944	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64,
4945	0x6c, 0x65, 0x49, 0x64, 0x22, 0xd5, 0x04, 0x0a, 0x1a, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
4946	0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
4947	0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x61, 0x70, 0x6b, 0x18, 0x01,
4948	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
4949	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
4950	0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48,
4951	0x00, 0x52, 0x06, 0x61, 0x70, 0x70, 0x41, 0x70, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x70, 0x70,
4952	0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
4953	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
4954	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x42, 0x75,
4955	0x6e, 0x64, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x09, 0x61, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c,
4956	0x65, 0x12, 0x44, 0x0a, 0x08, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x6b, 0x18, 0x02, 0x20,
4957	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
4958	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
4959	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x07,
4960	0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x70,
4961	0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
4962	0x0c, 0x61, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a,
4963	0x0f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64,
4964	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b,
4965	0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x75,
4966	0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
4967	0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73,
4968	0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
4969	0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72,
4970	0x67, 0x65, 0x74, 0x73, 0x12, 0x5f, 0x0a, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72,
4971	0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28,
4972	0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
4973	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4f,
4974	0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f,
4975	0x6e, 0x52, 0x12, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f,
4976	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e,
4977	0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a,
4978	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
4979	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72,
4980	0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72,
4981	0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x70,
4982	0x70, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x22, 0xc6, 0x04, 0x0a,
4983	0x0f, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x52, 0x6f, 0x62, 0x6f, 0x54, 0x65, 0x73, 0x74,
4984	0x12, 0x44, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x5f, 0x61, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28,
4985	0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
4986	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46,
4987	0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06,
4988	0x61, 0x70, 0x70, 0x41, 0x70, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x75,
4989	0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f,
4990	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
4991	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c,
4992	0x65, 0x48, 0x00, 0x52, 0x09, 0x61, 0x70, 0x70, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x24,
4993	0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64,
4994	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x61,
4995	0x67, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x69, 0x74,
4996	0x69, 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01,
4997	0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x41, 0x63,
4998	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65,
4999	0x70, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6d,
5000	0x61, 0x78, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x73,
5001	0x74, 0x65, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08,
5002	0x6d, 0x61, 0x78, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x52, 0x0a, 0x0f, 0x72, 0x6f, 0x62, 0x6f,
5003	0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28,
5004	0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
5005	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52,
5006	0x6f, 0x62, 0x6f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x0e, 0x72, 0x6f,
5007	0x62, 0x6f, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b,
5008	0x72, 0x6f, 0x62, 0x6f, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28,
5009	0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
5010	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x46,
5011	0x69, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x72, 0x6f,
5012	0x62, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x59, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72,
5013	0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03,
5014	0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
5015	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
5016	0x52, 0x6f, 0x62, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65,
5017	0x6e, 0x74, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65,
5018	0x6e, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72,
5019	0x5f, 0x74, 0x65, 0x73, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x44, 0x69,
5020	0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75,
5021	0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
5022	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a,
5023	0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
5024	0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x65, 0x78, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x61,
5025	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
5026	0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
5027	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f,
5028	0x62, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, 0x63,
5029	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x99, 0x02, 0x0a, 0x12, 0x52, 0x6f, 0x62,
5030	0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
5031	0x61, 0x0a, 0x11, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69,
5032	0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f,
5033	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
5034	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72,
5035	0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00,
5036	0x52, 0x10, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
5037	0x74, 0x79, 0x12, 0x58, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69,
5038	0x76, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f,
5039	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
5040	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74,
5041	0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x73,
5042	0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x07,
5043	0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
5044	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
5045	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
5046	0x74, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e,
5047	0x74, 0x65, 0x6e, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72,
5048	0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x5f,
5049	0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49,
5050	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
5051	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a,
5052	0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12,
5053	0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20,
5054	0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22,
5055	0xb3, 0x02, 0x0a, 0x11, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
5056	0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x52, 0x0a, 0x0e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
5057	0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e,
5058	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
5059	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f,
5060	0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x6e, 0x64, 0x72,
5061	0x6f, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x5f, 0x0a, 0x13, 0x61, 0x6e, 0x64,
5062	0x72, 0x6f, 0x69, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74,
5063	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
5064	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
5065	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63,
5066	0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
5067	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x0f, 0x69, 0x6f,
5068	0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20,
5069	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
5070	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
5071	0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00,
5072	0x52, 0x0d, 0x69, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42,
5073	0x14, 0x0a, 0x12, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d,
5074	0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x67, 0x0a, 0x11, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
5075	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x61, 0x6e,
5076	0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20,
5077	0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
5078	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
5079	0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0e,
5080	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x57,
5081	0x0a, 0x0d, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12,
5082	0x46, 0x0a, 0x0b, 0x69, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01,
5083	0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
5084	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
5085	0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6f, 0x73,
5086	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x41, 0x6e, 0x64, 0x72,
5087	0x6f, 0x69, 0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6e, 0x64,
5088	0x72, 0x6f, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
5089	0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d, 0x6f, 0x64,
5090	0x65, 0x6c, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
5091	0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03,
5092	0x28, 0x09, 0x52, 0x11, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69,
5093	0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x73,
5094	0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x12,
5095	0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
5096	0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
5097	0x6f, 0x6e, 0x73, 0x22, 0x7e, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66,
5098	0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
5099	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f,
5100	0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03,
5101	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
5102	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
5103	0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
5104	0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x74, 0x61,
5105	0x69, 0x6c, 0x73, 0x22, 0x3a, 0x0a, 0x10, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66,
5106	0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
5107	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
5108	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
5109	0xdc, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
5110	0x65, 0x12, 0x60, 0x0a, 0x14, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x75,
5111	0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
5112	0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
5113	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x6f,
5114	0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52,
5115	0x12, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72,
5116	0x61, 0x67, 0x65, 0x12, 0x60, 0x0a, 0x14, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75,
5117	0x6c, 0x74, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28,
5118	0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
5119	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54,
5120	0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
5121	0x79, 0x52, 0x12, 0x74, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x69,
5122	0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x66, 0x0a, 0x16, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65,
5123	0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18,
5124	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64,
5125	0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e,
5126	0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x78,
5127	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x74, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73,
5128	0x75, 0x6c, 0x74, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a,
5129	0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01,
5130	0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x55, 0x72, 0x6c, 0x22, 0x52,
5131	0x0a, 0x12, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x69, 0x73,
5132	0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f,
5133	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
5134	0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69,
5135	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
5136	0x49, 0x64, 0x22, 0x77, 0x0a, 0x14, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
5137	0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72,
5138	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
5139	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x73,
5140	0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68,
5141	0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63,
5142	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
5143	0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x0f,
5144	0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x53, 0x74, 0x65, 0x70, 0x12,
5145	0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
5146	0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1d,
5147	0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
5148	0x28, 0x09, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a,
5149	0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
5150	0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
5151	0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
5152	0x09, 0x52, 0x06, 0x73, 0x74, 0x65, 0x70, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x12, 0x47, 0x6f, 0x6f,
5153	0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12,
5154	0x19, 0x0a, 0x08, 0x67, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
5155	0x09, 0x52, 0x07, 0x67, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x22, 0x34, 0x0a, 0x0d, 0x46, 0x69,
5156	0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x67,
5157	0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
5158	0x07, 0x67, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65,
5159	0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
5160	0x12, 0x52, 0x0a, 0x0e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69,
5161	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5162	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
5163	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76,
5164	0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65,
5165	0x76, 0x69, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x69, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69,
5166	0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5167	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
5168	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48,
5169	0x00, 0x52, 0x09, 0x69, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, 0x0b,
5170	0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x0d,
5171	0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a,
5172	0x10, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69,
5173	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
5174	0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6e, 0x64, 0x72, 0x6f,
5175	0x69, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
5176	0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x56, 0x65, 0x72, 0x73,
5177	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18,
5178	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x20, 0x0a,
5179	0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
5180	0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
5181	0x8d, 0x01, 0x0a, 0x09, 0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a,
5182	0x0c, 0x69, 0x6f, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
5183	0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12,
5184	0x24, 0x0a, 0x0e, 0x69, 0x6f, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
5185	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73,
5186	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18,
5187	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x20, 0x0a,
5188	0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
5189	0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
5190	0x5f, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2b,
5191	0x0a, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61,
5192	0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72,
5193	0x65, 0x73, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65,
5194	0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01,
5195	0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
5196	0x22, 0xf3, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75,
5197	0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x61,
5198	0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
5199	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
5200	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65,
5201	0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x52, 0x65, 0x61, 0x73,
5202	0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x06, 0x52,
5203	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f,
5204	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a,
5205	0x0f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44,
5206	0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54,
5207	0x4f, 0x4f, 0x5f, 0x42, 0x49, 0x47, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x4f,
5208	0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03,
5209	0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10,
5210	0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x4d, 0x45,
5211	0x4e, 0x54, 0x45, 0x44, 0x10, 0x05, 0x22, 0xcb, 0x01, 0x0a, 0x0e, 0x53, 0x68, 0x61, 0x72, 0x64,
5212	0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x10, 0x75, 0x6e, 0x69,
5213	0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20,
5214	0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76,
5215	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
5216	0x2e, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67,
5217	0x48, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x64,
5218	0x69, 0x6e, 0x67, 0x12, 0x55, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68,
5219	0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67,
5220	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
5221	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c,
5222	0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x75,
5223	0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x70,
5224	0x74, 0x69, 0x6f, 0x6e, 0x22, 0x30, 0x0a, 0x0f, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x53,
5225	0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x73,
5226	0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x75, 0x6d,
5227	0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x22, 0x76, 0x0a, 0x0e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c,
5228	0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x64, 0x0a, 0x16, 0x74, 0x65, 0x73, 0x74,
5229	0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61,
5230	0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5231	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
5232	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
5233	0x73, 0x46, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x13, 0x74, 0x65, 0x73, 0x74, 0x54,
5234	0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x22, 0x38,
5235	0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x46, 0x6f, 0x72,
5236	0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x61,
5237	0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x73,
5238	0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x05, 0x53, 0x68, 0x61,
5239	0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65,
5240	0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e,
5241	0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64,
5242	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x72,
5243	0x64, 0x73, 0x12, 0x64, 0x0a, 0x16, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65,
5244	0x74, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01,
5245	0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
5246	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
5247	0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x53, 0x68,
5248	0x61, 0x72, 0x64, 0x52, 0x13, 0x74, 0x65, 0x73, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73,
5249	0x46, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65,
5250	0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71,
5251	0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f,
5252	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
5253	0x74, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72,
5254	0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5255	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
5256	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78,
5257	0x52, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x1d, 0x0a, 0x0a,
5258	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
5259	0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x14, 0x47,
5260	0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75,
5261	0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
5262	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
5263	0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69,
5264	0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74,
5265	0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x17, 0x43, 0x61, 0x6e, 0x63,
5266	0x65, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75,
5267	0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
5268	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
5269	0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69,
5270	0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74,
5271	0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63,
5272	0x65, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x73, 0x70,
5273	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61,
5274	0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5275	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
5276	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
5277	0x09, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x6c, 0x0a, 0x12, 0x4f, 0x72,
5278	0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
5279	0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x4f, 0x52,
5280	0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
5281	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x5f, 0x4f, 0x52, 0x43,
5282	0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x44,
5283	0x4f, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53,
5284	0x54, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0x5b, 0x0a, 0x0e, 0x52, 0x6f, 0x62, 0x6f,
5285	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43,
5286	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
5287	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x49, 0x4e, 0x47, 0x4c,
5288	0x45, 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x4e, 0x54,
5289	0x45, 0x52, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x47, 0x4e,
5290	0x4f, 0x52, 0x45, 0x10, 0x03, 0x2a, 0xbc, 0x07, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69,
5291	0x64, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26,
5292	0x0a, 0x22, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x54, 0x52, 0x49, 0x58,
5293	0x5f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
5294	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c,
5295	0x53, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12,
5296	0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x41, 0x50, 0x4b,
5297	0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f,
5298	0x54, 0x45, 0x53, 0x54, 0x5f, 0x41, 0x50, 0x4b, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f,
5299	0x5f, 0x4d, 0x41, 0x4e, 0x49, 0x46, 0x45, 0x53, 0x54, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4e,
5300	0x4f, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x05,
5301	0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b,
5302	0x41, 0x47, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x1f, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x45,
5303	0x53, 0x54, 0x5f, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x41, 0x53, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x06,
5304	0x12, 0x16, 0x0a, 0x12, 0x4e, 0x4f, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x4d, 0x45, 0x4e,
5305	0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x5f, 0x53,
5306	0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x14, 0x12, 0x2d, 0x0a, 0x29, 0x49, 0x4e,
5307	0x53, 0x54, 0x52, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x52,
5308	0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d,
5309	0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x12, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x5f,
5310	0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53,
5311	0x53, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x5f, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48,
5312	0x45, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x08, 0x12, 0x19, 0x0a,
5313	0x15, 0x46, 0x4f, 0x52, 0x42, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49,
5314	0x53, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41,
5315	0x4c, 0x49, 0x44, 0x5f, 0x52, 0x4f, 0x42, 0x4f, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49,
5316	0x56, 0x45, 0x53, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44,
5317	0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x21,
5318	0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x44, 0x49, 0x52, 0x45,
5319	0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x22, 0x12, 0x25,
5320	0x0a, 0x21, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x5f, 0x49, 0x4e, 0x54, 0x45,
5321	0x4e, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f,
5322	0x55, 0x4e, 0x44, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x43, 0x45, 0x4e, 0x41, 0x52, 0x49,
5323	0x4f, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4c,
5324	0x41, 0x52, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x43, 0x45, 0x4e, 0x41, 0x52,
5325	0x49, 0x4f, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d,
5326	0x45, 0x44, 0x10, 0x0e, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x43, 0x45, 0x4e, 0x41, 0x52, 0x49, 0x4f,
5327	0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x45, 0x44, 0x10, 0x0f, 0x12,
5328	0x19, 0x0a, 0x15, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f,
5329	0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x4d, 0x41,
5330	0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x58, 0x43, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f,
5331	0x5a, 0x49, 0x50, 0x10, 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x55, 0x49, 0x4c, 0x54, 0x5f, 0x46,
5332	0x4f, 0x52, 0x5f, 0x49, 0x4f, 0x53, 0x5f, 0x53, 0x49, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x4f, 0x52,
5333	0x10, 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x4f, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x53, 0x5f, 0x49,
5334	0x4e, 0x5f, 0x58, 0x43, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x5a, 0x49, 0x50, 0x10, 0x19, 0x12,
5335	0x1d, 0x0a, 0x19, 0x55, 0x53, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49,
5336	0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x53, 0x10, 0x1a, 0x12, 0x17,
5337	0x0a, 0x13, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x48,
5338	0x4f, 0x53, 0x54, 0x45, 0x44, 0x10, 0x1c, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4c, 0x49, 0x53, 0x54,
5339	0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45,
5340	0x44, 0x10, 0x1e, 0x12, 0x15, 0x0a, 0x0d, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59,
5341	0x5f, 0x41, 0x50, 0x4b, 0x10, 0x15, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41,
5342	0x4c, 0x46, 0x4f, 0x52, 0x4d, 0x45, 0x44, 0x5f, 0x49, 0x50, 0x41, 0x10, 0x16, 0x12, 0x16, 0x0a,
5343	0x12, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x52, 0x4c, 0x5f, 0x53, 0x43, 0x48,
5344	0x45, 0x4d, 0x45, 0x10, 0x23, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x41, 0x4c, 0x46, 0x4f, 0x52, 0x4d,
5345	0x45, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, 0x10, 0x24, 0x12,
5346	0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x50, 0x4b, 0x10, 0x17,
5347	0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55,
5348	0x54, 0x5f, 0x41, 0x50, 0x4b, 0x10, 0x1b, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x56, 0x41, 0x4c,
5349	0x49, 0x44, 0x5f, 0x41, 0x50, 0x4b, 0x5f, 0x50, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x53,
5350	0x44, 0x4b, 0x10, 0x1d, 0x2a, 0xe0, 0x01, 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61,
5351	0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45,
5352	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e,
5353	0x0a, 0x0a, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0b,
5354	0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52,
5355	0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49,
5356	0x53, 0x48, 0x45, 0x44, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
5357	0x04, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44,
5358	0x5f, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x1c,
5359	0x0a, 0x18, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x45,
5360	0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19,
5361	0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x52, 0x43,
5362	0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x43,
5363	0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e,
5364	0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x07, 0x2a, 0x6a, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x63, 0x6f,
5365	0x6d, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54,
5366	0x43, 0x4f, 0x4d, 0x45, 0x5f, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53,
5367	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55,
5368	0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55,
5369	0x52, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x43, 0x4f, 0x4e, 0x43, 0x4c, 0x55,
5370	0x53, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45,
5371	0x44, 0x10, 0x04, 0x32, 0xc0, 0x05, 0x0a, 0x14, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63,
5372	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xac, 0x01, 0x0a,
5373	0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69,
5374	0x78, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
5375	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43,
5376	0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52,
5377	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
5378	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
5379	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x3b,
5380	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a,
5381	0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64,
5382	0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x0b,
5383	0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0xaa, 0x01, 0x0a, 0x0d,
5384	0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x30, 0x2e,
5385	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
5386	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65,
5387	0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
5388	0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
5389	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73,
5390	0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12,
5391	0x37, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70,
5392	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x4d,
5393	0x61, 0x74, 0x72, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61,
5394	0x74, 0x72, 0x69, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xc5, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x6e,
5395	0x63, 0x65, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x33, 0x2e,
5396	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
5397	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65,
5398	0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65,
5399	0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
5400	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
5401	0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78,
5402	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40,
5403	0x22, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b,
5404	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x65, 0x73, 0x74,
5405	0x4d, 0x61, 0x74, 0x72, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d,
5406	0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c,
5407	0x1a, 0x83, 0x01, 0xca, 0x41, 0x16, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f,
5408	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x67, 0x68,
5409	0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5410	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63,
5411	0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74,
5412	0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
5413	0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c,
5414	0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x61,
5415	0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x79, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f,
5416	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
5417	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x12, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78,
5418	0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41,
5419	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72,
5420	0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
5421	0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x74,
5422	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e,
5423	0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
5424}
5425
5426var (
5427	file_google_devtools_testing_v1_test_execution_proto_rawDescOnce sync.Once
5428	file_google_devtools_testing_v1_test_execution_proto_rawDescData = file_google_devtools_testing_v1_test_execution_proto_rawDesc
5429)
5430
5431func file_google_devtools_testing_v1_test_execution_proto_rawDescGZIP() []byte {
5432	file_google_devtools_testing_v1_test_execution_proto_rawDescOnce.Do(func() {
5433		file_google_devtools_testing_v1_test_execution_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_testing_v1_test_execution_proto_rawDescData)
5434	})
5435	return file_google_devtools_testing_v1_test_execution_proto_rawDescData
5436}
5437
5438var file_google_devtools_testing_v1_test_execution_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
5439var file_google_devtools_testing_v1_test_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 50)
5440var file_google_devtools_testing_v1_test_execution_proto_goTypes = []interface{}{
5441	(OrchestratorOption)(0),            // 0: google.devtools.testing.v1.OrchestratorOption
5442	(RoboActionType)(0),                // 1: google.devtools.testing.v1.RoboActionType
5443	(InvalidMatrixDetails)(0),          // 2: google.devtools.testing.v1.InvalidMatrixDetails
5444	(TestState)(0),                     // 3: google.devtools.testing.v1.TestState
5445	(OutcomeSummary)(0),                // 4: google.devtools.testing.v1.OutcomeSummary
5446	(InvalidRequestDetail_Reason)(0),   // 5: google.devtools.testing.v1.InvalidRequestDetail.Reason
5447	(*TestMatrix)(nil),                 // 6: google.devtools.testing.v1.TestMatrix
5448	(*TestExecution)(nil),              // 7: google.devtools.testing.v1.TestExecution
5449	(*TestSpecification)(nil),          // 8: google.devtools.testing.v1.TestSpecification
5450	(*SystraceSetup)(nil),              // 9: google.devtools.testing.v1.SystraceSetup
5451	(*TestSetup)(nil),                  // 10: google.devtools.testing.v1.TestSetup
5452	(*IosTestSetup)(nil),               // 11: google.devtools.testing.v1.IosTestSetup
5453	(*EnvironmentVariable)(nil),        // 12: google.devtools.testing.v1.EnvironmentVariable
5454	(*Account)(nil),                    // 13: google.devtools.testing.v1.Account
5455	(*GoogleAuto)(nil),                 // 14: google.devtools.testing.v1.GoogleAuto
5456	(*Apk)(nil),                        // 15: google.devtools.testing.v1.Apk
5457	(*AppBundle)(nil),                  // 16: google.devtools.testing.v1.AppBundle
5458	(*DeviceFile)(nil),                 // 17: google.devtools.testing.v1.DeviceFile
5459	(*ObbFile)(nil),                    // 18: google.devtools.testing.v1.ObbFile
5460	(*RegularFile)(nil),                // 19: google.devtools.testing.v1.RegularFile
5461	(*IosDeviceFile)(nil),              // 20: google.devtools.testing.v1.IosDeviceFile
5462	(*AndroidTestLoop)(nil),            // 21: google.devtools.testing.v1.AndroidTestLoop
5463	(*IosXcTest)(nil),                  // 22: google.devtools.testing.v1.IosXcTest
5464	(*IosTestLoop)(nil),                // 23: google.devtools.testing.v1.IosTestLoop
5465	(*AndroidInstrumentationTest)(nil), // 24: google.devtools.testing.v1.AndroidInstrumentationTest
5466	(*AndroidRoboTest)(nil),            // 25: google.devtools.testing.v1.AndroidRoboTest
5467	(*RoboDirective)(nil),              // 26: google.devtools.testing.v1.RoboDirective
5468	(*RoboStartingIntent)(nil),         // 27: google.devtools.testing.v1.RoboStartingIntent
5469	(*LauncherActivityIntent)(nil),     // 28: google.devtools.testing.v1.LauncherActivityIntent
5470	(*StartActivityIntent)(nil),        // 29: google.devtools.testing.v1.StartActivityIntent
5471	(*EnvironmentMatrix)(nil),          // 30: google.devtools.testing.v1.EnvironmentMatrix
5472	(*AndroidDeviceList)(nil),          // 31: google.devtools.testing.v1.AndroidDeviceList
5473	(*IosDeviceList)(nil),              // 32: google.devtools.testing.v1.IosDeviceList
5474	(*AndroidMatrix)(nil),              // 33: google.devtools.testing.v1.AndroidMatrix
5475	(*ClientInfo)(nil),                 // 34: google.devtools.testing.v1.ClientInfo
5476	(*ClientInfoDetail)(nil),           // 35: google.devtools.testing.v1.ClientInfoDetail
5477	(*ResultStorage)(nil),              // 36: google.devtools.testing.v1.ResultStorage
5478	(*ToolResultsHistory)(nil),         // 37: google.devtools.testing.v1.ToolResultsHistory
5479	(*ToolResultsExecution)(nil),       // 38: google.devtools.testing.v1.ToolResultsExecution
5480	(*ToolResultsStep)(nil),            // 39: google.devtools.testing.v1.ToolResultsStep
5481	(*GoogleCloudStorage)(nil),         // 40: google.devtools.testing.v1.GoogleCloudStorage
5482	(*FileReference)(nil),              // 41: google.devtools.testing.v1.FileReference
5483	(*Environment)(nil),                // 42: google.devtools.testing.v1.Environment
5484	(*AndroidDevice)(nil),              // 43: google.devtools.testing.v1.AndroidDevice
5485	(*IosDevice)(nil),                  // 44: google.devtools.testing.v1.IosDevice
5486	(*TestDetails)(nil),                // 45: google.devtools.testing.v1.TestDetails
5487	(*InvalidRequestDetail)(nil),       // 46: google.devtools.testing.v1.InvalidRequestDetail
5488	(*ShardingOption)(nil),             // 47: google.devtools.testing.v1.ShardingOption
5489	(*UniformSharding)(nil),            // 48: google.devtools.testing.v1.UniformSharding
5490	(*ManualSharding)(nil),             // 49: google.devtools.testing.v1.ManualSharding
5491	(*TestTargetsForShard)(nil),        // 50: google.devtools.testing.v1.TestTargetsForShard
5492	(*Shard)(nil),                      // 51: google.devtools.testing.v1.Shard
5493	(*CreateTestMatrixRequest)(nil),    // 52: google.devtools.testing.v1.CreateTestMatrixRequest
5494	(*GetTestMatrixRequest)(nil),       // 53: google.devtools.testing.v1.GetTestMatrixRequest
5495	(*CancelTestMatrixRequest)(nil),    // 54: google.devtools.testing.v1.CancelTestMatrixRequest
5496	(*CancelTestMatrixResponse)(nil),   // 55: google.devtools.testing.v1.CancelTestMatrixResponse
5497	(*timestamppb.Timestamp)(nil),      // 56: google.protobuf.Timestamp
5498	(*durationpb.Duration)(nil),        // 57: google.protobuf.Duration
5499}
5500var file_google_devtools_testing_v1_test_execution_proto_depIdxs = []int32{
5501	34, // 0: google.devtools.testing.v1.TestMatrix.client_info:type_name -> google.devtools.testing.v1.ClientInfo
5502	8,  // 1: google.devtools.testing.v1.TestMatrix.test_specification:type_name -> google.devtools.testing.v1.TestSpecification
5503	30, // 2: google.devtools.testing.v1.TestMatrix.environment_matrix:type_name -> google.devtools.testing.v1.EnvironmentMatrix
5504	7,  // 3: google.devtools.testing.v1.TestMatrix.test_executions:type_name -> google.devtools.testing.v1.TestExecution
5505	36, // 4: google.devtools.testing.v1.TestMatrix.result_storage:type_name -> google.devtools.testing.v1.ResultStorage
5506	3,  // 5: google.devtools.testing.v1.TestMatrix.state:type_name -> google.devtools.testing.v1.TestState
5507	56, // 6: google.devtools.testing.v1.TestMatrix.timestamp:type_name -> google.protobuf.Timestamp
5508	2,  // 7: google.devtools.testing.v1.TestMatrix.invalid_matrix_details:type_name -> google.devtools.testing.v1.InvalidMatrixDetails
5509	4,  // 8: google.devtools.testing.v1.TestMatrix.outcome_summary:type_name -> google.devtools.testing.v1.OutcomeSummary
5510	8,  // 9: google.devtools.testing.v1.TestExecution.test_specification:type_name -> google.devtools.testing.v1.TestSpecification
5511	51, // 10: google.devtools.testing.v1.TestExecution.shard:type_name -> google.devtools.testing.v1.Shard
5512	42, // 11: google.devtools.testing.v1.TestExecution.environment:type_name -> google.devtools.testing.v1.Environment
5513	3,  // 12: google.devtools.testing.v1.TestExecution.state:type_name -> google.devtools.testing.v1.TestState
5514	39, // 13: google.devtools.testing.v1.TestExecution.tool_results_step:type_name -> google.devtools.testing.v1.ToolResultsStep
5515	56, // 14: google.devtools.testing.v1.TestExecution.timestamp:type_name -> google.protobuf.Timestamp
5516	45, // 15: google.devtools.testing.v1.TestExecution.test_details:type_name -> google.devtools.testing.v1.TestDetails
5517	57, // 16: google.devtools.testing.v1.TestSpecification.test_timeout:type_name -> google.protobuf.Duration
5518	10, // 17: google.devtools.testing.v1.TestSpecification.test_setup:type_name -> google.devtools.testing.v1.TestSetup
5519	11, // 18: google.devtools.testing.v1.TestSpecification.ios_test_setup:type_name -> google.devtools.testing.v1.IosTestSetup
5520	24, // 19: google.devtools.testing.v1.TestSpecification.android_instrumentation_test:type_name -> google.devtools.testing.v1.AndroidInstrumentationTest
5521	25, // 20: google.devtools.testing.v1.TestSpecification.android_robo_test:type_name -> google.devtools.testing.v1.AndroidRoboTest
5522	21, // 21: google.devtools.testing.v1.TestSpecification.android_test_loop:type_name -> google.devtools.testing.v1.AndroidTestLoop
5523	22, // 22: google.devtools.testing.v1.TestSpecification.ios_xc_test:type_name -> google.devtools.testing.v1.IosXcTest
5524	23, // 23: google.devtools.testing.v1.TestSpecification.ios_test_loop:type_name -> google.devtools.testing.v1.IosTestLoop
5525	17, // 24: google.devtools.testing.v1.TestSetup.files_to_push:type_name -> google.devtools.testing.v1.DeviceFile
5526	15, // 25: google.devtools.testing.v1.TestSetup.additional_apks:type_name -> google.devtools.testing.v1.Apk
5527	13, // 26: google.devtools.testing.v1.TestSetup.account:type_name -> google.devtools.testing.v1.Account
5528	12, // 27: google.devtools.testing.v1.TestSetup.environment_variables:type_name -> google.devtools.testing.v1.EnvironmentVariable
5529	9,  // 28: google.devtools.testing.v1.TestSetup.systrace:type_name -> google.devtools.testing.v1.SystraceSetup
5530	41, // 29: google.devtools.testing.v1.IosTestSetup.additional_ipas:type_name -> google.devtools.testing.v1.FileReference
5531	20, // 30: google.devtools.testing.v1.IosTestSetup.push_files:type_name -> google.devtools.testing.v1.IosDeviceFile
5532	20, // 31: google.devtools.testing.v1.IosTestSetup.pull_directories:type_name -> google.devtools.testing.v1.IosDeviceFile
5533	14, // 32: google.devtools.testing.v1.Account.google_auto:type_name -> google.devtools.testing.v1.GoogleAuto
5534	41, // 33: google.devtools.testing.v1.Apk.location:type_name -> google.devtools.testing.v1.FileReference
5535	41, // 34: google.devtools.testing.v1.AppBundle.bundle_location:type_name -> google.devtools.testing.v1.FileReference
5536	18, // 35: google.devtools.testing.v1.DeviceFile.obb_file:type_name -> google.devtools.testing.v1.ObbFile
5537	19, // 36: google.devtools.testing.v1.DeviceFile.regular_file:type_name -> google.devtools.testing.v1.RegularFile
5538	41, // 37: google.devtools.testing.v1.ObbFile.obb:type_name -> google.devtools.testing.v1.FileReference
5539	41, // 38: google.devtools.testing.v1.RegularFile.content:type_name -> google.devtools.testing.v1.FileReference
5540	41, // 39: google.devtools.testing.v1.IosDeviceFile.content:type_name -> google.devtools.testing.v1.FileReference
5541	41, // 40: google.devtools.testing.v1.AndroidTestLoop.app_apk:type_name -> google.devtools.testing.v1.FileReference
5542	16, // 41: google.devtools.testing.v1.AndroidTestLoop.app_bundle:type_name -> google.devtools.testing.v1.AppBundle
5543	41, // 42: google.devtools.testing.v1.IosXcTest.tests_zip:type_name -> google.devtools.testing.v1.FileReference
5544	41, // 43: google.devtools.testing.v1.IosXcTest.xctestrun:type_name -> google.devtools.testing.v1.FileReference
5545	41, // 44: google.devtools.testing.v1.IosTestLoop.app_ipa:type_name -> google.devtools.testing.v1.FileReference
5546	41, // 45: google.devtools.testing.v1.AndroidInstrumentationTest.app_apk:type_name -> google.devtools.testing.v1.FileReference
5547	16, // 46: google.devtools.testing.v1.AndroidInstrumentationTest.app_bundle:type_name -> google.devtools.testing.v1.AppBundle
5548	41, // 47: google.devtools.testing.v1.AndroidInstrumentationTest.test_apk:type_name -> google.devtools.testing.v1.FileReference
5549	0,  // 48: google.devtools.testing.v1.AndroidInstrumentationTest.orchestrator_option:type_name -> google.devtools.testing.v1.OrchestratorOption
5550	47, // 49: google.devtools.testing.v1.AndroidInstrumentationTest.sharding_option:type_name -> google.devtools.testing.v1.ShardingOption
5551	41, // 50: google.devtools.testing.v1.AndroidRoboTest.app_apk:type_name -> google.devtools.testing.v1.FileReference
5552	16, // 51: google.devtools.testing.v1.AndroidRoboTest.app_bundle:type_name -> google.devtools.testing.v1.AppBundle
5553	26, // 52: google.devtools.testing.v1.AndroidRoboTest.robo_directives:type_name -> google.devtools.testing.v1.RoboDirective
5554	41, // 53: google.devtools.testing.v1.AndroidRoboTest.robo_script:type_name -> google.devtools.testing.v1.FileReference
5555	27, // 54: google.devtools.testing.v1.AndroidRoboTest.starting_intents:type_name -> google.devtools.testing.v1.RoboStartingIntent
5556	1,  // 55: google.devtools.testing.v1.RoboDirective.action_type:type_name -> google.devtools.testing.v1.RoboActionType
5557	28, // 56: google.devtools.testing.v1.RoboStartingIntent.launcher_activity:type_name -> google.devtools.testing.v1.LauncherActivityIntent
5558	29, // 57: google.devtools.testing.v1.RoboStartingIntent.start_activity:type_name -> google.devtools.testing.v1.StartActivityIntent
5559	57, // 58: google.devtools.testing.v1.RoboStartingIntent.timeout:type_name -> google.protobuf.Duration
5560	33, // 59: google.devtools.testing.v1.EnvironmentMatrix.android_matrix:type_name -> google.devtools.testing.v1.AndroidMatrix
5561	31, // 60: google.devtools.testing.v1.EnvironmentMatrix.android_device_list:type_name -> google.devtools.testing.v1.AndroidDeviceList
5562	32, // 61: google.devtools.testing.v1.EnvironmentMatrix.ios_device_list:type_name -> google.devtools.testing.v1.IosDeviceList
5563	43, // 62: google.devtools.testing.v1.AndroidDeviceList.android_devices:type_name -> google.devtools.testing.v1.AndroidDevice
5564	44, // 63: google.devtools.testing.v1.IosDeviceList.ios_devices:type_name -> google.devtools.testing.v1.IosDevice
5565	35, // 64: google.devtools.testing.v1.ClientInfo.client_info_details:type_name -> google.devtools.testing.v1.ClientInfoDetail
5566	40, // 65: google.devtools.testing.v1.ResultStorage.google_cloud_storage:type_name -> google.devtools.testing.v1.GoogleCloudStorage
5567	37, // 66: google.devtools.testing.v1.ResultStorage.tool_results_history:type_name -> google.devtools.testing.v1.ToolResultsHistory
5568	38, // 67: google.devtools.testing.v1.ResultStorage.tool_results_execution:type_name -> google.devtools.testing.v1.ToolResultsExecution
5569	43, // 68: google.devtools.testing.v1.Environment.android_device:type_name -> google.devtools.testing.v1.AndroidDevice
5570	44, // 69: google.devtools.testing.v1.Environment.ios_device:type_name -> google.devtools.testing.v1.IosDevice
5571	5,  // 70: google.devtools.testing.v1.InvalidRequestDetail.reason:type_name -> google.devtools.testing.v1.InvalidRequestDetail.Reason
5572	48, // 71: google.devtools.testing.v1.ShardingOption.uniform_sharding:type_name -> google.devtools.testing.v1.UniformSharding
5573	49, // 72: google.devtools.testing.v1.ShardingOption.manual_sharding:type_name -> google.devtools.testing.v1.ManualSharding
5574	50, // 73: google.devtools.testing.v1.ManualSharding.test_targets_for_shard:type_name -> google.devtools.testing.v1.TestTargetsForShard
5575	50, // 74: google.devtools.testing.v1.Shard.test_targets_for_shard:type_name -> google.devtools.testing.v1.TestTargetsForShard
5576	6,  // 75: google.devtools.testing.v1.CreateTestMatrixRequest.test_matrix:type_name -> google.devtools.testing.v1.TestMatrix
5577	3,  // 76: google.devtools.testing.v1.CancelTestMatrixResponse.test_state:type_name -> google.devtools.testing.v1.TestState
5578	52, // 77: google.devtools.testing.v1.TestExecutionService.CreateTestMatrix:input_type -> google.devtools.testing.v1.CreateTestMatrixRequest
5579	53, // 78: google.devtools.testing.v1.TestExecutionService.GetTestMatrix:input_type -> google.devtools.testing.v1.GetTestMatrixRequest
5580	54, // 79: google.devtools.testing.v1.TestExecutionService.CancelTestMatrix:input_type -> google.devtools.testing.v1.CancelTestMatrixRequest
5581	6,  // 80: google.devtools.testing.v1.TestExecutionService.CreateTestMatrix:output_type -> google.devtools.testing.v1.TestMatrix
5582	6,  // 81: google.devtools.testing.v1.TestExecutionService.GetTestMatrix:output_type -> google.devtools.testing.v1.TestMatrix
5583	55, // 82: google.devtools.testing.v1.TestExecutionService.CancelTestMatrix:output_type -> google.devtools.testing.v1.CancelTestMatrixResponse
5584	80, // [80:83] is the sub-list for method output_type
5585	77, // [77:80] is the sub-list for method input_type
5586	77, // [77:77] is the sub-list for extension type_name
5587	77, // [77:77] is the sub-list for extension extendee
5588	0,  // [0:77] is the sub-list for field type_name
5589}
5590
5591func init() { file_google_devtools_testing_v1_test_execution_proto_init() }
5592func file_google_devtools_testing_v1_test_execution_proto_init() {
5593	if File_google_devtools_testing_v1_test_execution_proto != nil {
5594		return
5595	}
5596	if !protoimpl.UnsafeEnabled {
5597		file_google_devtools_testing_v1_test_execution_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
5598			switch v := v.(*TestMatrix); i {
5599			case 0:
5600				return &v.state
5601			case 1:
5602				return &v.sizeCache
5603			case 2:
5604				return &v.unknownFields
5605			default:
5606				return nil
5607			}
5608		}
5609		file_google_devtools_testing_v1_test_execution_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
5610			switch v := v.(*TestExecution); i {
5611			case 0:
5612				return &v.state
5613			case 1:
5614				return &v.sizeCache
5615			case 2:
5616				return &v.unknownFields
5617			default:
5618				return nil
5619			}
5620		}
5621		file_google_devtools_testing_v1_test_execution_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
5622			switch v := v.(*TestSpecification); i {
5623			case 0:
5624				return &v.state
5625			case 1:
5626				return &v.sizeCache
5627			case 2:
5628				return &v.unknownFields
5629			default:
5630				return nil
5631			}
5632		}
5633		file_google_devtools_testing_v1_test_execution_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
5634			switch v := v.(*SystraceSetup); i {
5635			case 0:
5636				return &v.state
5637			case 1:
5638				return &v.sizeCache
5639			case 2:
5640				return &v.unknownFields
5641			default:
5642				return nil
5643			}
5644		}
5645		file_google_devtools_testing_v1_test_execution_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
5646			switch v := v.(*TestSetup); i {
5647			case 0:
5648				return &v.state
5649			case 1:
5650				return &v.sizeCache
5651			case 2:
5652				return &v.unknownFields
5653			default:
5654				return nil
5655			}
5656		}
5657		file_google_devtools_testing_v1_test_execution_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
5658			switch v := v.(*IosTestSetup); i {
5659			case 0:
5660				return &v.state
5661			case 1:
5662				return &v.sizeCache
5663			case 2:
5664				return &v.unknownFields
5665			default:
5666				return nil
5667			}
5668		}
5669		file_google_devtools_testing_v1_test_execution_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
5670			switch v := v.(*EnvironmentVariable); i {
5671			case 0:
5672				return &v.state
5673			case 1:
5674				return &v.sizeCache
5675			case 2:
5676				return &v.unknownFields
5677			default:
5678				return nil
5679			}
5680		}
5681		file_google_devtools_testing_v1_test_execution_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
5682			switch v := v.(*Account); i {
5683			case 0:
5684				return &v.state
5685			case 1:
5686				return &v.sizeCache
5687			case 2:
5688				return &v.unknownFields
5689			default:
5690				return nil
5691			}
5692		}
5693		file_google_devtools_testing_v1_test_execution_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
5694			switch v := v.(*GoogleAuto); i {
5695			case 0:
5696				return &v.state
5697			case 1:
5698				return &v.sizeCache
5699			case 2:
5700				return &v.unknownFields
5701			default:
5702				return nil
5703			}
5704		}
5705		file_google_devtools_testing_v1_test_execution_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
5706			switch v := v.(*Apk); i {
5707			case 0:
5708				return &v.state
5709			case 1:
5710				return &v.sizeCache
5711			case 2:
5712				return &v.unknownFields
5713			default:
5714				return nil
5715			}
5716		}
5717		file_google_devtools_testing_v1_test_execution_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
5718			switch v := v.(*AppBundle); i {
5719			case 0:
5720				return &v.state
5721			case 1:
5722				return &v.sizeCache
5723			case 2:
5724				return &v.unknownFields
5725			default:
5726				return nil
5727			}
5728		}
5729		file_google_devtools_testing_v1_test_execution_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
5730			switch v := v.(*DeviceFile); i {
5731			case 0:
5732				return &v.state
5733			case 1:
5734				return &v.sizeCache
5735			case 2:
5736				return &v.unknownFields
5737			default:
5738				return nil
5739			}
5740		}
5741		file_google_devtools_testing_v1_test_execution_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
5742			switch v := v.(*ObbFile); i {
5743			case 0:
5744				return &v.state
5745			case 1:
5746				return &v.sizeCache
5747			case 2:
5748				return &v.unknownFields
5749			default:
5750				return nil
5751			}
5752		}
5753		file_google_devtools_testing_v1_test_execution_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
5754			switch v := v.(*RegularFile); i {
5755			case 0:
5756				return &v.state
5757			case 1:
5758				return &v.sizeCache
5759			case 2:
5760				return &v.unknownFields
5761			default:
5762				return nil
5763			}
5764		}
5765		file_google_devtools_testing_v1_test_execution_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
5766			switch v := v.(*IosDeviceFile); i {
5767			case 0:
5768				return &v.state
5769			case 1:
5770				return &v.sizeCache
5771			case 2:
5772				return &v.unknownFields
5773			default:
5774				return nil
5775			}
5776		}
5777		file_google_devtools_testing_v1_test_execution_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
5778			switch v := v.(*AndroidTestLoop); i {
5779			case 0:
5780				return &v.state
5781			case 1:
5782				return &v.sizeCache
5783			case 2:
5784				return &v.unknownFields
5785			default:
5786				return nil
5787			}
5788		}
5789		file_google_devtools_testing_v1_test_execution_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
5790			switch v := v.(*IosXcTest); i {
5791			case 0:
5792				return &v.state
5793			case 1:
5794				return &v.sizeCache
5795			case 2:
5796				return &v.unknownFields
5797			default:
5798				return nil
5799			}
5800		}
5801		file_google_devtools_testing_v1_test_execution_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
5802			switch v := v.(*IosTestLoop); i {
5803			case 0:
5804				return &v.state
5805			case 1:
5806				return &v.sizeCache
5807			case 2:
5808				return &v.unknownFields
5809			default:
5810				return nil
5811			}
5812		}
5813		file_google_devtools_testing_v1_test_execution_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
5814			switch v := v.(*AndroidInstrumentationTest); i {
5815			case 0:
5816				return &v.state
5817			case 1:
5818				return &v.sizeCache
5819			case 2:
5820				return &v.unknownFields
5821			default:
5822				return nil
5823			}
5824		}
5825		file_google_devtools_testing_v1_test_execution_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
5826			switch v := v.(*AndroidRoboTest); i {
5827			case 0:
5828				return &v.state
5829			case 1:
5830				return &v.sizeCache
5831			case 2:
5832				return &v.unknownFields
5833			default:
5834				return nil
5835			}
5836		}
5837		file_google_devtools_testing_v1_test_execution_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
5838			switch v := v.(*RoboDirective); i {
5839			case 0:
5840				return &v.state
5841			case 1:
5842				return &v.sizeCache
5843			case 2:
5844				return &v.unknownFields
5845			default:
5846				return nil
5847			}
5848		}
5849		file_google_devtools_testing_v1_test_execution_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
5850			switch v := v.(*RoboStartingIntent); i {
5851			case 0:
5852				return &v.state
5853			case 1:
5854				return &v.sizeCache
5855			case 2:
5856				return &v.unknownFields
5857			default:
5858				return nil
5859			}
5860		}
5861		file_google_devtools_testing_v1_test_execution_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
5862			switch v := v.(*LauncherActivityIntent); i {
5863			case 0:
5864				return &v.state
5865			case 1:
5866				return &v.sizeCache
5867			case 2:
5868				return &v.unknownFields
5869			default:
5870				return nil
5871			}
5872		}
5873		file_google_devtools_testing_v1_test_execution_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
5874			switch v := v.(*StartActivityIntent); i {
5875			case 0:
5876				return &v.state
5877			case 1:
5878				return &v.sizeCache
5879			case 2:
5880				return &v.unknownFields
5881			default:
5882				return nil
5883			}
5884		}
5885		file_google_devtools_testing_v1_test_execution_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
5886			switch v := v.(*EnvironmentMatrix); i {
5887			case 0:
5888				return &v.state
5889			case 1:
5890				return &v.sizeCache
5891			case 2:
5892				return &v.unknownFields
5893			default:
5894				return nil
5895			}
5896		}
5897		file_google_devtools_testing_v1_test_execution_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
5898			switch v := v.(*AndroidDeviceList); i {
5899			case 0:
5900				return &v.state
5901			case 1:
5902				return &v.sizeCache
5903			case 2:
5904				return &v.unknownFields
5905			default:
5906				return nil
5907			}
5908		}
5909		file_google_devtools_testing_v1_test_execution_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
5910			switch v := v.(*IosDeviceList); i {
5911			case 0:
5912				return &v.state
5913			case 1:
5914				return &v.sizeCache
5915			case 2:
5916				return &v.unknownFields
5917			default:
5918				return nil
5919			}
5920		}
5921		file_google_devtools_testing_v1_test_execution_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
5922			switch v := v.(*AndroidMatrix); i {
5923			case 0:
5924				return &v.state
5925			case 1:
5926				return &v.sizeCache
5927			case 2:
5928				return &v.unknownFields
5929			default:
5930				return nil
5931			}
5932		}
5933		file_google_devtools_testing_v1_test_execution_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
5934			switch v := v.(*ClientInfo); i {
5935			case 0:
5936				return &v.state
5937			case 1:
5938				return &v.sizeCache
5939			case 2:
5940				return &v.unknownFields
5941			default:
5942				return nil
5943			}
5944		}
5945		file_google_devtools_testing_v1_test_execution_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
5946			switch v := v.(*ClientInfoDetail); i {
5947			case 0:
5948				return &v.state
5949			case 1:
5950				return &v.sizeCache
5951			case 2:
5952				return &v.unknownFields
5953			default:
5954				return nil
5955			}
5956		}
5957		file_google_devtools_testing_v1_test_execution_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
5958			switch v := v.(*ResultStorage); i {
5959			case 0:
5960				return &v.state
5961			case 1:
5962				return &v.sizeCache
5963			case 2:
5964				return &v.unknownFields
5965			default:
5966				return nil
5967			}
5968		}
5969		file_google_devtools_testing_v1_test_execution_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
5970			switch v := v.(*ToolResultsHistory); i {
5971			case 0:
5972				return &v.state
5973			case 1:
5974				return &v.sizeCache
5975			case 2:
5976				return &v.unknownFields
5977			default:
5978				return nil
5979			}
5980		}
5981		file_google_devtools_testing_v1_test_execution_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
5982			switch v := v.(*ToolResultsExecution); i {
5983			case 0:
5984				return &v.state
5985			case 1:
5986				return &v.sizeCache
5987			case 2:
5988				return &v.unknownFields
5989			default:
5990				return nil
5991			}
5992		}
5993		file_google_devtools_testing_v1_test_execution_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
5994			switch v := v.(*ToolResultsStep); i {
5995			case 0:
5996				return &v.state
5997			case 1:
5998				return &v.sizeCache
5999			case 2:
6000				return &v.unknownFields
6001			default:
6002				return nil
6003			}
6004		}
6005		file_google_devtools_testing_v1_test_execution_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
6006			switch v := v.(*GoogleCloudStorage); i {
6007			case 0:
6008				return &v.state
6009			case 1:
6010				return &v.sizeCache
6011			case 2:
6012				return &v.unknownFields
6013			default:
6014				return nil
6015			}
6016		}
6017		file_google_devtools_testing_v1_test_execution_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
6018			switch v := v.(*FileReference); i {
6019			case 0:
6020				return &v.state
6021			case 1:
6022				return &v.sizeCache
6023			case 2:
6024				return &v.unknownFields
6025			default:
6026				return nil
6027			}
6028		}
6029		file_google_devtools_testing_v1_test_execution_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
6030			switch v := v.(*Environment); i {
6031			case 0:
6032				return &v.state
6033			case 1:
6034				return &v.sizeCache
6035			case 2:
6036				return &v.unknownFields
6037			default:
6038				return nil
6039			}
6040		}
6041		file_google_devtools_testing_v1_test_execution_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
6042			switch v := v.(*AndroidDevice); i {
6043			case 0:
6044				return &v.state
6045			case 1:
6046				return &v.sizeCache
6047			case 2:
6048				return &v.unknownFields
6049			default:
6050				return nil
6051			}
6052		}
6053		file_google_devtools_testing_v1_test_execution_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
6054			switch v := v.(*IosDevice); i {
6055			case 0:
6056				return &v.state
6057			case 1:
6058				return &v.sizeCache
6059			case 2:
6060				return &v.unknownFields
6061			default:
6062				return nil
6063			}
6064		}
6065		file_google_devtools_testing_v1_test_execution_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
6066			switch v := v.(*TestDetails); i {
6067			case 0:
6068				return &v.state
6069			case 1:
6070				return &v.sizeCache
6071			case 2:
6072				return &v.unknownFields
6073			default:
6074				return nil
6075			}
6076		}
6077		file_google_devtools_testing_v1_test_execution_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
6078			switch v := v.(*InvalidRequestDetail); i {
6079			case 0:
6080				return &v.state
6081			case 1:
6082				return &v.sizeCache
6083			case 2:
6084				return &v.unknownFields
6085			default:
6086				return nil
6087			}
6088		}
6089		file_google_devtools_testing_v1_test_execution_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
6090			switch v := v.(*ShardingOption); i {
6091			case 0:
6092				return &v.state
6093			case 1:
6094				return &v.sizeCache
6095			case 2:
6096				return &v.unknownFields
6097			default:
6098				return nil
6099			}
6100		}
6101		file_google_devtools_testing_v1_test_execution_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
6102			switch v := v.(*UniformSharding); i {
6103			case 0:
6104				return &v.state
6105			case 1:
6106				return &v.sizeCache
6107			case 2:
6108				return &v.unknownFields
6109			default:
6110				return nil
6111			}
6112		}
6113		file_google_devtools_testing_v1_test_execution_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
6114			switch v := v.(*ManualSharding); i {
6115			case 0:
6116				return &v.state
6117			case 1:
6118				return &v.sizeCache
6119			case 2:
6120				return &v.unknownFields
6121			default:
6122				return nil
6123			}
6124		}
6125		file_google_devtools_testing_v1_test_execution_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
6126			switch v := v.(*TestTargetsForShard); i {
6127			case 0:
6128				return &v.state
6129			case 1:
6130				return &v.sizeCache
6131			case 2:
6132				return &v.unknownFields
6133			default:
6134				return nil
6135			}
6136		}
6137		file_google_devtools_testing_v1_test_execution_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
6138			switch v := v.(*Shard); i {
6139			case 0:
6140				return &v.state
6141			case 1:
6142				return &v.sizeCache
6143			case 2:
6144				return &v.unknownFields
6145			default:
6146				return nil
6147			}
6148		}
6149		file_google_devtools_testing_v1_test_execution_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
6150			switch v := v.(*CreateTestMatrixRequest); i {
6151			case 0:
6152				return &v.state
6153			case 1:
6154				return &v.sizeCache
6155			case 2:
6156				return &v.unknownFields
6157			default:
6158				return nil
6159			}
6160		}
6161		file_google_devtools_testing_v1_test_execution_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
6162			switch v := v.(*GetTestMatrixRequest); i {
6163			case 0:
6164				return &v.state
6165			case 1:
6166				return &v.sizeCache
6167			case 2:
6168				return &v.unknownFields
6169			default:
6170				return nil
6171			}
6172		}
6173		file_google_devtools_testing_v1_test_execution_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
6174			switch v := v.(*CancelTestMatrixRequest); i {
6175			case 0:
6176				return &v.state
6177			case 1:
6178				return &v.sizeCache
6179			case 2:
6180				return &v.unknownFields
6181			default:
6182				return nil
6183			}
6184		}
6185		file_google_devtools_testing_v1_test_execution_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
6186			switch v := v.(*CancelTestMatrixResponse); i {
6187			case 0:
6188				return &v.state
6189			case 1:
6190				return &v.sizeCache
6191			case 2:
6192				return &v.unknownFields
6193			default:
6194				return nil
6195			}
6196		}
6197	}
6198	file_google_devtools_testing_v1_test_execution_proto_msgTypes[2].OneofWrappers = []interface{}{
6199		(*TestSpecification_TestSetup)(nil),
6200		(*TestSpecification_IosTestSetup)(nil),
6201		(*TestSpecification_AndroidInstrumentationTest)(nil),
6202		(*TestSpecification_AndroidRoboTest)(nil),
6203		(*TestSpecification_AndroidTestLoop)(nil),
6204		(*TestSpecification_IosXcTest)(nil),
6205		(*TestSpecification_IosTestLoop)(nil),
6206	}
6207	file_google_devtools_testing_v1_test_execution_proto_msgTypes[7].OneofWrappers = []interface{}{
6208		(*Account_GoogleAuto)(nil),
6209	}
6210	file_google_devtools_testing_v1_test_execution_proto_msgTypes[10].OneofWrappers = []interface{}{
6211		(*AppBundle_BundleLocation)(nil),
6212	}
6213	file_google_devtools_testing_v1_test_execution_proto_msgTypes[11].OneofWrappers = []interface{}{
6214		(*DeviceFile_ObbFile)(nil),
6215		(*DeviceFile_RegularFile)(nil),
6216	}
6217	file_google_devtools_testing_v1_test_execution_proto_msgTypes[15].OneofWrappers = []interface{}{
6218		(*AndroidTestLoop_AppApk)(nil),
6219		(*AndroidTestLoop_AppBundle)(nil),
6220	}
6221	file_google_devtools_testing_v1_test_execution_proto_msgTypes[18].OneofWrappers = []interface{}{
6222		(*AndroidInstrumentationTest_AppApk)(nil),
6223		(*AndroidInstrumentationTest_AppBundle)(nil),
6224	}
6225	file_google_devtools_testing_v1_test_execution_proto_msgTypes[19].OneofWrappers = []interface{}{
6226		(*AndroidRoboTest_AppApk)(nil),
6227		(*AndroidRoboTest_AppBundle)(nil),
6228	}
6229	file_google_devtools_testing_v1_test_execution_proto_msgTypes[21].OneofWrappers = []interface{}{
6230		(*RoboStartingIntent_LauncherActivity)(nil),
6231		(*RoboStartingIntent_StartActivity)(nil),
6232	}
6233	file_google_devtools_testing_v1_test_execution_proto_msgTypes[24].OneofWrappers = []interface{}{
6234		(*EnvironmentMatrix_AndroidMatrix)(nil),
6235		(*EnvironmentMatrix_AndroidDeviceList)(nil),
6236		(*EnvironmentMatrix_IosDeviceList)(nil),
6237	}
6238	file_google_devtools_testing_v1_test_execution_proto_msgTypes[35].OneofWrappers = []interface{}{
6239		(*FileReference_GcsPath)(nil),
6240	}
6241	file_google_devtools_testing_v1_test_execution_proto_msgTypes[36].OneofWrappers = []interface{}{
6242		(*Environment_AndroidDevice)(nil),
6243		(*Environment_IosDevice)(nil),
6244	}
6245	file_google_devtools_testing_v1_test_execution_proto_msgTypes[41].OneofWrappers = []interface{}{
6246		(*ShardingOption_UniformSharding)(nil),
6247		(*ShardingOption_ManualSharding)(nil),
6248	}
6249	type x struct{}
6250	out := protoimpl.TypeBuilder{
6251		File: protoimpl.DescBuilder{
6252			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
6253			RawDescriptor: file_google_devtools_testing_v1_test_execution_proto_rawDesc,
6254			NumEnums:      6,
6255			NumMessages:   50,
6256			NumExtensions: 0,
6257			NumServices:   1,
6258		},
6259		GoTypes:           file_google_devtools_testing_v1_test_execution_proto_goTypes,
6260		DependencyIndexes: file_google_devtools_testing_v1_test_execution_proto_depIdxs,
6261		EnumInfos:         file_google_devtools_testing_v1_test_execution_proto_enumTypes,
6262		MessageInfos:      file_google_devtools_testing_v1_test_execution_proto_msgTypes,
6263	}.Build()
6264	File_google_devtools_testing_v1_test_execution_proto = out.File
6265	file_google_devtools_testing_v1_test_execution_proto_rawDesc = nil
6266	file_google_devtools_testing_v1_test_execution_proto_goTypes = nil
6267	file_google_devtools_testing_v1_test_execution_proto_depIdxs = nil
6268}
6269
6270// Reference imports to suppress errors if they are not otherwise used.
6271var _ context.Context
6272var _ grpc.ClientConnInterface
6273
6274// This is a compile-time assertion to ensure that this generated file
6275// is compatible with the grpc package it is being compiled against.
6276const _ = grpc.SupportPackageIsVersion6
6277
6278// TestExecutionServiceClient is the client API for TestExecutionService service.
6279//
6280// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
6281type TestExecutionServiceClient interface {
6282	// Creates and runs a matrix of tests according to the given specifications.
6283	// Unsupported environments will be returned in the state UNSUPPORTED.
6284	// A test matrix is limited to use at most 2000 devices in parallel.
6285	//
6286	// May return any of the following canonical error codes:
6287	//
6288	// - PERMISSION_DENIED - if the user is not authorized to write to project
6289	// - INVALID_ARGUMENT - if the request is malformed or if the matrix tries
6290	//                      to use too many simultaneous devices.
6291	CreateTestMatrix(ctx context.Context, in *CreateTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error)
6292	// Checks the status of a test matrix.
6293	//
6294	// May return any of the following canonical error codes:
6295	//
6296	// - PERMISSION_DENIED - if the user is not authorized to read project
6297	// - INVALID_ARGUMENT - if the request is malformed
6298	// - NOT_FOUND - if the Test Matrix does not exist
6299	GetTestMatrix(ctx context.Context, in *GetTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error)
6300	// Cancels unfinished test executions in a test matrix.
6301	// This call returns immediately and cancellation proceeds asynchronously.
6302	// If the matrix is already final, this operation will have no effect.
6303	//
6304	// May return any of the following canonical error codes:
6305	//
6306	// - PERMISSION_DENIED - if the user is not authorized to read project
6307	// - INVALID_ARGUMENT - if the request is malformed
6308	// - NOT_FOUND - if the Test Matrix does not exist
6309	CancelTestMatrix(ctx context.Context, in *CancelTestMatrixRequest, opts ...grpc.CallOption) (*CancelTestMatrixResponse, error)
6310}
6311
6312type testExecutionServiceClient struct {
6313	cc grpc.ClientConnInterface
6314}
6315
6316func NewTestExecutionServiceClient(cc grpc.ClientConnInterface) TestExecutionServiceClient {
6317	return &testExecutionServiceClient{cc}
6318}
6319
6320func (c *testExecutionServiceClient) CreateTestMatrix(ctx context.Context, in *CreateTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error) {
6321	out := new(TestMatrix)
6322	err := c.cc.Invoke(ctx, "/google.devtools.testing.v1.TestExecutionService/CreateTestMatrix", in, out, opts...)
6323	if err != nil {
6324		return nil, err
6325	}
6326	return out, nil
6327}
6328
6329func (c *testExecutionServiceClient) GetTestMatrix(ctx context.Context, in *GetTestMatrixRequest, opts ...grpc.CallOption) (*TestMatrix, error) {
6330	out := new(TestMatrix)
6331	err := c.cc.Invoke(ctx, "/google.devtools.testing.v1.TestExecutionService/GetTestMatrix", in, out, opts...)
6332	if err != nil {
6333		return nil, err
6334	}
6335	return out, nil
6336}
6337
6338func (c *testExecutionServiceClient) CancelTestMatrix(ctx context.Context, in *CancelTestMatrixRequest, opts ...grpc.CallOption) (*CancelTestMatrixResponse, error) {
6339	out := new(CancelTestMatrixResponse)
6340	err := c.cc.Invoke(ctx, "/google.devtools.testing.v1.TestExecutionService/CancelTestMatrix", in, out, opts...)
6341	if err != nil {
6342		return nil, err
6343	}
6344	return out, nil
6345}
6346
6347// TestExecutionServiceServer is the server API for TestExecutionService service.
6348type TestExecutionServiceServer interface {
6349	// Creates and runs a matrix of tests according to the given specifications.
6350	// Unsupported environments will be returned in the state UNSUPPORTED.
6351	// A test matrix is limited to use at most 2000 devices in parallel.
6352	//
6353	// May return any of the following canonical error codes:
6354	//
6355	// - PERMISSION_DENIED - if the user is not authorized to write to project
6356	// - INVALID_ARGUMENT - if the request is malformed or if the matrix tries
6357	//                      to use too many simultaneous devices.
6358	CreateTestMatrix(context.Context, *CreateTestMatrixRequest) (*TestMatrix, error)
6359	// Checks the status of a test matrix.
6360	//
6361	// May return any of the following canonical error codes:
6362	//
6363	// - PERMISSION_DENIED - if the user is not authorized to read project
6364	// - INVALID_ARGUMENT - if the request is malformed
6365	// - NOT_FOUND - if the Test Matrix does not exist
6366	GetTestMatrix(context.Context, *GetTestMatrixRequest) (*TestMatrix, error)
6367	// Cancels unfinished test executions in a test matrix.
6368	// This call returns immediately and cancellation proceeds asynchronously.
6369	// If the matrix is already final, this operation will have no effect.
6370	//
6371	// May return any of the following canonical error codes:
6372	//
6373	// - PERMISSION_DENIED - if the user is not authorized to read project
6374	// - INVALID_ARGUMENT - if the request is malformed
6375	// - NOT_FOUND - if the Test Matrix does not exist
6376	CancelTestMatrix(context.Context, *CancelTestMatrixRequest) (*CancelTestMatrixResponse, error)
6377}
6378
6379// UnimplementedTestExecutionServiceServer can be embedded to have forward compatible implementations.
6380type UnimplementedTestExecutionServiceServer struct {
6381}
6382
6383func (*UnimplementedTestExecutionServiceServer) CreateTestMatrix(context.Context, *CreateTestMatrixRequest) (*TestMatrix, error) {
6384	return nil, status.Errorf(codes.Unimplemented, "method CreateTestMatrix not implemented")
6385}
6386func (*UnimplementedTestExecutionServiceServer) GetTestMatrix(context.Context, *GetTestMatrixRequest) (*TestMatrix, error) {
6387	return nil, status.Errorf(codes.Unimplemented, "method GetTestMatrix not implemented")
6388}
6389func (*UnimplementedTestExecutionServiceServer) CancelTestMatrix(context.Context, *CancelTestMatrixRequest) (*CancelTestMatrixResponse, error) {
6390	return nil, status.Errorf(codes.Unimplemented, "method CancelTestMatrix not implemented")
6391}
6392
6393func RegisterTestExecutionServiceServer(s *grpc.Server, srv TestExecutionServiceServer) {
6394	s.RegisterService(&_TestExecutionService_serviceDesc, srv)
6395}
6396
6397func _TestExecutionService_CreateTestMatrix_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
6398	in := new(CreateTestMatrixRequest)
6399	if err := dec(in); err != nil {
6400		return nil, err
6401	}
6402	if interceptor == nil {
6403		return srv.(TestExecutionServiceServer).CreateTestMatrix(ctx, in)
6404	}
6405	info := &grpc.UnaryServerInfo{
6406		Server:     srv,
6407		FullMethod: "/google.devtools.testing.v1.TestExecutionService/CreateTestMatrix",
6408	}
6409	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
6410		return srv.(TestExecutionServiceServer).CreateTestMatrix(ctx, req.(*CreateTestMatrixRequest))
6411	}
6412	return interceptor(ctx, in, info, handler)
6413}
6414
6415func _TestExecutionService_GetTestMatrix_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
6416	in := new(GetTestMatrixRequest)
6417	if err := dec(in); err != nil {
6418		return nil, err
6419	}
6420	if interceptor == nil {
6421		return srv.(TestExecutionServiceServer).GetTestMatrix(ctx, in)
6422	}
6423	info := &grpc.UnaryServerInfo{
6424		Server:     srv,
6425		FullMethod: "/google.devtools.testing.v1.TestExecutionService/GetTestMatrix",
6426	}
6427	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
6428		return srv.(TestExecutionServiceServer).GetTestMatrix(ctx, req.(*GetTestMatrixRequest))
6429	}
6430	return interceptor(ctx, in, info, handler)
6431}
6432
6433func _TestExecutionService_CancelTestMatrix_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
6434	in := new(CancelTestMatrixRequest)
6435	if err := dec(in); err != nil {
6436		return nil, err
6437	}
6438	if interceptor == nil {
6439		return srv.(TestExecutionServiceServer).CancelTestMatrix(ctx, in)
6440	}
6441	info := &grpc.UnaryServerInfo{
6442		Server:     srv,
6443		FullMethod: "/google.devtools.testing.v1.TestExecutionService/CancelTestMatrix",
6444	}
6445	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
6446		return srv.(TestExecutionServiceServer).CancelTestMatrix(ctx, req.(*CancelTestMatrixRequest))
6447	}
6448	return interceptor(ctx, in, info, handler)
6449}
6450
6451var _TestExecutionService_serviceDesc = grpc.ServiceDesc{
6452	ServiceName: "google.devtools.testing.v1.TestExecutionService",
6453	HandlerType: (*TestExecutionServiceServer)(nil),
6454	Methods: []grpc.MethodDesc{
6455		{
6456			MethodName: "CreateTestMatrix",
6457			Handler:    _TestExecutionService_CreateTestMatrix_Handler,
6458		},
6459		{
6460			MethodName: "GetTestMatrix",
6461			Handler:    _TestExecutionService_GetTestMatrix_Handler,
6462		},
6463		{
6464			MethodName: "CancelTestMatrix",
6465			Handler:    _TestExecutionService_CancelTestMatrix_Handler,
6466		},
6467	},
6468	Streams:  []grpc.StreamDesc{},
6469	Metadata: "google/devtools/testing/v1/test_execution.proto",
6470}
6471