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_environment_discovery.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	date "google.golang.org/genproto/googleapis/type/date"
30	grpc "google.golang.org/grpc"
31	codes "google.golang.org/grpc/codes"
32	status "google.golang.org/grpc/status"
33	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
34	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
35	durationpb "google.golang.org/protobuf/types/known/durationpb"
36	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
37)
38
39const (
40	// Verify that this generated code is sufficiently up-to-date.
41	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
42	// Verify that runtime/protoimpl is sufficiently up-to-date.
43	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
44)
45
46// Whether the device is physical or virtual.
47type DeviceForm int32
48
49const (
50	// Do not use.  For proto versioning only.
51	DeviceForm_DEVICE_FORM_UNSPECIFIED DeviceForm = 0
52	// Android virtual device using Compute Engine native virtualization. Firebase
53	// Test Lab only.
54	DeviceForm_VIRTUAL DeviceForm = 1
55	// Actual hardware.
56	DeviceForm_PHYSICAL DeviceForm = 2
57	// Android virtual device using emulator in nested virtualization. Equivalent
58	// to Android Studio.
59	DeviceForm_EMULATOR DeviceForm = 3
60)
61
62// Enum value maps for DeviceForm.
63var (
64	DeviceForm_name = map[int32]string{
65		0: "DEVICE_FORM_UNSPECIFIED",
66		1: "VIRTUAL",
67		2: "PHYSICAL",
68		3: "EMULATOR",
69	}
70	DeviceForm_value = map[string]int32{
71		"DEVICE_FORM_UNSPECIFIED": 0,
72		"VIRTUAL":                 1,
73		"PHYSICAL":                2,
74		"EMULATOR":                3,
75	}
76)
77
78func (x DeviceForm) Enum() *DeviceForm {
79	p := new(DeviceForm)
80	*p = x
81	return p
82}
83
84func (x DeviceForm) String() string {
85	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
86}
87
88func (DeviceForm) Descriptor() protoreflect.EnumDescriptor {
89	return file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes[0].Descriptor()
90}
91
92func (DeviceForm) Type() protoreflect.EnumType {
93	return &file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes[0]
94}
95
96func (x DeviceForm) Number() protoreflect.EnumNumber {
97	return protoreflect.EnumNumber(x)
98}
99
100// Deprecated: Use DeviceForm.Descriptor instead.
101func (DeviceForm) EnumDescriptor() ([]byte, []int) {
102	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{0}
103}
104
105// The form factor of a device.
106type DeviceFormFactor int32
107
108const (
109	// Do not use. For proto versioning only.
110	DeviceFormFactor_DEVICE_FORM_FACTOR_UNSPECIFIED DeviceFormFactor = 0
111	// This device has the shape of a phone.
112	DeviceFormFactor_PHONE DeviceFormFactor = 1
113	// This device has the shape of a tablet.
114	DeviceFormFactor_TABLET DeviceFormFactor = 2
115	// This device has the shape of a watch or other wearable.
116	DeviceFormFactor_WEARABLE DeviceFormFactor = 3
117)
118
119// Enum value maps for DeviceFormFactor.
120var (
121	DeviceFormFactor_name = map[int32]string{
122		0: "DEVICE_FORM_FACTOR_UNSPECIFIED",
123		1: "PHONE",
124		2: "TABLET",
125		3: "WEARABLE",
126	}
127	DeviceFormFactor_value = map[string]int32{
128		"DEVICE_FORM_FACTOR_UNSPECIFIED": 0,
129		"PHONE":                          1,
130		"TABLET":                         2,
131		"WEARABLE":                       3,
132	}
133)
134
135func (x DeviceFormFactor) Enum() *DeviceFormFactor {
136	p := new(DeviceFormFactor)
137	*p = x
138	return p
139}
140
141func (x DeviceFormFactor) String() string {
142	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
143}
144
145func (DeviceFormFactor) Descriptor() protoreflect.EnumDescriptor {
146	return file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes[1].Descriptor()
147}
148
149func (DeviceFormFactor) Type() protoreflect.EnumType {
150	return &file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes[1]
151}
152
153func (x DeviceFormFactor) Number() protoreflect.EnumNumber {
154	return protoreflect.EnumNumber(x)
155}
156
157// Deprecated: Use DeviceFormFactor.Descriptor instead.
158func (DeviceFormFactor) EnumDescriptor() ([]byte, []int) {
159	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{1}
160}
161
162// Types of environments the Test API supports.
163type GetTestEnvironmentCatalogRequest_EnvironmentType int32
164
165const (
166	// Do not use.  For proto versioning only.
167	GetTestEnvironmentCatalogRequest_ENVIRONMENT_TYPE_UNSPECIFIED GetTestEnvironmentCatalogRequest_EnvironmentType = 0
168	// A device running a version of the Android OS.
169	GetTestEnvironmentCatalogRequest_ANDROID GetTestEnvironmentCatalogRequest_EnvironmentType = 1
170	// A device running a version of iOS.
171	GetTestEnvironmentCatalogRequest_IOS GetTestEnvironmentCatalogRequest_EnvironmentType = 3
172	// A network configuration to use when running a test.
173	GetTestEnvironmentCatalogRequest_NETWORK_CONFIGURATION GetTestEnvironmentCatalogRequest_EnvironmentType = 4
174	// The software environment provided by TestExecutionService.
175	GetTestEnvironmentCatalogRequest_PROVIDED_SOFTWARE GetTestEnvironmentCatalogRequest_EnvironmentType = 5
176	// The IP blocks used by devices in the test environment.
177	GetTestEnvironmentCatalogRequest_DEVICE_IP_BLOCKS GetTestEnvironmentCatalogRequest_EnvironmentType = 6
178)
179
180// Enum value maps for GetTestEnvironmentCatalogRequest_EnvironmentType.
181var (
182	GetTestEnvironmentCatalogRequest_EnvironmentType_name = map[int32]string{
183		0: "ENVIRONMENT_TYPE_UNSPECIFIED",
184		1: "ANDROID",
185		3: "IOS",
186		4: "NETWORK_CONFIGURATION",
187		5: "PROVIDED_SOFTWARE",
188		6: "DEVICE_IP_BLOCKS",
189	}
190	GetTestEnvironmentCatalogRequest_EnvironmentType_value = map[string]int32{
191		"ENVIRONMENT_TYPE_UNSPECIFIED": 0,
192		"ANDROID":                      1,
193		"IOS":                          3,
194		"NETWORK_CONFIGURATION":        4,
195		"PROVIDED_SOFTWARE":            5,
196		"DEVICE_IP_BLOCKS":             6,
197	}
198)
199
200func (x GetTestEnvironmentCatalogRequest_EnvironmentType) Enum() *GetTestEnvironmentCatalogRequest_EnvironmentType {
201	p := new(GetTestEnvironmentCatalogRequest_EnvironmentType)
202	*p = x
203	return p
204}
205
206func (x GetTestEnvironmentCatalogRequest_EnvironmentType) String() string {
207	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
208}
209
210func (GetTestEnvironmentCatalogRequest_EnvironmentType) Descriptor() protoreflect.EnumDescriptor {
211	return file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes[2].Descriptor()
212}
213
214func (GetTestEnvironmentCatalogRequest_EnvironmentType) Type() protoreflect.EnumType {
215	return &file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes[2]
216}
217
218func (x GetTestEnvironmentCatalogRequest_EnvironmentType) Number() protoreflect.EnumNumber {
219	return protoreflect.EnumNumber(x)
220}
221
222// Deprecated: Use GetTestEnvironmentCatalogRequest_EnvironmentType.Descriptor instead.
223func (GetTestEnvironmentCatalogRequest_EnvironmentType) EnumDescriptor() ([]byte, []int) {
224	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{1, 0}
225}
226
227// A single device IP block
228type DeviceIpBlock struct {
229	state         protoimpl.MessageState
230	sizeCache     protoimpl.SizeCache
231	unknownFields protoimpl.UnknownFields
232
233	// An IP address block in CIDR notation eg: 34.68.194.64/29
234	Block string `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
235	// Whether this block is used by physical or virtual devices
236	Form DeviceForm `protobuf:"varint,2,opt,name=form,proto3,enum=google.devtools.testing.v1.DeviceForm" json:"form,omitempty"`
237	// The date this block was added to Firebase Test Lab
238	AddedDate *date.Date `protobuf:"bytes,3,opt,name=added_date,json=addedDate,proto3" json:"added_date,omitempty"`
239}
240
241func (x *DeviceIpBlock) Reset() {
242	*x = DeviceIpBlock{}
243	if protoimpl.UnsafeEnabled {
244		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[0]
245		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
246		ms.StoreMessageInfo(mi)
247	}
248}
249
250func (x *DeviceIpBlock) String() string {
251	return protoimpl.X.MessageStringOf(x)
252}
253
254func (*DeviceIpBlock) ProtoMessage() {}
255
256func (x *DeviceIpBlock) ProtoReflect() protoreflect.Message {
257	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[0]
258	if protoimpl.UnsafeEnabled && x != nil {
259		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
260		if ms.LoadMessageInfo() == nil {
261			ms.StoreMessageInfo(mi)
262		}
263		return ms
264	}
265	return mi.MessageOf(x)
266}
267
268// Deprecated: Use DeviceIpBlock.ProtoReflect.Descriptor instead.
269func (*DeviceIpBlock) Descriptor() ([]byte, []int) {
270	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{0}
271}
272
273func (x *DeviceIpBlock) GetBlock() string {
274	if x != nil {
275		return x.Block
276	}
277	return ""
278}
279
280func (x *DeviceIpBlock) GetForm() DeviceForm {
281	if x != nil {
282		return x.Form
283	}
284	return DeviceForm_DEVICE_FORM_UNSPECIFIED
285}
286
287func (x *DeviceIpBlock) GetAddedDate() *date.Date {
288	if x != nil {
289		return x.AddedDate
290	}
291	return nil
292}
293
294// Request to list the currently supported values for an environment type.
295type GetTestEnvironmentCatalogRequest struct {
296	state         protoimpl.MessageState
297	sizeCache     protoimpl.SizeCache
298	unknownFields protoimpl.UnknownFields
299
300	// Required. The type of environment that should be listed.
301	EnvironmentType GetTestEnvironmentCatalogRequest_EnvironmentType `protobuf:"varint,1,opt,name=environment_type,json=environmentType,proto3,enum=google.devtools.testing.v1.GetTestEnvironmentCatalogRequest_EnvironmentType" json:"environment_type,omitempty"`
302	// For authorization, the cloud project requesting the TestEnvironmentCatalog.
303	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
304}
305
306func (x *GetTestEnvironmentCatalogRequest) Reset() {
307	*x = GetTestEnvironmentCatalogRequest{}
308	if protoimpl.UnsafeEnabled {
309		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[1]
310		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
311		ms.StoreMessageInfo(mi)
312	}
313}
314
315func (x *GetTestEnvironmentCatalogRequest) String() string {
316	return protoimpl.X.MessageStringOf(x)
317}
318
319func (*GetTestEnvironmentCatalogRequest) ProtoMessage() {}
320
321func (x *GetTestEnvironmentCatalogRequest) ProtoReflect() protoreflect.Message {
322	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[1]
323	if protoimpl.UnsafeEnabled && x != nil {
324		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
325		if ms.LoadMessageInfo() == nil {
326			ms.StoreMessageInfo(mi)
327		}
328		return ms
329	}
330	return mi.MessageOf(x)
331}
332
333// Deprecated: Use GetTestEnvironmentCatalogRequest.ProtoReflect.Descriptor instead.
334func (*GetTestEnvironmentCatalogRequest) Descriptor() ([]byte, []int) {
335	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{1}
336}
337
338func (x *GetTestEnvironmentCatalogRequest) GetEnvironmentType() GetTestEnvironmentCatalogRequest_EnvironmentType {
339	if x != nil {
340		return x.EnvironmentType
341	}
342	return GetTestEnvironmentCatalogRequest_ENVIRONMENT_TYPE_UNSPECIFIED
343}
344
345func (x *GetTestEnvironmentCatalogRequest) GetProjectId() string {
346	if x != nil {
347		return x.ProjectId
348	}
349	return ""
350}
351
352// A description of a test environment.
353type TestEnvironmentCatalog struct {
354	state         protoimpl.MessageState
355	sizeCache     protoimpl.SizeCache
356	unknownFields protoimpl.UnknownFields
357
358	// Output only.
359	//
360	// Types that are assignable to EnvironmentCatalog:
361	//	*TestEnvironmentCatalog_AndroidDeviceCatalog
362	//	*TestEnvironmentCatalog_IosDeviceCatalog
363	//	*TestEnvironmentCatalog_NetworkConfigurationCatalog
364	//	*TestEnvironmentCatalog_SoftwareCatalog
365	//	*TestEnvironmentCatalog_DeviceIpBlockCatalog
366	EnvironmentCatalog isTestEnvironmentCatalog_EnvironmentCatalog `protobuf_oneof:"environment_catalog"`
367}
368
369func (x *TestEnvironmentCatalog) Reset() {
370	*x = TestEnvironmentCatalog{}
371	if protoimpl.UnsafeEnabled {
372		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[2]
373		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
374		ms.StoreMessageInfo(mi)
375	}
376}
377
378func (x *TestEnvironmentCatalog) String() string {
379	return protoimpl.X.MessageStringOf(x)
380}
381
382func (*TestEnvironmentCatalog) ProtoMessage() {}
383
384func (x *TestEnvironmentCatalog) ProtoReflect() protoreflect.Message {
385	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[2]
386	if protoimpl.UnsafeEnabled && x != nil {
387		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
388		if ms.LoadMessageInfo() == nil {
389			ms.StoreMessageInfo(mi)
390		}
391		return ms
392	}
393	return mi.MessageOf(x)
394}
395
396// Deprecated: Use TestEnvironmentCatalog.ProtoReflect.Descriptor instead.
397func (*TestEnvironmentCatalog) Descriptor() ([]byte, []int) {
398	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{2}
399}
400
401func (m *TestEnvironmentCatalog) GetEnvironmentCatalog() isTestEnvironmentCatalog_EnvironmentCatalog {
402	if m != nil {
403		return m.EnvironmentCatalog
404	}
405	return nil
406}
407
408func (x *TestEnvironmentCatalog) GetAndroidDeviceCatalog() *AndroidDeviceCatalog {
409	if x, ok := x.GetEnvironmentCatalog().(*TestEnvironmentCatalog_AndroidDeviceCatalog); ok {
410		return x.AndroidDeviceCatalog
411	}
412	return nil
413}
414
415func (x *TestEnvironmentCatalog) GetIosDeviceCatalog() *IosDeviceCatalog {
416	if x, ok := x.GetEnvironmentCatalog().(*TestEnvironmentCatalog_IosDeviceCatalog); ok {
417		return x.IosDeviceCatalog
418	}
419	return nil
420}
421
422func (x *TestEnvironmentCatalog) GetNetworkConfigurationCatalog() *NetworkConfigurationCatalog {
423	if x, ok := x.GetEnvironmentCatalog().(*TestEnvironmentCatalog_NetworkConfigurationCatalog); ok {
424		return x.NetworkConfigurationCatalog
425	}
426	return nil
427}
428
429func (x *TestEnvironmentCatalog) GetSoftwareCatalog() *ProvidedSoftwareCatalog {
430	if x, ok := x.GetEnvironmentCatalog().(*TestEnvironmentCatalog_SoftwareCatalog); ok {
431		return x.SoftwareCatalog
432	}
433	return nil
434}
435
436func (x *TestEnvironmentCatalog) GetDeviceIpBlockCatalog() *DeviceIpBlockCatalog {
437	if x, ok := x.GetEnvironmentCatalog().(*TestEnvironmentCatalog_DeviceIpBlockCatalog); ok {
438		return x.DeviceIpBlockCatalog
439	}
440	return nil
441}
442
443type isTestEnvironmentCatalog_EnvironmentCatalog interface {
444	isTestEnvironmentCatalog_EnvironmentCatalog()
445}
446
447type TestEnvironmentCatalog_AndroidDeviceCatalog struct {
448	// Supported Android devices.
449	AndroidDeviceCatalog *AndroidDeviceCatalog `protobuf:"bytes,1,opt,name=android_device_catalog,json=androidDeviceCatalog,proto3,oneof"`
450}
451
452type TestEnvironmentCatalog_IosDeviceCatalog struct {
453	// Supported iOS devices.
454	IosDeviceCatalog *IosDeviceCatalog `protobuf:"bytes,3,opt,name=ios_device_catalog,json=iosDeviceCatalog,proto3,oneof"`
455}
456
457type TestEnvironmentCatalog_NetworkConfigurationCatalog struct {
458	// Supported network configurations.
459	NetworkConfigurationCatalog *NetworkConfigurationCatalog `protobuf:"bytes,4,opt,name=network_configuration_catalog,json=networkConfigurationCatalog,proto3,oneof"`
460}
461
462type TestEnvironmentCatalog_SoftwareCatalog struct {
463	// The software test environment provided by TestExecutionService.
464	SoftwareCatalog *ProvidedSoftwareCatalog `protobuf:"bytes,5,opt,name=software_catalog,json=softwareCatalog,proto3,oneof"`
465}
466
467type TestEnvironmentCatalog_DeviceIpBlockCatalog struct {
468	// The IP blocks used by devices in the test environment.
469	DeviceIpBlockCatalog *DeviceIpBlockCatalog `protobuf:"bytes,6,opt,name=device_ip_block_catalog,json=deviceIpBlockCatalog,proto3,oneof"`
470}
471
472func (*TestEnvironmentCatalog_AndroidDeviceCatalog) isTestEnvironmentCatalog_EnvironmentCatalog() {}
473
474func (*TestEnvironmentCatalog_IosDeviceCatalog) isTestEnvironmentCatalog_EnvironmentCatalog() {}
475
476func (*TestEnvironmentCatalog_NetworkConfigurationCatalog) isTestEnvironmentCatalog_EnvironmentCatalog() {
477}
478
479func (*TestEnvironmentCatalog_SoftwareCatalog) isTestEnvironmentCatalog_EnvironmentCatalog() {}
480
481func (*TestEnvironmentCatalog_DeviceIpBlockCatalog) isTestEnvironmentCatalog_EnvironmentCatalog() {}
482
483// List of IP blocks used by the Firebase Test Lab
484type DeviceIpBlockCatalog struct {
485	state         protoimpl.MessageState
486	sizeCache     protoimpl.SizeCache
487	unknownFields protoimpl.UnknownFields
488
489	// The device IP blocks used by Firebase Test Lab
490	IpBlocks []*DeviceIpBlock `protobuf:"bytes,1,rep,name=ip_blocks,json=ipBlocks,proto3" json:"ip_blocks,omitempty"`
491}
492
493func (x *DeviceIpBlockCatalog) Reset() {
494	*x = DeviceIpBlockCatalog{}
495	if protoimpl.UnsafeEnabled {
496		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[3]
497		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
498		ms.StoreMessageInfo(mi)
499	}
500}
501
502func (x *DeviceIpBlockCatalog) String() string {
503	return protoimpl.X.MessageStringOf(x)
504}
505
506func (*DeviceIpBlockCatalog) ProtoMessage() {}
507
508func (x *DeviceIpBlockCatalog) ProtoReflect() protoreflect.Message {
509	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[3]
510	if protoimpl.UnsafeEnabled && x != nil {
511		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
512		if ms.LoadMessageInfo() == nil {
513			ms.StoreMessageInfo(mi)
514		}
515		return ms
516	}
517	return mi.MessageOf(x)
518}
519
520// Deprecated: Use DeviceIpBlockCatalog.ProtoReflect.Descriptor instead.
521func (*DeviceIpBlockCatalog) Descriptor() ([]byte, []int) {
522	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{3}
523}
524
525func (x *DeviceIpBlockCatalog) GetIpBlocks() []*DeviceIpBlock {
526	if x != nil {
527		return x.IpBlocks
528	}
529	return nil
530}
531
532// The currently supported Android devices.
533type AndroidDeviceCatalog struct {
534	state         protoimpl.MessageState
535	sizeCache     protoimpl.SizeCache
536	unknownFields protoimpl.UnknownFields
537
538	// The set of supported Android device models.
539	Models []*AndroidModel `protobuf:"bytes,1,rep,name=models,proto3" json:"models,omitempty"`
540	// The set of supported Android OS versions.
541	Versions []*AndroidVersion `protobuf:"bytes,2,rep,name=versions,proto3" json:"versions,omitempty"`
542	// The set of supported runtime configurations.
543	RuntimeConfiguration *AndroidRuntimeConfiguration `protobuf:"bytes,3,opt,name=runtime_configuration,json=runtimeConfiguration,proto3" json:"runtime_configuration,omitempty"`
544}
545
546func (x *AndroidDeviceCatalog) Reset() {
547	*x = AndroidDeviceCatalog{}
548	if protoimpl.UnsafeEnabled {
549		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[4]
550		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
551		ms.StoreMessageInfo(mi)
552	}
553}
554
555func (x *AndroidDeviceCatalog) String() string {
556	return protoimpl.X.MessageStringOf(x)
557}
558
559func (*AndroidDeviceCatalog) ProtoMessage() {}
560
561func (x *AndroidDeviceCatalog) ProtoReflect() protoreflect.Message {
562	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[4]
563	if protoimpl.UnsafeEnabled && x != nil {
564		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
565		if ms.LoadMessageInfo() == nil {
566			ms.StoreMessageInfo(mi)
567		}
568		return ms
569	}
570	return mi.MessageOf(x)
571}
572
573// Deprecated: Use AndroidDeviceCatalog.ProtoReflect.Descriptor instead.
574func (*AndroidDeviceCatalog) Descriptor() ([]byte, []int) {
575	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{4}
576}
577
578func (x *AndroidDeviceCatalog) GetModels() []*AndroidModel {
579	if x != nil {
580		return x.Models
581	}
582	return nil
583}
584
585func (x *AndroidDeviceCatalog) GetVersions() []*AndroidVersion {
586	if x != nil {
587		return x.Versions
588	}
589	return nil
590}
591
592func (x *AndroidDeviceCatalog) GetRuntimeConfiguration() *AndroidRuntimeConfiguration {
593	if x != nil {
594		return x.RuntimeConfiguration
595	}
596	return nil
597}
598
599// Android configuration that can be selected at the time a test is run.
600type AndroidRuntimeConfiguration struct {
601	state         protoimpl.MessageState
602	sizeCache     protoimpl.SizeCache
603	unknownFields protoimpl.UnknownFields
604
605	// The set of available locales.
606	Locales []*Locale `protobuf:"bytes,1,rep,name=locales,proto3" json:"locales,omitempty"`
607	// The set of available orientations.
608	Orientations []*Orientation `protobuf:"bytes,2,rep,name=orientations,proto3" json:"orientations,omitempty"`
609}
610
611func (x *AndroidRuntimeConfiguration) Reset() {
612	*x = AndroidRuntimeConfiguration{}
613	if protoimpl.UnsafeEnabled {
614		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[5]
615		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
616		ms.StoreMessageInfo(mi)
617	}
618}
619
620func (x *AndroidRuntimeConfiguration) String() string {
621	return protoimpl.X.MessageStringOf(x)
622}
623
624func (*AndroidRuntimeConfiguration) ProtoMessage() {}
625
626func (x *AndroidRuntimeConfiguration) ProtoReflect() protoreflect.Message {
627	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[5]
628	if protoimpl.UnsafeEnabled && x != nil {
629		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
630		if ms.LoadMessageInfo() == nil {
631			ms.StoreMessageInfo(mi)
632		}
633		return ms
634	}
635	return mi.MessageOf(x)
636}
637
638// Deprecated: Use AndroidRuntimeConfiguration.ProtoReflect.Descriptor instead.
639func (*AndroidRuntimeConfiguration) Descriptor() ([]byte, []int) {
640	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{5}
641}
642
643func (x *AndroidRuntimeConfiguration) GetLocales() []*Locale {
644	if x != nil {
645		return x.Locales
646	}
647	return nil
648}
649
650func (x *AndroidRuntimeConfiguration) GetOrientations() []*Orientation {
651	if x != nil {
652		return x.Orientations
653	}
654	return nil
655}
656
657// A description of an Android device tests may be run on.
658type AndroidModel struct {
659	state         protoimpl.MessageState
660	sizeCache     protoimpl.SizeCache
661	unknownFields protoimpl.UnknownFields
662
663	// The unique opaque id for this model.
664	// Use this for invoking the TestExecutionService.
665	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
666	// The human-readable marketing name for this device model.
667	// Examples: "Nexus 5", "Galaxy S5".
668	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
669	// The manufacturer of this device.
670	Manufacturer string `protobuf:"bytes,3,opt,name=manufacturer,proto3" json:"manufacturer,omitempty"`
671	// The company that this device is branded with.
672	// Example: "Google", "Samsung".
673	Brand string `protobuf:"bytes,9,opt,name=brand,proto3" json:"brand,omitempty"`
674	// The name of the industrial design.
675	// This corresponds to android.os.Build.DEVICE.
676	Codename string `protobuf:"bytes,10,opt,name=codename,proto3" json:"codename,omitempty"`
677	// Whether this device is virtual or physical.
678	Form DeviceForm `protobuf:"varint,4,opt,name=form,proto3,enum=google.devtools.testing.v1.DeviceForm" json:"form,omitempty"`
679	// Whether this device is a phone, tablet, wearable, etc.
680	FormFactor DeviceFormFactor `protobuf:"varint,16,opt,name=form_factor,json=formFactor,proto3,enum=google.devtools.testing.v1.DeviceFormFactor" json:"form_factor,omitempty"`
681	// Screen size in the horizontal (X) dimension measured in pixels.
682	ScreenX int32 `protobuf:"varint,5,opt,name=screen_x,json=screenX,proto3" json:"screen_x,omitempty"`
683	// Screen size in the vertical (Y) dimension measured in pixels.
684	ScreenY int32 `protobuf:"varint,6,opt,name=screen_y,json=screenY,proto3" json:"screen_y,omitempty"`
685	// Screen density in DPI.
686	// This corresponds to ro.sf.lcd_density
687	ScreenDensity int32 `protobuf:"varint,12,opt,name=screen_density,json=screenDensity,proto3" json:"screen_density,omitempty"`
688	// True if and only if tests with this model are recorded by stitching
689	// together screenshots. See use_low_spec_video_recording in device config.
690	LowFpsVideoRecording bool `protobuf:"varint,17,opt,name=low_fps_video_recording,json=lowFpsVideoRecording,proto3" json:"low_fps_video_recording,omitempty"`
691	// The set of Android versions this device supports.
692	SupportedVersionIds []string `protobuf:"bytes,7,rep,name=supported_version_ids,json=supportedVersionIds,proto3" json:"supported_version_ids,omitempty"`
693	// The list of supported ABIs for this device.
694	// This corresponds to either android.os.Build.SUPPORTED_ABIS (for API level
695	// 21 and above) or android.os.Build.CPU_ABI/CPU_ABI2.
696	// The most preferred ABI is the first element in the list.
697	//
698	// Elements are optionally prefixed by "version_id:" (where version_id is
699	// the id of an AndroidVersion), denoting an ABI that is supported only on
700	// a particular version.
701	SupportedAbis []string `protobuf:"bytes,11,rep,name=supported_abis,json=supportedAbis,proto3" json:"supported_abis,omitempty"`
702	// Tags for this dimension.
703	// Examples: "default", "preview", "deprecated".
704	Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"`
705	// URL of a thumbnail image (photo) of the device.
706	// e.g. https://lh3.googleusercontent.com/90WcauuJiCYABEl8U0lcZeuS5STUbf2yW...
707	ThumbnailUrl string `protobuf:"bytes,19,opt,name=thumbnail_url,json=thumbnailUrl,proto3" json:"thumbnail_url,omitempty"`
708}
709
710func (x *AndroidModel) Reset() {
711	*x = AndroidModel{}
712	if protoimpl.UnsafeEnabled {
713		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[6]
714		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
715		ms.StoreMessageInfo(mi)
716	}
717}
718
719func (x *AndroidModel) String() string {
720	return protoimpl.X.MessageStringOf(x)
721}
722
723func (*AndroidModel) ProtoMessage() {}
724
725func (x *AndroidModel) ProtoReflect() protoreflect.Message {
726	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[6]
727	if protoimpl.UnsafeEnabled && x != nil {
728		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
729		if ms.LoadMessageInfo() == nil {
730			ms.StoreMessageInfo(mi)
731		}
732		return ms
733	}
734	return mi.MessageOf(x)
735}
736
737// Deprecated: Use AndroidModel.ProtoReflect.Descriptor instead.
738func (*AndroidModel) Descriptor() ([]byte, []int) {
739	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{6}
740}
741
742func (x *AndroidModel) GetId() string {
743	if x != nil {
744		return x.Id
745	}
746	return ""
747}
748
749func (x *AndroidModel) GetName() string {
750	if x != nil {
751		return x.Name
752	}
753	return ""
754}
755
756func (x *AndroidModel) GetManufacturer() string {
757	if x != nil {
758		return x.Manufacturer
759	}
760	return ""
761}
762
763func (x *AndroidModel) GetBrand() string {
764	if x != nil {
765		return x.Brand
766	}
767	return ""
768}
769
770func (x *AndroidModel) GetCodename() string {
771	if x != nil {
772		return x.Codename
773	}
774	return ""
775}
776
777func (x *AndroidModel) GetForm() DeviceForm {
778	if x != nil {
779		return x.Form
780	}
781	return DeviceForm_DEVICE_FORM_UNSPECIFIED
782}
783
784func (x *AndroidModel) GetFormFactor() DeviceFormFactor {
785	if x != nil {
786		return x.FormFactor
787	}
788	return DeviceFormFactor_DEVICE_FORM_FACTOR_UNSPECIFIED
789}
790
791func (x *AndroidModel) GetScreenX() int32 {
792	if x != nil {
793		return x.ScreenX
794	}
795	return 0
796}
797
798func (x *AndroidModel) GetScreenY() int32 {
799	if x != nil {
800		return x.ScreenY
801	}
802	return 0
803}
804
805func (x *AndroidModel) GetScreenDensity() int32 {
806	if x != nil {
807		return x.ScreenDensity
808	}
809	return 0
810}
811
812func (x *AndroidModel) GetLowFpsVideoRecording() bool {
813	if x != nil {
814		return x.LowFpsVideoRecording
815	}
816	return false
817}
818
819func (x *AndroidModel) GetSupportedVersionIds() []string {
820	if x != nil {
821		return x.SupportedVersionIds
822	}
823	return nil
824}
825
826func (x *AndroidModel) GetSupportedAbis() []string {
827	if x != nil {
828		return x.SupportedAbis
829	}
830	return nil
831}
832
833func (x *AndroidModel) GetTags() []string {
834	if x != nil {
835		return x.Tags
836	}
837	return nil
838}
839
840func (x *AndroidModel) GetThumbnailUrl() string {
841	if x != nil {
842		return x.ThumbnailUrl
843	}
844	return ""
845}
846
847// A version of the Android OS.
848type AndroidVersion struct {
849	state         protoimpl.MessageState
850	sizeCache     protoimpl.SizeCache
851	unknownFields protoimpl.UnknownFields
852
853	// An opaque id for this Android version.
854	// Use this id to invoke the TestExecutionService.
855	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
856	// A string representing this version of the Android OS.
857	// Examples: "4.3", "4.4".
858	VersionString string `protobuf:"bytes,2,opt,name=version_string,json=versionString,proto3" json:"version_string,omitempty"`
859	// The API level for this Android version.
860	// Examples: 18, 19.
861	ApiLevel int32 `protobuf:"varint,3,opt,name=api_level,json=apiLevel,proto3" json:"api_level,omitempty"`
862	// The code name for this Android version.
863	// Examples: "JellyBean", "KitKat".
864	CodeName string `protobuf:"bytes,4,opt,name=code_name,json=codeName,proto3" json:"code_name,omitempty"`
865	// The date this Android version became available in the market.
866	ReleaseDate *date.Date `protobuf:"bytes,5,opt,name=release_date,json=releaseDate,proto3" json:"release_date,omitempty"`
867	// Market share for this version.
868	Distribution *Distribution `protobuf:"bytes,6,opt,name=distribution,proto3" json:"distribution,omitempty"`
869	// Tags for this dimension.
870	// Examples: "default", "preview", "deprecated".
871	Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"`
872}
873
874func (x *AndroidVersion) Reset() {
875	*x = AndroidVersion{}
876	if protoimpl.UnsafeEnabled {
877		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[7]
878		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
879		ms.StoreMessageInfo(mi)
880	}
881}
882
883func (x *AndroidVersion) String() string {
884	return protoimpl.X.MessageStringOf(x)
885}
886
887func (*AndroidVersion) ProtoMessage() {}
888
889func (x *AndroidVersion) ProtoReflect() protoreflect.Message {
890	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[7]
891	if protoimpl.UnsafeEnabled && x != nil {
892		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
893		if ms.LoadMessageInfo() == nil {
894			ms.StoreMessageInfo(mi)
895		}
896		return ms
897	}
898	return mi.MessageOf(x)
899}
900
901// Deprecated: Use AndroidVersion.ProtoReflect.Descriptor instead.
902func (*AndroidVersion) Descriptor() ([]byte, []int) {
903	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{7}
904}
905
906func (x *AndroidVersion) GetId() string {
907	if x != nil {
908		return x.Id
909	}
910	return ""
911}
912
913func (x *AndroidVersion) GetVersionString() string {
914	if x != nil {
915		return x.VersionString
916	}
917	return ""
918}
919
920func (x *AndroidVersion) GetApiLevel() int32 {
921	if x != nil {
922		return x.ApiLevel
923	}
924	return 0
925}
926
927func (x *AndroidVersion) GetCodeName() string {
928	if x != nil {
929		return x.CodeName
930	}
931	return ""
932}
933
934func (x *AndroidVersion) GetReleaseDate() *date.Date {
935	if x != nil {
936		return x.ReleaseDate
937	}
938	return nil
939}
940
941func (x *AndroidVersion) GetDistribution() *Distribution {
942	if x != nil {
943		return x.Distribution
944	}
945	return nil
946}
947
948func (x *AndroidVersion) GetTags() []string {
949	if x != nil {
950		return x.Tags
951	}
952	return nil
953}
954
955// Data about the relative number of devices running a
956// given configuration of the Android platform.
957type Distribution struct {
958	state         protoimpl.MessageState
959	sizeCache     protoimpl.SizeCache
960	unknownFields protoimpl.UnknownFields
961
962	// Output only. The time this distribution was measured.
963	MeasurementTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=measurement_time,json=measurementTime,proto3" json:"measurement_time,omitempty"`
964	// Output only. The estimated fraction (0-1) of the total market with this
965	// configuration.
966	MarketShare float64 `protobuf:"fixed64,2,opt,name=market_share,json=marketShare,proto3" json:"market_share,omitempty"`
967}
968
969func (x *Distribution) Reset() {
970	*x = Distribution{}
971	if protoimpl.UnsafeEnabled {
972		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[8]
973		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
974		ms.StoreMessageInfo(mi)
975	}
976}
977
978func (x *Distribution) String() string {
979	return protoimpl.X.MessageStringOf(x)
980}
981
982func (*Distribution) ProtoMessage() {}
983
984func (x *Distribution) ProtoReflect() protoreflect.Message {
985	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[8]
986	if protoimpl.UnsafeEnabled && x != nil {
987		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
988		if ms.LoadMessageInfo() == nil {
989			ms.StoreMessageInfo(mi)
990		}
991		return ms
992	}
993	return mi.MessageOf(x)
994}
995
996// Deprecated: Use Distribution.ProtoReflect.Descriptor instead.
997func (*Distribution) Descriptor() ([]byte, []int) {
998	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{8}
999}
1000
1001func (x *Distribution) GetMeasurementTime() *timestamppb.Timestamp {
1002	if x != nil {
1003		return x.MeasurementTime
1004	}
1005	return nil
1006}
1007
1008func (x *Distribution) GetMarketShare() float64 {
1009	if x != nil {
1010		return x.MarketShare
1011	}
1012	return 0
1013}
1014
1015// The currently supported iOS devices.
1016type IosDeviceCatalog struct {
1017	state         protoimpl.MessageState
1018	sizeCache     protoimpl.SizeCache
1019	unknownFields protoimpl.UnknownFields
1020
1021	// The set of supported iOS device models.
1022	Models []*IosModel `protobuf:"bytes,1,rep,name=models,proto3" json:"models,omitempty"`
1023	// The set of supported iOS software versions.
1024	Versions []*IosVersion `protobuf:"bytes,2,rep,name=versions,proto3" json:"versions,omitempty"`
1025	// The set of supported Xcode versions.
1026	XcodeVersions []*XcodeVersion `protobuf:"bytes,4,rep,name=xcode_versions,json=xcodeVersions,proto3" json:"xcode_versions,omitempty"`
1027	// The set of supported runtime configurations.
1028	RuntimeConfiguration *IosRuntimeConfiguration `protobuf:"bytes,3,opt,name=runtime_configuration,json=runtimeConfiguration,proto3" json:"runtime_configuration,omitempty"`
1029}
1030
1031func (x *IosDeviceCatalog) Reset() {
1032	*x = IosDeviceCatalog{}
1033	if protoimpl.UnsafeEnabled {
1034		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[9]
1035		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1036		ms.StoreMessageInfo(mi)
1037	}
1038}
1039
1040func (x *IosDeviceCatalog) String() string {
1041	return protoimpl.X.MessageStringOf(x)
1042}
1043
1044func (*IosDeviceCatalog) ProtoMessage() {}
1045
1046func (x *IosDeviceCatalog) ProtoReflect() protoreflect.Message {
1047	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[9]
1048	if protoimpl.UnsafeEnabled && x != nil {
1049		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1050		if ms.LoadMessageInfo() == nil {
1051			ms.StoreMessageInfo(mi)
1052		}
1053		return ms
1054	}
1055	return mi.MessageOf(x)
1056}
1057
1058// Deprecated: Use IosDeviceCatalog.ProtoReflect.Descriptor instead.
1059func (*IosDeviceCatalog) Descriptor() ([]byte, []int) {
1060	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{9}
1061}
1062
1063func (x *IosDeviceCatalog) GetModels() []*IosModel {
1064	if x != nil {
1065		return x.Models
1066	}
1067	return nil
1068}
1069
1070func (x *IosDeviceCatalog) GetVersions() []*IosVersion {
1071	if x != nil {
1072		return x.Versions
1073	}
1074	return nil
1075}
1076
1077func (x *IosDeviceCatalog) GetXcodeVersions() []*XcodeVersion {
1078	if x != nil {
1079		return x.XcodeVersions
1080	}
1081	return nil
1082}
1083
1084func (x *IosDeviceCatalog) GetRuntimeConfiguration() *IosRuntimeConfiguration {
1085	if x != nil {
1086		return x.RuntimeConfiguration
1087	}
1088	return nil
1089}
1090
1091// iOS configuration that can be selected at the time a test is run.
1092type IosRuntimeConfiguration struct {
1093	state         protoimpl.MessageState
1094	sizeCache     protoimpl.SizeCache
1095	unknownFields protoimpl.UnknownFields
1096
1097	// The set of available locales.
1098	Locales []*Locale `protobuf:"bytes,1,rep,name=locales,proto3" json:"locales,omitempty"`
1099	// The set of available orientations.
1100	Orientations []*Orientation `protobuf:"bytes,2,rep,name=orientations,proto3" json:"orientations,omitempty"`
1101}
1102
1103func (x *IosRuntimeConfiguration) Reset() {
1104	*x = IosRuntimeConfiguration{}
1105	if protoimpl.UnsafeEnabled {
1106		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[10]
1107		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1108		ms.StoreMessageInfo(mi)
1109	}
1110}
1111
1112func (x *IosRuntimeConfiguration) String() string {
1113	return protoimpl.X.MessageStringOf(x)
1114}
1115
1116func (*IosRuntimeConfiguration) ProtoMessage() {}
1117
1118func (x *IosRuntimeConfiguration) ProtoReflect() protoreflect.Message {
1119	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[10]
1120	if protoimpl.UnsafeEnabled && x != nil {
1121		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1122		if ms.LoadMessageInfo() == nil {
1123			ms.StoreMessageInfo(mi)
1124		}
1125		return ms
1126	}
1127	return mi.MessageOf(x)
1128}
1129
1130// Deprecated: Use IosRuntimeConfiguration.ProtoReflect.Descriptor instead.
1131func (*IosRuntimeConfiguration) Descriptor() ([]byte, []int) {
1132	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{10}
1133}
1134
1135func (x *IosRuntimeConfiguration) GetLocales() []*Locale {
1136	if x != nil {
1137		return x.Locales
1138	}
1139	return nil
1140}
1141
1142func (x *IosRuntimeConfiguration) GetOrientations() []*Orientation {
1143	if x != nil {
1144		return x.Orientations
1145	}
1146	return nil
1147}
1148
1149// A description of an iOS device tests may be run on.
1150type IosModel struct {
1151	state         protoimpl.MessageState
1152	sizeCache     protoimpl.SizeCache
1153	unknownFields protoimpl.UnknownFields
1154
1155	// The unique opaque id for this model.
1156	// Use this for invoking the TestExecutionService.
1157	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1158	// The human-readable name for this device model.
1159	// Examples: "iPhone 4s", "iPad Mini 2".
1160	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
1161	// The set of iOS major software versions this device supports.
1162	SupportedVersionIds []string `protobuf:"bytes,3,rep,name=supported_version_ids,json=supportedVersionIds,proto3" json:"supported_version_ids,omitempty"`
1163	// Tags for this dimension.
1164	// Examples: "default", "preview", "deprecated".
1165	Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
1166	// Device capabilities.
1167	// Copied from
1168	// https://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html
1169	DeviceCapabilities []string `protobuf:"bytes,5,rep,name=device_capabilities,json=deviceCapabilities,proto3" json:"device_capabilities,omitempty"`
1170	// Screen size in the horizontal (X) dimension measured in pixels.
1171	ScreenX int32 `protobuf:"varint,7,opt,name=screen_x,json=screenX,proto3" json:"screen_x,omitempty"`
1172	// Screen size in the vertical (Y) dimension measured in pixels.
1173	ScreenY int32 `protobuf:"varint,8,opt,name=screen_y,json=screenY,proto3" json:"screen_y,omitempty"`
1174	// Screen density in DPI.
1175	ScreenDensity int32 `protobuf:"varint,9,opt,name=screen_density,json=screenDensity,proto3" json:"screen_density,omitempty"`
1176	// Whether this device is a phone, tablet, wearable, etc.
1177	FormFactor DeviceFormFactor `protobuf:"varint,6,opt,name=form_factor,json=formFactor,proto3,enum=google.devtools.testing.v1.DeviceFormFactor" json:"form_factor,omitempty"`
1178}
1179
1180func (x *IosModel) Reset() {
1181	*x = IosModel{}
1182	if protoimpl.UnsafeEnabled {
1183		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[11]
1184		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1185		ms.StoreMessageInfo(mi)
1186	}
1187}
1188
1189func (x *IosModel) String() string {
1190	return protoimpl.X.MessageStringOf(x)
1191}
1192
1193func (*IosModel) ProtoMessage() {}
1194
1195func (x *IosModel) ProtoReflect() protoreflect.Message {
1196	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[11]
1197	if protoimpl.UnsafeEnabled && x != nil {
1198		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1199		if ms.LoadMessageInfo() == nil {
1200			ms.StoreMessageInfo(mi)
1201		}
1202		return ms
1203	}
1204	return mi.MessageOf(x)
1205}
1206
1207// Deprecated: Use IosModel.ProtoReflect.Descriptor instead.
1208func (*IosModel) Descriptor() ([]byte, []int) {
1209	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{11}
1210}
1211
1212func (x *IosModel) GetId() string {
1213	if x != nil {
1214		return x.Id
1215	}
1216	return ""
1217}
1218
1219func (x *IosModel) GetName() string {
1220	if x != nil {
1221		return x.Name
1222	}
1223	return ""
1224}
1225
1226func (x *IosModel) GetSupportedVersionIds() []string {
1227	if x != nil {
1228		return x.SupportedVersionIds
1229	}
1230	return nil
1231}
1232
1233func (x *IosModel) GetTags() []string {
1234	if x != nil {
1235		return x.Tags
1236	}
1237	return nil
1238}
1239
1240func (x *IosModel) GetDeviceCapabilities() []string {
1241	if x != nil {
1242		return x.DeviceCapabilities
1243	}
1244	return nil
1245}
1246
1247func (x *IosModel) GetScreenX() int32 {
1248	if x != nil {
1249		return x.ScreenX
1250	}
1251	return 0
1252}
1253
1254func (x *IosModel) GetScreenY() int32 {
1255	if x != nil {
1256		return x.ScreenY
1257	}
1258	return 0
1259}
1260
1261func (x *IosModel) GetScreenDensity() int32 {
1262	if x != nil {
1263		return x.ScreenDensity
1264	}
1265	return 0
1266}
1267
1268func (x *IosModel) GetFormFactor() DeviceFormFactor {
1269	if x != nil {
1270		return x.FormFactor
1271	}
1272	return DeviceFormFactor_DEVICE_FORM_FACTOR_UNSPECIFIED
1273}
1274
1275// An iOS version.
1276type IosVersion struct {
1277	state         protoimpl.MessageState
1278	sizeCache     protoimpl.SizeCache
1279	unknownFields protoimpl.UnknownFields
1280
1281	// An opaque id for this iOS version.
1282	// Use this id to invoke the TestExecutionService.
1283	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1284	// An integer representing the major iOS version.
1285	// Examples: "8", "9".
1286	MajorVersion int32 `protobuf:"varint,2,opt,name=major_version,json=majorVersion,proto3" json:"major_version,omitempty"`
1287	// An integer representing the minor iOS version.
1288	// Examples: "1", "2".
1289	MinorVersion int32 `protobuf:"varint,4,opt,name=minor_version,json=minorVersion,proto3" json:"minor_version,omitempty"`
1290	// Tags for this dimension.
1291	// Examples: "default", "preview", "deprecated".
1292	Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"`
1293	// The available Xcode versions for this version.
1294	SupportedXcodeVersionIds []string `protobuf:"bytes,5,rep,name=supported_xcode_version_ids,json=supportedXcodeVersionIds,proto3" json:"supported_xcode_version_ids,omitempty"`
1295}
1296
1297func (x *IosVersion) Reset() {
1298	*x = IosVersion{}
1299	if protoimpl.UnsafeEnabled {
1300		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[12]
1301		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1302		ms.StoreMessageInfo(mi)
1303	}
1304}
1305
1306func (x *IosVersion) String() string {
1307	return protoimpl.X.MessageStringOf(x)
1308}
1309
1310func (*IosVersion) ProtoMessage() {}
1311
1312func (x *IosVersion) ProtoReflect() protoreflect.Message {
1313	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[12]
1314	if protoimpl.UnsafeEnabled && x != nil {
1315		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1316		if ms.LoadMessageInfo() == nil {
1317			ms.StoreMessageInfo(mi)
1318		}
1319		return ms
1320	}
1321	return mi.MessageOf(x)
1322}
1323
1324// Deprecated: Use IosVersion.ProtoReflect.Descriptor instead.
1325func (*IosVersion) Descriptor() ([]byte, []int) {
1326	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{12}
1327}
1328
1329func (x *IosVersion) GetId() string {
1330	if x != nil {
1331		return x.Id
1332	}
1333	return ""
1334}
1335
1336func (x *IosVersion) GetMajorVersion() int32 {
1337	if x != nil {
1338		return x.MajorVersion
1339	}
1340	return 0
1341}
1342
1343func (x *IosVersion) GetMinorVersion() int32 {
1344	if x != nil {
1345		return x.MinorVersion
1346	}
1347	return 0
1348}
1349
1350func (x *IosVersion) GetTags() []string {
1351	if x != nil {
1352		return x.Tags
1353	}
1354	return nil
1355}
1356
1357func (x *IosVersion) GetSupportedXcodeVersionIds() []string {
1358	if x != nil {
1359		return x.SupportedXcodeVersionIds
1360	}
1361	return nil
1362}
1363
1364// A location/region designation for language.
1365type Locale struct {
1366	state         protoimpl.MessageState
1367	sizeCache     protoimpl.SizeCache
1368	unknownFields protoimpl.UnknownFields
1369
1370	// The id for this locale.
1371	// Example: "en_US".
1372	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1373	// A human-friendly name for this language/locale.
1374	// Example: "English".
1375	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
1376	// A human-friendly string representing the region for this
1377	// locale. Example: "United States". Not present for every locale.
1378	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
1379	// Tags for this dimension.
1380	// Example: "default".
1381	Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
1382}
1383
1384func (x *Locale) Reset() {
1385	*x = Locale{}
1386	if protoimpl.UnsafeEnabled {
1387		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[13]
1388		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1389		ms.StoreMessageInfo(mi)
1390	}
1391}
1392
1393func (x *Locale) String() string {
1394	return protoimpl.X.MessageStringOf(x)
1395}
1396
1397func (*Locale) ProtoMessage() {}
1398
1399func (x *Locale) ProtoReflect() protoreflect.Message {
1400	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[13]
1401	if protoimpl.UnsafeEnabled && x != nil {
1402		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1403		if ms.LoadMessageInfo() == nil {
1404			ms.StoreMessageInfo(mi)
1405		}
1406		return ms
1407	}
1408	return mi.MessageOf(x)
1409}
1410
1411// Deprecated: Use Locale.ProtoReflect.Descriptor instead.
1412func (*Locale) Descriptor() ([]byte, []int) {
1413	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{13}
1414}
1415
1416func (x *Locale) GetId() string {
1417	if x != nil {
1418		return x.Id
1419	}
1420	return ""
1421}
1422
1423func (x *Locale) GetName() string {
1424	if x != nil {
1425		return x.Name
1426	}
1427	return ""
1428}
1429
1430func (x *Locale) GetRegion() string {
1431	if x != nil {
1432		return x.Region
1433	}
1434	return ""
1435}
1436
1437func (x *Locale) GetTags() []string {
1438	if x != nil {
1439		return x.Tags
1440	}
1441	return nil
1442}
1443
1444// Screen orientation of the device.
1445type Orientation struct {
1446	state         protoimpl.MessageState
1447	sizeCache     protoimpl.SizeCache
1448	unknownFields protoimpl.UnknownFields
1449
1450	// The id for this orientation.
1451	// Example: "portrait".
1452	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1453	// A human-friendly name for this orientation.
1454	// Example: "portrait".
1455	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
1456	// Tags for this dimension.
1457	// Example: "default".
1458	Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"`
1459}
1460
1461func (x *Orientation) Reset() {
1462	*x = Orientation{}
1463	if protoimpl.UnsafeEnabled {
1464		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[14]
1465		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1466		ms.StoreMessageInfo(mi)
1467	}
1468}
1469
1470func (x *Orientation) String() string {
1471	return protoimpl.X.MessageStringOf(x)
1472}
1473
1474func (*Orientation) ProtoMessage() {}
1475
1476func (x *Orientation) ProtoReflect() protoreflect.Message {
1477	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[14]
1478	if protoimpl.UnsafeEnabled && x != nil {
1479		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1480		if ms.LoadMessageInfo() == nil {
1481			ms.StoreMessageInfo(mi)
1482		}
1483		return ms
1484	}
1485	return mi.MessageOf(x)
1486}
1487
1488// Deprecated: Use Orientation.ProtoReflect.Descriptor instead.
1489func (*Orientation) Descriptor() ([]byte, []int) {
1490	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{14}
1491}
1492
1493func (x *Orientation) GetId() string {
1494	if x != nil {
1495		return x.Id
1496	}
1497	return ""
1498}
1499
1500func (x *Orientation) GetName() string {
1501	if x != nil {
1502		return x.Name
1503	}
1504	return ""
1505}
1506
1507func (x *Orientation) GetTags() []string {
1508	if x != nil {
1509		return x.Tags
1510	}
1511	return nil
1512}
1513
1514// An Xcode version that an iOS version is compatible with.
1515type XcodeVersion struct {
1516	state         protoimpl.MessageState
1517	sizeCache     protoimpl.SizeCache
1518	unknownFields protoimpl.UnknownFields
1519
1520	// The id for this version.
1521	// Example: "9.2".
1522	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
1523	// Tags for this Xcode version.
1524	// Example: "default".
1525	Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"`
1526}
1527
1528func (x *XcodeVersion) Reset() {
1529	*x = XcodeVersion{}
1530	if protoimpl.UnsafeEnabled {
1531		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[15]
1532		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1533		ms.StoreMessageInfo(mi)
1534	}
1535}
1536
1537func (x *XcodeVersion) String() string {
1538	return protoimpl.X.MessageStringOf(x)
1539}
1540
1541func (*XcodeVersion) ProtoMessage() {}
1542
1543func (x *XcodeVersion) ProtoReflect() protoreflect.Message {
1544	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[15]
1545	if protoimpl.UnsafeEnabled && x != nil {
1546		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1547		if ms.LoadMessageInfo() == nil {
1548			ms.StoreMessageInfo(mi)
1549		}
1550		return ms
1551	}
1552	return mi.MessageOf(x)
1553}
1554
1555// Deprecated: Use XcodeVersion.ProtoReflect.Descriptor instead.
1556func (*XcodeVersion) Descriptor() ([]byte, []int) {
1557	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{15}
1558}
1559
1560func (x *XcodeVersion) GetVersion() string {
1561	if x != nil {
1562		return x.Version
1563	}
1564	return ""
1565}
1566
1567func (x *XcodeVersion) GetTags() []string {
1568	if x != nil {
1569		return x.Tags
1570	}
1571	return nil
1572}
1573
1574type NetworkConfigurationCatalog struct {
1575	state         protoimpl.MessageState
1576	sizeCache     protoimpl.SizeCache
1577	unknownFields protoimpl.UnknownFields
1578
1579	Configurations []*NetworkConfiguration `protobuf:"bytes,1,rep,name=configurations,proto3" json:"configurations,omitempty"`
1580}
1581
1582func (x *NetworkConfigurationCatalog) Reset() {
1583	*x = NetworkConfigurationCatalog{}
1584	if protoimpl.UnsafeEnabled {
1585		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[16]
1586		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1587		ms.StoreMessageInfo(mi)
1588	}
1589}
1590
1591func (x *NetworkConfigurationCatalog) String() string {
1592	return protoimpl.X.MessageStringOf(x)
1593}
1594
1595func (*NetworkConfigurationCatalog) ProtoMessage() {}
1596
1597func (x *NetworkConfigurationCatalog) ProtoReflect() protoreflect.Message {
1598	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[16]
1599	if protoimpl.UnsafeEnabled && x != nil {
1600		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1601		if ms.LoadMessageInfo() == nil {
1602			ms.StoreMessageInfo(mi)
1603		}
1604		return ms
1605	}
1606	return mi.MessageOf(x)
1607}
1608
1609// Deprecated: Use NetworkConfigurationCatalog.ProtoReflect.Descriptor instead.
1610func (*NetworkConfigurationCatalog) Descriptor() ([]byte, []int) {
1611	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{16}
1612}
1613
1614func (x *NetworkConfigurationCatalog) GetConfigurations() []*NetworkConfiguration {
1615	if x != nil {
1616		return x.Configurations
1617	}
1618	return nil
1619}
1620
1621type NetworkConfiguration struct {
1622	state         protoimpl.MessageState
1623	sizeCache     protoimpl.SizeCache
1624	unknownFields protoimpl.UnknownFields
1625
1626	// The unique opaque id for this network traffic configuration.
1627	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1628	// The emulation rule applying to the upload traffic.
1629	UpRule *TrafficRule `protobuf:"bytes,2,opt,name=up_rule,json=upRule,proto3" json:"up_rule,omitempty"`
1630	// The emulation rule applying to the download traffic.
1631	DownRule *TrafficRule `protobuf:"bytes,3,opt,name=down_rule,json=downRule,proto3" json:"down_rule,omitempty"`
1632}
1633
1634func (x *NetworkConfiguration) Reset() {
1635	*x = NetworkConfiguration{}
1636	if protoimpl.UnsafeEnabled {
1637		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[17]
1638		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1639		ms.StoreMessageInfo(mi)
1640	}
1641}
1642
1643func (x *NetworkConfiguration) String() string {
1644	return protoimpl.X.MessageStringOf(x)
1645}
1646
1647func (*NetworkConfiguration) ProtoMessage() {}
1648
1649func (x *NetworkConfiguration) ProtoReflect() protoreflect.Message {
1650	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[17]
1651	if protoimpl.UnsafeEnabled && x != nil {
1652		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1653		if ms.LoadMessageInfo() == nil {
1654			ms.StoreMessageInfo(mi)
1655		}
1656		return ms
1657	}
1658	return mi.MessageOf(x)
1659}
1660
1661// Deprecated: Use NetworkConfiguration.ProtoReflect.Descriptor instead.
1662func (*NetworkConfiguration) Descriptor() ([]byte, []int) {
1663	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{17}
1664}
1665
1666func (x *NetworkConfiguration) GetId() string {
1667	if x != nil {
1668		return x.Id
1669	}
1670	return ""
1671}
1672
1673func (x *NetworkConfiguration) GetUpRule() *TrafficRule {
1674	if x != nil {
1675		return x.UpRule
1676	}
1677	return nil
1678}
1679
1680func (x *NetworkConfiguration) GetDownRule() *TrafficRule {
1681	if x != nil {
1682		return x.DownRule
1683	}
1684	return nil
1685}
1686
1687// Network emulation parameters.
1688type TrafficRule struct {
1689	state         protoimpl.MessageState
1690	sizeCache     protoimpl.SizeCache
1691	unknownFields protoimpl.UnknownFields
1692
1693	// Packet delay, must be >= 0.
1694	Delay *durationpb.Duration `protobuf:"bytes,1,opt,name=delay,proto3" json:"delay,omitempty"`
1695	// Packet loss ratio (0.0 - 1.0).
1696	PacketLossRatio float32 `protobuf:"fixed32,2,opt,name=packet_loss_ratio,json=packetLossRatio,proto3" json:"packet_loss_ratio,omitempty"`
1697	// Packet duplication ratio (0.0 - 1.0).
1698	PacketDuplicationRatio float32 `protobuf:"fixed32,3,opt,name=packet_duplication_ratio,json=packetDuplicationRatio,proto3" json:"packet_duplication_ratio,omitempty"`
1699	// Bandwidth in kbits/second.
1700	Bandwidth float32 `protobuf:"fixed32,4,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
1701	// Burst size in kbits.
1702	Burst float32 `protobuf:"fixed32,5,opt,name=burst,proto3" json:"burst,omitempty"`
1703}
1704
1705func (x *TrafficRule) Reset() {
1706	*x = TrafficRule{}
1707	if protoimpl.UnsafeEnabled {
1708		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[18]
1709		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1710		ms.StoreMessageInfo(mi)
1711	}
1712}
1713
1714func (x *TrafficRule) String() string {
1715	return protoimpl.X.MessageStringOf(x)
1716}
1717
1718func (*TrafficRule) ProtoMessage() {}
1719
1720func (x *TrafficRule) ProtoReflect() protoreflect.Message {
1721	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[18]
1722	if protoimpl.UnsafeEnabled && x != nil {
1723		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1724		if ms.LoadMessageInfo() == nil {
1725			ms.StoreMessageInfo(mi)
1726		}
1727		return ms
1728	}
1729	return mi.MessageOf(x)
1730}
1731
1732// Deprecated: Use TrafficRule.ProtoReflect.Descriptor instead.
1733func (*TrafficRule) Descriptor() ([]byte, []int) {
1734	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{18}
1735}
1736
1737func (x *TrafficRule) GetDelay() *durationpb.Duration {
1738	if x != nil {
1739		return x.Delay
1740	}
1741	return nil
1742}
1743
1744func (x *TrafficRule) GetPacketLossRatio() float32 {
1745	if x != nil {
1746		return x.PacketLossRatio
1747	}
1748	return 0
1749}
1750
1751func (x *TrafficRule) GetPacketDuplicationRatio() float32 {
1752	if x != nil {
1753		return x.PacketDuplicationRatio
1754	}
1755	return 0
1756}
1757
1758func (x *TrafficRule) GetBandwidth() float32 {
1759	if x != nil {
1760		return x.Bandwidth
1761	}
1762	return 0
1763}
1764
1765func (x *TrafficRule) GetBurst() float32 {
1766	if x != nil {
1767		return x.Burst
1768	}
1769	return 0
1770}
1771
1772// The currently provided software environment on the devices under test.
1773type ProvidedSoftwareCatalog struct {
1774	state         protoimpl.MessageState
1775	sizeCache     protoimpl.SizeCache
1776	unknownFields protoimpl.UnknownFields
1777
1778	// A string representing the current version of Android Test Orchestrator
1779	// that is used in the environment. The package is available at
1780	// https://maven.google.com/web/index.html#com.android.support.test:orchestrator.
1781	OrchestratorVersion string `protobuf:"bytes,1,opt,name=orchestrator_version,json=orchestratorVersion,proto3" json:"orchestrator_version,omitempty"`
1782	// A string representing the current version of AndroidX Test Orchestrator
1783	// that is used in the environment. The package is available at
1784	// https://maven.google.com/web/index.html#androidx.test:orchestrator.
1785	AndroidxOrchestratorVersion string `protobuf:"bytes,2,opt,name=androidx_orchestrator_version,json=androidxOrchestratorVersion,proto3" json:"androidx_orchestrator_version,omitempty"`
1786}
1787
1788func (x *ProvidedSoftwareCatalog) Reset() {
1789	*x = ProvidedSoftwareCatalog{}
1790	if protoimpl.UnsafeEnabled {
1791		mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[19]
1792		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1793		ms.StoreMessageInfo(mi)
1794	}
1795}
1796
1797func (x *ProvidedSoftwareCatalog) String() string {
1798	return protoimpl.X.MessageStringOf(x)
1799}
1800
1801func (*ProvidedSoftwareCatalog) ProtoMessage() {}
1802
1803func (x *ProvidedSoftwareCatalog) ProtoReflect() protoreflect.Message {
1804	mi := &file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[19]
1805	if protoimpl.UnsafeEnabled && x != nil {
1806		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1807		if ms.LoadMessageInfo() == nil {
1808			ms.StoreMessageInfo(mi)
1809		}
1810		return ms
1811	}
1812	return mi.MessageOf(x)
1813}
1814
1815// Deprecated: Use ProvidedSoftwareCatalog.ProtoReflect.Descriptor instead.
1816func (*ProvidedSoftwareCatalog) Descriptor() ([]byte, []int) {
1817	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP(), []int{19}
1818}
1819
1820func (x *ProvidedSoftwareCatalog) GetOrchestratorVersion() string {
1821	if x != nil {
1822		return x.OrchestratorVersion
1823	}
1824	return ""
1825}
1826
1827func (x *ProvidedSoftwareCatalog) GetAndroidxOrchestratorVersion() string {
1828	if x != nil {
1829		return x.AndroidxOrchestratorVersion
1830	}
1831	return ""
1832}
1833
1834var File_google_devtools_testing_v1_test_environment_discovery_proto protoreflect.FileDescriptor
1835
1836var file_google_devtools_testing_v1_test_environment_discovery_proto_rawDesc = []byte{
1837	0x0a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
1838	0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73,
1839	0x74, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69,
1840	0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67,
1841	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
1842	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1843	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1844	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
1845	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
1846	0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
1847	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1848	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
1849	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1850	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
1851	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1852	0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
1853	0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c,
1854	0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x01, 0x0a, 0x0d, 0x44,
1855	0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05,
1856	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6c, 0x6f,
1857	0x63, 0x6b, 0x12, 0x3a, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
1858	0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
1859	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
1860	0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x30,
1861	0x0a, 0x0a, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
1862	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65,
1863	0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x64, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65,
1864	0x22, 0xce, 0x02, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69,
1865	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65,
1866	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x77, 0x0a, 0x10, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
1867	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
1868	0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
1869	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
1870	0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43,
1871	0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e,
1872	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x65,
1873	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d,
1874	0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
1875	0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x91, 0x01,
1876	0x0a, 0x0f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
1877	0x65, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54,
1878	0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
1879	0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x10, 0x01,
1880	0x12, 0x07, 0x0a, 0x03, 0x49, 0x4f, 0x53, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x45, 0x54,
1881	0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49,
1882	0x4f, 0x4e, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44,
1883	0x5f, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x44,
1884	0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x49, 0x50, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x53, 0x10,
1885	0x06, 0x22, 0xc3, 0x04, 0x0a, 0x16, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f,
1886	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x68, 0x0a, 0x16,
1887	0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63,
1888	0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67,
1889	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
1890	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69,
1891	0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00,
1892	0x52, 0x14, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43,
1893	0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x5c, 0x0a, 0x12, 0x69, 0x6f, 0x73, 0x5f, 0x64, 0x65,
1894	0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01,
1895	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
1896	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
1897	0x49, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
1898	0x48, 0x00, 0x52, 0x10, 0x69, 0x6f, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x74,
1899	0x61, 0x6c, 0x6f, 0x67, 0x12, 0x7d, 0x0a, 0x1d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f,
1900	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61,
1901	0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f,
1902	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65,
1903	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
1904	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74,
1905	0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x1b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43,
1906	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x61,
1907	0x6c, 0x6f, 0x67, 0x12, 0x60, 0x0a, 0x10, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f,
1908	0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e,
1909	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
1910	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69,
1911	0x64, 0x65, 0x64, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c,
1912	0x6f, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x61,
1913	0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x69, 0x0a, 0x17, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
1914	0x69, 0x70, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
1915	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1916	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
1917	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x42, 0x6c, 0x6f, 0x63,
1918	0x6b, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65, 0x76, 0x69,
1919	0x63, 0x65, 0x49, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
1920	0x42, 0x15, 0x0a, 0x13, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
1921	0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x5e, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63,
1922	0x65, 0x49, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12,
1923	0x46, 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03,
1924	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
1925	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e,
1926	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x69,
1927	0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x14, 0x41, 0x6e, 0x64, 0x72,
1928	0x6f, 0x69, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
1929	0x12, 0x40, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
1930	0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
1931	0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e,
1932	0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x65,
1933	0x6c, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
1934	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
1935	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
1936	0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
1937	0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6c, 0x0a, 0x15, 0x72, 0x75,
1938	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
1939	0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1940	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
1941	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x52, 0x75,
1942	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
1943	0x6f, 0x6e, 0x52, 0x14, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
1944	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x1b, 0x41, 0x6e, 0x64,
1945	0x72, 0x6f, 0x69, 0x64, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
1946	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61,
1947	0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1948	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
1949	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x07, 0x6c,
1950	0x6f, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74,
1951	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67,
1952	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
1953	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74,
1954	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
1955	0x6f, 0x6e, 0x73, 0x22, 0xbb, 0x04, 0x0a, 0x0c, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4d,
1956	0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
1957	0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
1958	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x75,
1959	0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
1960	0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05,
1961	0x62, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x72, 0x61,
1962	0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a,
1963	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a,
1964	0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67,
1965	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
1966	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
1967	0x46, 0x6f, 0x72, 0x6d, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x4d, 0x0a, 0x0b, 0x66, 0x6f,
1968	0x72, 0x6d, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32,
1969	0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
1970	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76,
1971	0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x66,
1972	0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x63, 0x72,
1973	0x65, 0x65, 0x6e, 0x5f, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x63, 0x72,
1974	0x65, 0x65, 0x6e, 0x58, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x79,
1975	0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x59, 0x12,
1976	0x25, 0x0a, 0x0e, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74,
1977	0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44,
1978	0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x77, 0x5f, 0x66, 0x70,
1979	0x73, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e,
1980	0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6c, 0x6f, 0x77, 0x46, 0x70, 0x73, 0x56,
1981	0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a,
1982	0x15, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
1983	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x73, 0x75,
1984	0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64,
1985	0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61,
1986	0x62, 0x69, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f,
1987	0x72, 0x74, 0x65, 0x64, 0x41, 0x62, 0x69, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
1988	0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0d,
1989	0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x13, 0x20,
1990	0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72,
1991	0x6c, 0x22, 0x99, 0x02, 0x0a, 0x0e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x56, 0x65, 0x72,
1992	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
1993	0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
1994	0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65,
1995	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x61,
1996	0x70, 0x69, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
1997	0x61, 0x70, 0x69, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65,
1998	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64,
1999	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65,
2000	0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f,
2001	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0b,
2002	0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x64,
2003	0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
2004	0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
2005	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44,
2006	0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x69, 0x73,
2007	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67,
2008	0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x78, 0x0a,
2009	0x0c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a,
2010	0x10, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d,
2011	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2012	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
2013	0x61, 0x6d, 0x70, 0x52, 0x0f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
2014	0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73,
2015	0x68, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6d, 0x61, 0x72, 0x6b,
2016	0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x22, 0xcf, 0x02, 0x0a, 0x10, 0x49, 0x6f, 0x73, 0x44,
2017	0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3c, 0x0a, 0x06,
2018	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67,
2019	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
2020	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x4d, 0x6f, 0x64,
2021	0x65, 0x6c, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x08, 0x76, 0x65,
2022	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67,
2023	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
2024	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x56, 0x65, 0x72,
2025	0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f,
2026	0x0a, 0x0e, 0x78, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73,
2027	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2028	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
2029	0x2e, 0x76, 0x31, 0x2e, 0x58, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
2030	0x52, 0x0d, 0x78, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
2031	0x68, 0x0a, 0x15, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
2032	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33,
2033	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
2034	0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6f, 0x73, 0x52,
2035	0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
2036	0x69, 0x6f, 0x6e, 0x52, 0x14, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66,
2037	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x01, 0x0a, 0x17, 0x49, 0x6f,
2038	0x73, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
2039	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x73,
2040	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2041	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67,
2042	0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61,
2043	0x6c, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
2044	0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2045	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
2046	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
2047	0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
2048	0x22, 0xd3, 0x02, 0x0a, 0x08, 0x49, 0x6f, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0e, 0x0a,
2049	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
2050	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
2051	0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x76,
2052	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
2053	0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69,
2054	0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20,
2055	0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x76,
2056	0x69, 0x63, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
2057	0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61,
2058	0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x63,
2059	0x72, 0x65, 0x65, 0x6e, 0x5f, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x63,
2060	0x72, 0x65, 0x65, 0x6e, 0x58, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f,
2061	0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x59,
2062	0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x73, 0x69,
2063	0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
2064	0x44, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6d, 0x5f,
2065	0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67,
2066	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
2067	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
2068	0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x6d,
2069	0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xb9, 0x01, 0x0a, 0x0a, 0x49, 0x6f, 0x73, 0x56, 0x65,
2070	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
2071	0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x5f, 0x76,
2072	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61,
2073	0x6a, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69,
2074	0x6e, 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
2075	0x05, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
2076	0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74,
2077	0x61, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
2078	0x5f, 0x78, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
2079	0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
2080	0x74, 0x65, 0x64, 0x58, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49,
2081	0x64, 0x73, 0x22, 0x58, 0x0a, 0x06, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02,
2082	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04,
2083	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
2084	0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
2085	0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
2086	0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x45, 0x0a, 0x0b,
2087	0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69,
2088	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
2089	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
2090	0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74,
2091	0x61, 0x67, 0x73, 0x22, 0x3c, 0x0a, 0x0c, 0x58, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73,
2092	0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01,
2093	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
2094	0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67,
2095	0x73, 0x22, 0x77, 0x0a, 0x1b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66,
2096	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
2097	0x12, 0x58, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
2098	0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2099	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
2100	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e,
2101	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66,
2102	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x14, 0x4e,
2103	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
2104	0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
2105	0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x75, 0x70, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02,
2106	0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
2107	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76,
2108	0x31, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x75,
2109	0x70, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x75,
2110	0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2111	0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69,
2112	0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x75, 0x6c,
2113	0x65, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0b,
2114	0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x05, 0x64,
2115	0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
2116	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
2117	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x11,
2118	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x72, 0x61, 0x74, 0x69,
2119	0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4c,
2120	0x6f, 0x73, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x61, 0x63, 0x6b,
2121	0x65, 0x74, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72,
2122	0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x70, 0x61, 0x63, 0x6b,
2123	0x65, 0x74, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74,
2124	0x69, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18,
2125	0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68,
2126	0x12, 0x14, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52,
2127	0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x76, 0x69,
2128	0x64, 0x65, 0x64, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c,
2129	0x6f, 0x67, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74,
2130	0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
2131	0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x65,
2132	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x1d, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64,
2133	0x78, 0x5f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76,
2134	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x6e,
2135	0x64, 0x72, 0x6f, 0x69, 0x64, 0x78, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74,
2136	0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x52, 0x0a, 0x0a, 0x44, 0x65, 0x76,
2137	0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x56, 0x49, 0x43,
2138	0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
2139	0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x10,
2140	0x01, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x02, 0x12,
2141	0x0c, 0x0a, 0x08, 0x45, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x5b, 0x0a,
2142	0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f,
2143	0x72, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d,
2144	0x5f, 0x46, 0x41, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
2145	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x10, 0x01,
2146	0x12, 0x0a, 0x0a, 0x06, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x54, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08,
2147	0x57, 0x45, 0x41, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x32, 0xee, 0x02, 0x0a, 0x1f, 0x54,
2148	0x65, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69,
2149	0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc4,
2150	0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f,
2151	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3c, 0x2e, 0x67,
2152	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74,
2153	0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73,
2154	0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61,
2155	0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f,
2156	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73,
2157	0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69,
2158	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x35,
2159	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74,
2160	0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c,
2161	0x6f, 0x67, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
2162	0x74, 0x79, 0x70, 0x65, 0x7d, 0x1a, 0x83, 0x01, 0xca, 0x41, 0x16, 0x74, 0x65, 0x73, 0x74, 0x69,
2163	0x6e, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
2164	0x6d, 0xd2, 0x41, 0x67, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
2165	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61,
2166	0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
2167	0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67,
2168	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75,
2169	0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
2170	0x6d, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x84, 0x01, 0x0a, 0x1e,
2171	0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
2172	0x6f, 0x6c, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x1d,
2173	0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44,
2174	0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
2175	0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f,
2176	0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67,
2177	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f,
2178	0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x73, 0x74, 0x69,
2179	0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
2180}
2181
2182var (
2183	file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescOnce sync.Once
2184	file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescData = file_google_devtools_testing_v1_test_environment_discovery_proto_rawDesc
2185)
2186
2187func file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescGZIP() []byte {
2188	file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescOnce.Do(func() {
2189		file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescData)
2190	})
2191	return file_google_devtools_testing_v1_test_environment_discovery_proto_rawDescData
2192}
2193
2194var file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
2195var file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
2196var file_google_devtools_testing_v1_test_environment_discovery_proto_goTypes = []interface{}{
2197	(DeviceForm)(0),       // 0: google.devtools.testing.v1.DeviceForm
2198	(DeviceFormFactor)(0), // 1: google.devtools.testing.v1.DeviceFormFactor
2199	(GetTestEnvironmentCatalogRequest_EnvironmentType)(0), // 2: google.devtools.testing.v1.GetTestEnvironmentCatalogRequest.EnvironmentType
2200	(*DeviceIpBlock)(nil),                    // 3: google.devtools.testing.v1.DeviceIpBlock
2201	(*GetTestEnvironmentCatalogRequest)(nil), // 4: google.devtools.testing.v1.GetTestEnvironmentCatalogRequest
2202	(*TestEnvironmentCatalog)(nil),           // 5: google.devtools.testing.v1.TestEnvironmentCatalog
2203	(*DeviceIpBlockCatalog)(nil),             // 6: google.devtools.testing.v1.DeviceIpBlockCatalog
2204	(*AndroidDeviceCatalog)(nil),             // 7: google.devtools.testing.v1.AndroidDeviceCatalog
2205	(*AndroidRuntimeConfiguration)(nil),      // 8: google.devtools.testing.v1.AndroidRuntimeConfiguration
2206	(*AndroidModel)(nil),                     // 9: google.devtools.testing.v1.AndroidModel
2207	(*AndroidVersion)(nil),                   // 10: google.devtools.testing.v1.AndroidVersion
2208	(*Distribution)(nil),                     // 11: google.devtools.testing.v1.Distribution
2209	(*IosDeviceCatalog)(nil),                 // 12: google.devtools.testing.v1.IosDeviceCatalog
2210	(*IosRuntimeConfiguration)(nil),          // 13: google.devtools.testing.v1.IosRuntimeConfiguration
2211	(*IosModel)(nil),                         // 14: google.devtools.testing.v1.IosModel
2212	(*IosVersion)(nil),                       // 15: google.devtools.testing.v1.IosVersion
2213	(*Locale)(nil),                           // 16: google.devtools.testing.v1.Locale
2214	(*Orientation)(nil),                      // 17: google.devtools.testing.v1.Orientation
2215	(*XcodeVersion)(nil),                     // 18: google.devtools.testing.v1.XcodeVersion
2216	(*NetworkConfigurationCatalog)(nil),      // 19: google.devtools.testing.v1.NetworkConfigurationCatalog
2217	(*NetworkConfiguration)(nil),             // 20: google.devtools.testing.v1.NetworkConfiguration
2218	(*TrafficRule)(nil),                      // 21: google.devtools.testing.v1.TrafficRule
2219	(*ProvidedSoftwareCatalog)(nil),          // 22: google.devtools.testing.v1.ProvidedSoftwareCatalog
2220	(*date.Date)(nil),                        // 23: google.type.Date
2221	(*timestamppb.Timestamp)(nil),            // 24: google.protobuf.Timestamp
2222	(*durationpb.Duration)(nil),              // 25: google.protobuf.Duration
2223}
2224var file_google_devtools_testing_v1_test_environment_discovery_proto_depIdxs = []int32{
2225	0,  // 0: google.devtools.testing.v1.DeviceIpBlock.form:type_name -> google.devtools.testing.v1.DeviceForm
2226	23, // 1: google.devtools.testing.v1.DeviceIpBlock.added_date:type_name -> google.type.Date
2227	2,  // 2: google.devtools.testing.v1.GetTestEnvironmentCatalogRequest.environment_type:type_name -> google.devtools.testing.v1.GetTestEnvironmentCatalogRequest.EnvironmentType
2228	7,  // 3: google.devtools.testing.v1.TestEnvironmentCatalog.android_device_catalog:type_name -> google.devtools.testing.v1.AndroidDeviceCatalog
2229	12, // 4: google.devtools.testing.v1.TestEnvironmentCatalog.ios_device_catalog:type_name -> google.devtools.testing.v1.IosDeviceCatalog
2230	19, // 5: google.devtools.testing.v1.TestEnvironmentCatalog.network_configuration_catalog:type_name -> google.devtools.testing.v1.NetworkConfigurationCatalog
2231	22, // 6: google.devtools.testing.v1.TestEnvironmentCatalog.software_catalog:type_name -> google.devtools.testing.v1.ProvidedSoftwareCatalog
2232	6,  // 7: google.devtools.testing.v1.TestEnvironmentCatalog.device_ip_block_catalog:type_name -> google.devtools.testing.v1.DeviceIpBlockCatalog
2233	3,  // 8: google.devtools.testing.v1.DeviceIpBlockCatalog.ip_blocks:type_name -> google.devtools.testing.v1.DeviceIpBlock
2234	9,  // 9: google.devtools.testing.v1.AndroidDeviceCatalog.models:type_name -> google.devtools.testing.v1.AndroidModel
2235	10, // 10: google.devtools.testing.v1.AndroidDeviceCatalog.versions:type_name -> google.devtools.testing.v1.AndroidVersion
2236	8,  // 11: google.devtools.testing.v1.AndroidDeviceCatalog.runtime_configuration:type_name -> google.devtools.testing.v1.AndroidRuntimeConfiguration
2237	16, // 12: google.devtools.testing.v1.AndroidRuntimeConfiguration.locales:type_name -> google.devtools.testing.v1.Locale
2238	17, // 13: google.devtools.testing.v1.AndroidRuntimeConfiguration.orientations:type_name -> google.devtools.testing.v1.Orientation
2239	0,  // 14: google.devtools.testing.v1.AndroidModel.form:type_name -> google.devtools.testing.v1.DeviceForm
2240	1,  // 15: google.devtools.testing.v1.AndroidModel.form_factor:type_name -> google.devtools.testing.v1.DeviceFormFactor
2241	23, // 16: google.devtools.testing.v1.AndroidVersion.release_date:type_name -> google.type.Date
2242	11, // 17: google.devtools.testing.v1.AndroidVersion.distribution:type_name -> google.devtools.testing.v1.Distribution
2243	24, // 18: google.devtools.testing.v1.Distribution.measurement_time:type_name -> google.protobuf.Timestamp
2244	14, // 19: google.devtools.testing.v1.IosDeviceCatalog.models:type_name -> google.devtools.testing.v1.IosModel
2245	15, // 20: google.devtools.testing.v1.IosDeviceCatalog.versions:type_name -> google.devtools.testing.v1.IosVersion
2246	18, // 21: google.devtools.testing.v1.IosDeviceCatalog.xcode_versions:type_name -> google.devtools.testing.v1.XcodeVersion
2247	13, // 22: google.devtools.testing.v1.IosDeviceCatalog.runtime_configuration:type_name -> google.devtools.testing.v1.IosRuntimeConfiguration
2248	16, // 23: google.devtools.testing.v1.IosRuntimeConfiguration.locales:type_name -> google.devtools.testing.v1.Locale
2249	17, // 24: google.devtools.testing.v1.IosRuntimeConfiguration.orientations:type_name -> google.devtools.testing.v1.Orientation
2250	1,  // 25: google.devtools.testing.v1.IosModel.form_factor:type_name -> google.devtools.testing.v1.DeviceFormFactor
2251	20, // 26: google.devtools.testing.v1.NetworkConfigurationCatalog.configurations:type_name -> google.devtools.testing.v1.NetworkConfiguration
2252	21, // 27: google.devtools.testing.v1.NetworkConfiguration.up_rule:type_name -> google.devtools.testing.v1.TrafficRule
2253	21, // 28: google.devtools.testing.v1.NetworkConfiguration.down_rule:type_name -> google.devtools.testing.v1.TrafficRule
2254	25, // 29: google.devtools.testing.v1.TrafficRule.delay:type_name -> google.protobuf.Duration
2255	4,  // 30: google.devtools.testing.v1.TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog:input_type -> google.devtools.testing.v1.GetTestEnvironmentCatalogRequest
2256	5,  // 31: google.devtools.testing.v1.TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog:output_type -> google.devtools.testing.v1.TestEnvironmentCatalog
2257	31, // [31:32] is the sub-list for method output_type
2258	30, // [30:31] is the sub-list for method input_type
2259	30, // [30:30] is the sub-list for extension type_name
2260	30, // [30:30] is the sub-list for extension extendee
2261	0,  // [0:30] is the sub-list for field type_name
2262}
2263
2264func init() { file_google_devtools_testing_v1_test_environment_discovery_proto_init() }
2265func file_google_devtools_testing_v1_test_environment_discovery_proto_init() {
2266	if File_google_devtools_testing_v1_test_environment_discovery_proto != nil {
2267		return
2268	}
2269	file_google_devtools_testing_v1_test_execution_proto_init()
2270	if !protoimpl.UnsafeEnabled {
2271		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
2272			switch v := v.(*DeviceIpBlock); i {
2273			case 0:
2274				return &v.state
2275			case 1:
2276				return &v.sizeCache
2277			case 2:
2278				return &v.unknownFields
2279			default:
2280				return nil
2281			}
2282		}
2283		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
2284			switch v := v.(*GetTestEnvironmentCatalogRequest); i {
2285			case 0:
2286				return &v.state
2287			case 1:
2288				return &v.sizeCache
2289			case 2:
2290				return &v.unknownFields
2291			default:
2292				return nil
2293			}
2294		}
2295		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
2296			switch v := v.(*TestEnvironmentCatalog); i {
2297			case 0:
2298				return &v.state
2299			case 1:
2300				return &v.sizeCache
2301			case 2:
2302				return &v.unknownFields
2303			default:
2304				return nil
2305			}
2306		}
2307		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
2308			switch v := v.(*DeviceIpBlockCatalog); i {
2309			case 0:
2310				return &v.state
2311			case 1:
2312				return &v.sizeCache
2313			case 2:
2314				return &v.unknownFields
2315			default:
2316				return nil
2317			}
2318		}
2319		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
2320			switch v := v.(*AndroidDeviceCatalog); i {
2321			case 0:
2322				return &v.state
2323			case 1:
2324				return &v.sizeCache
2325			case 2:
2326				return &v.unknownFields
2327			default:
2328				return nil
2329			}
2330		}
2331		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
2332			switch v := v.(*AndroidRuntimeConfiguration); i {
2333			case 0:
2334				return &v.state
2335			case 1:
2336				return &v.sizeCache
2337			case 2:
2338				return &v.unknownFields
2339			default:
2340				return nil
2341			}
2342		}
2343		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
2344			switch v := v.(*AndroidModel); i {
2345			case 0:
2346				return &v.state
2347			case 1:
2348				return &v.sizeCache
2349			case 2:
2350				return &v.unknownFields
2351			default:
2352				return nil
2353			}
2354		}
2355		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
2356			switch v := v.(*AndroidVersion); i {
2357			case 0:
2358				return &v.state
2359			case 1:
2360				return &v.sizeCache
2361			case 2:
2362				return &v.unknownFields
2363			default:
2364				return nil
2365			}
2366		}
2367		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
2368			switch v := v.(*Distribution); i {
2369			case 0:
2370				return &v.state
2371			case 1:
2372				return &v.sizeCache
2373			case 2:
2374				return &v.unknownFields
2375			default:
2376				return nil
2377			}
2378		}
2379		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
2380			switch v := v.(*IosDeviceCatalog); i {
2381			case 0:
2382				return &v.state
2383			case 1:
2384				return &v.sizeCache
2385			case 2:
2386				return &v.unknownFields
2387			default:
2388				return nil
2389			}
2390		}
2391		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
2392			switch v := v.(*IosRuntimeConfiguration); i {
2393			case 0:
2394				return &v.state
2395			case 1:
2396				return &v.sizeCache
2397			case 2:
2398				return &v.unknownFields
2399			default:
2400				return nil
2401			}
2402		}
2403		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
2404			switch v := v.(*IosModel); i {
2405			case 0:
2406				return &v.state
2407			case 1:
2408				return &v.sizeCache
2409			case 2:
2410				return &v.unknownFields
2411			default:
2412				return nil
2413			}
2414		}
2415		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
2416			switch v := v.(*IosVersion); i {
2417			case 0:
2418				return &v.state
2419			case 1:
2420				return &v.sizeCache
2421			case 2:
2422				return &v.unknownFields
2423			default:
2424				return nil
2425			}
2426		}
2427		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
2428			switch v := v.(*Locale); i {
2429			case 0:
2430				return &v.state
2431			case 1:
2432				return &v.sizeCache
2433			case 2:
2434				return &v.unknownFields
2435			default:
2436				return nil
2437			}
2438		}
2439		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
2440			switch v := v.(*Orientation); i {
2441			case 0:
2442				return &v.state
2443			case 1:
2444				return &v.sizeCache
2445			case 2:
2446				return &v.unknownFields
2447			default:
2448				return nil
2449			}
2450		}
2451		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
2452			switch v := v.(*XcodeVersion); i {
2453			case 0:
2454				return &v.state
2455			case 1:
2456				return &v.sizeCache
2457			case 2:
2458				return &v.unknownFields
2459			default:
2460				return nil
2461			}
2462		}
2463		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
2464			switch v := v.(*NetworkConfigurationCatalog); i {
2465			case 0:
2466				return &v.state
2467			case 1:
2468				return &v.sizeCache
2469			case 2:
2470				return &v.unknownFields
2471			default:
2472				return nil
2473			}
2474		}
2475		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
2476			switch v := v.(*NetworkConfiguration); i {
2477			case 0:
2478				return &v.state
2479			case 1:
2480				return &v.sizeCache
2481			case 2:
2482				return &v.unknownFields
2483			default:
2484				return nil
2485			}
2486		}
2487		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
2488			switch v := v.(*TrafficRule); i {
2489			case 0:
2490				return &v.state
2491			case 1:
2492				return &v.sizeCache
2493			case 2:
2494				return &v.unknownFields
2495			default:
2496				return nil
2497			}
2498		}
2499		file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
2500			switch v := v.(*ProvidedSoftwareCatalog); i {
2501			case 0:
2502				return &v.state
2503			case 1:
2504				return &v.sizeCache
2505			case 2:
2506				return &v.unknownFields
2507			default:
2508				return nil
2509			}
2510		}
2511	}
2512	file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes[2].OneofWrappers = []interface{}{
2513		(*TestEnvironmentCatalog_AndroidDeviceCatalog)(nil),
2514		(*TestEnvironmentCatalog_IosDeviceCatalog)(nil),
2515		(*TestEnvironmentCatalog_NetworkConfigurationCatalog)(nil),
2516		(*TestEnvironmentCatalog_SoftwareCatalog)(nil),
2517		(*TestEnvironmentCatalog_DeviceIpBlockCatalog)(nil),
2518	}
2519	type x struct{}
2520	out := protoimpl.TypeBuilder{
2521		File: protoimpl.DescBuilder{
2522			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2523			RawDescriptor: file_google_devtools_testing_v1_test_environment_discovery_proto_rawDesc,
2524			NumEnums:      3,
2525			NumMessages:   20,
2526			NumExtensions: 0,
2527			NumServices:   1,
2528		},
2529		GoTypes:           file_google_devtools_testing_v1_test_environment_discovery_proto_goTypes,
2530		DependencyIndexes: file_google_devtools_testing_v1_test_environment_discovery_proto_depIdxs,
2531		EnumInfos:         file_google_devtools_testing_v1_test_environment_discovery_proto_enumTypes,
2532		MessageInfos:      file_google_devtools_testing_v1_test_environment_discovery_proto_msgTypes,
2533	}.Build()
2534	File_google_devtools_testing_v1_test_environment_discovery_proto = out.File
2535	file_google_devtools_testing_v1_test_environment_discovery_proto_rawDesc = nil
2536	file_google_devtools_testing_v1_test_environment_discovery_proto_goTypes = nil
2537	file_google_devtools_testing_v1_test_environment_discovery_proto_depIdxs = nil
2538}
2539
2540// Reference imports to suppress errors if they are not otherwise used.
2541var _ context.Context
2542var _ grpc.ClientConnInterface
2543
2544// This is a compile-time assertion to ensure that this generated file
2545// is compatible with the grpc package it is being compiled against.
2546const _ = grpc.SupportPackageIsVersion6
2547
2548// TestEnvironmentDiscoveryServiceClient is the client API for TestEnvironmentDiscoveryService service.
2549//
2550// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
2551type TestEnvironmentDiscoveryServiceClient interface {
2552	// Gets the catalog of supported test environments.
2553	//
2554	// May return any of the following canonical error codes:
2555	//
2556	// - INVALID_ARGUMENT - if the request is malformed
2557	// - NOT_FOUND - if the environment type does not exist
2558	// - INTERNAL - if an internal error occurred
2559	GetTestEnvironmentCatalog(ctx context.Context, in *GetTestEnvironmentCatalogRequest, opts ...grpc.CallOption) (*TestEnvironmentCatalog, error)
2560}
2561
2562type testEnvironmentDiscoveryServiceClient struct {
2563	cc grpc.ClientConnInterface
2564}
2565
2566func NewTestEnvironmentDiscoveryServiceClient(cc grpc.ClientConnInterface) TestEnvironmentDiscoveryServiceClient {
2567	return &testEnvironmentDiscoveryServiceClient{cc}
2568}
2569
2570func (c *testEnvironmentDiscoveryServiceClient) GetTestEnvironmentCatalog(ctx context.Context, in *GetTestEnvironmentCatalogRequest, opts ...grpc.CallOption) (*TestEnvironmentCatalog, error) {
2571	out := new(TestEnvironmentCatalog)
2572	err := c.cc.Invoke(ctx, "/google.devtools.testing.v1.TestEnvironmentDiscoveryService/GetTestEnvironmentCatalog", in, out, opts...)
2573	if err != nil {
2574		return nil, err
2575	}
2576	return out, nil
2577}
2578
2579// TestEnvironmentDiscoveryServiceServer is the server API for TestEnvironmentDiscoveryService service.
2580type TestEnvironmentDiscoveryServiceServer interface {
2581	// Gets the catalog of supported test environments.
2582	//
2583	// May return any of the following canonical error codes:
2584	//
2585	// - INVALID_ARGUMENT - if the request is malformed
2586	// - NOT_FOUND - if the environment type does not exist
2587	// - INTERNAL - if an internal error occurred
2588	GetTestEnvironmentCatalog(context.Context, *GetTestEnvironmentCatalogRequest) (*TestEnvironmentCatalog, error)
2589}
2590
2591// UnimplementedTestEnvironmentDiscoveryServiceServer can be embedded to have forward compatible implementations.
2592type UnimplementedTestEnvironmentDiscoveryServiceServer struct {
2593}
2594
2595func (*UnimplementedTestEnvironmentDiscoveryServiceServer) GetTestEnvironmentCatalog(context.Context, *GetTestEnvironmentCatalogRequest) (*TestEnvironmentCatalog, error) {
2596	return nil, status.Errorf(codes.Unimplemented, "method GetTestEnvironmentCatalog not implemented")
2597}
2598
2599func RegisterTestEnvironmentDiscoveryServiceServer(s *grpc.Server, srv TestEnvironmentDiscoveryServiceServer) {
2600	s.RegisterService(&_TestEnvironmentDiscoveryService_serviceDesc, srv)
2601}
2602
2603func _TestEnvironmentDiscoveryService_GetTestEnvironmentCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2604	in := new(GetTestEnvironmentCatalogRequest)
2605	if err := dec(in); err != nil {
2606		return nil, err
2607	}
2608	if interceptor == nil {
2609		return srv.(TestEnvironmentDiscoveryServiceServer).GetTestEnvironmentCatalog(ctx, in)
2610	}
2611	info := &grpc.UnaryServerInfo{
2612		Server:     srv,
2613		FullMethod: "/google.devtools.testing.v1.TestEnvironmentDiscoveryService/GetTestEnvironmentCatalog",
2614	}
2615	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2616		return srv.(TestEnvironmentDiscoveryServiceServer).GetTestEnvironmentCatalog(ctx, req.(*GetTestEnvironmentCatalogRequest))
2617	}
2618	return interceptor(ctx, in, info, handler)
2619}
2620
2621var _TestEnvironmentDiscoveryService_serviceDesc = grpc.ServiceDesc{
2622	ServiceName: "google.devtools.testing.v1.TestEnvironmentDiscoveryService",
2623	HandlerType: (*TestEnvironmentDiscoveryServiceServer)(nil),
2624	Methods: []grpc.MethodDesc{
2625		{
2626			MethodName: "GetTestEnvironmentCatalog",
2627			Handler:    _TestEnvironmentDiscoveryService_GetTestEnvironmentCatalog_Handler,
2628		},
2629	},
2630	Streams:  []grpc.StreamDesc{},
2631	Metadata: "google/devtools/testing/v1/test_environment_discovery.proto",
2632}
2633