• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2021 The ChromiumOS Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Code generated by protoc-gen-go. DO NOT EDIT.
6// versions:
7// 	protoc-gen-go v1.27.1
8// 	protoc        v3.17.1
9// source: chromiumos/test/lab/api/dut.proto
10
11package api
12
13import (
14	api "go.chromium.org/chromiumos/config/go/api"
15	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
16	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
17	reflect "reflect"
18	sync "sync"
19)
20
21const (
22	// Verify that this generated code is sufficiently up-to-date.
23	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
24	// Verify that runtime/protoimpl is sufficiently up-to-date.
25	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
26)
27
28// Next Tag: 12
29type ModemType int32
30
31const (
32	ModemType_MODEM_TYPE_UNSPECIFIED     ModemType = 0
33	ModemType_MODEM_TYPE_UNSUPPORTED     ModemType = 8
34	ModemType_MODEM_TYPE_QUALCOMM_SC7180 ModemType = 1
35	ModemType_MODEM_TYPE_FIBOCOMM_L850GL ModemType = 2
36	ModemType_MODEM_TYPE_NL668           ModemType = 3
37	ModemType_MODEM_TYPE_FM350           ModemType = 4
38	ModemType_MODEM_TYPE_FM101           ModemType = 5
39	ModemType_MODEM_TYPE_QUALCOMM_SC7280 ModemType = 6
40	ModemType_MODEM_TYPE_EM060           ModemType = 7
41	ModemType_MODEM_TYPE_RW101           ModemType = 9
42	ModemType_MODEM_TYPE_RW135           ModemType = 10
43	ModemType_MODEM_TYPE_LCUK54          ModemType = 11
44)
45
46// Enum value maps for ModemType.
47var (
48	ModemType_name = map[int32]string{
49		0:  "MODEM_TYPE_UNSPECIFIED",
50		8:  "MODEM_TYPE_UNSUPPORTED",
51		1:  "MODEM_TYPE_QUALCOMM_SC7180",
52		2:  "MODEM_TYPE_FIBOCOMM_L850GL",
53		3:  "MODEM_TYPE_NL668",
54		4:  "MODEM_TYPE_FM350",
55		5:  "MODEM_TYPE_FM101",
56		6:  "MODEM_TYPE_QUALCOMM_SC7280",
57		7:  "MODEM_TYPE_EM060",
58		9:  "MODEM_TYPE_RW101",
59		10: "MODEM_TYPE_RW135",
60		11: "MODEM_TYPE_LCUK54",
61	}
62	ModemType_value = map[string]int32{
63		"MODEM_TYPE_UNSPECIFIED":     0,
64		"MODEM_TYPE_UNSUPPORTED":     8,
65		"MODEM_TYPE_QUALCOMM_SC7180": 1,
66		"MODEM_TYPE_FIBOCOMM_L850GL": 2,
67		"MODEM_TYPE_NL668":           3,
68		"MODEM_TYPE_FM350":           4,
69		"MODEM_TYPE_FM101":           5,
70		"MODEM_TYPE_QUALCOMM_SC7280": 6,
71		"MODEM_TYPE_EM060":           7,
72		"MODEM_TYPE_RW101":           9,
73		"MODEM_TYPE_RW135":           10,
74		"MODEM_TYPE_LCUK54":          11,
75	}
76)
77
78func (x ModemType) Enum() *ModemType {
79	p := new(ModemType)
80	*p = x
81	return p
82}
83
84func (x ModemType) String() string {
85	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
86}
87
88func (ModemType) Descriptor() protoreflect.EnumDescriptor {
89	return file_chromiumos_test_lab_api_dut_proto_enumTypes[0].Descriptor()
90}
91
92func (ModemType) Type() protoreflect.EnumType {
93	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[0]
94}
95
96func (x ModemType) Number() protoreflect.EnumNumber {
97	return protoreflect.EnumNumber(x)
98}
99
100// Deprecated: Use ModemType.Descriptor instead.
101func (ModemType) EnumDescriptor() ([]byte, []int) {
102	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{0}
103}
104
105type NetworkProvider int32
106
107const (
108	NetworkProvider_NETWORK_OTHER       NetworkProvider = 0
109	NetworkProvider_NETWORK_UNSUPPORTED NetworkProvider = 5
110	NetworkProvider_NETWORK_TEST        NetworkProvider = 1
111	NetworkProvider_NETWORK_ATT         NetworkProvider = 2
112	NetworkProvider_NETWORK_TMOBILE     NetworkProvider = 3
113	NetworkProvider_NETWORK_VERIZON     NetworkProvider = 4
114	NetworkProvider_NETWORK_SPRINT      NetworkProvider = 6
115	NetworkProvider_NETWORK_DOCOMO      NetworkProvider = 7
116	NetworkProvider_NETWORK_SOFTBANK    NetworkProvider = 8
117	NetworkProvider_NETWORK_KDDI        NetworkProvider = 9
118	NetworkProvider_NETWORK_RAKUTEN     NetworkProvider = 10
119	NetworkProvider_NETWORK_VODAFONE    NetworkProvider = 11
120	NetworkProvider_NETWORK_EE          NetworkProvider = 12
121	NetworkProvider_NETWORK_AMARISOFT   NetworkProvider = 13
122	NetworkProvider_NETWORK_ROGER       NetworkProvider = 14
123	NetworkProvider_NETWORK_BELL        NetworkProvider = 15
124	NetworkProvider_NETWORK_TELUS       NetworkProvider = 16
125	NetworkProvider_NETWORK_FI          NetworkProvider = 17
126	NetworkProvider_NETWORK_CBRS        NetworkProvider = 18
127	NetworkProvider_NETWORK_LINEMO      NetworkProvider = 19
128	NetworkProvider_NETWORK_POVO        NetworkProvider = 20
129	NetworkProvider_NETWORK_HANSHIN     NetworkProvider = 21
130)
131
132// Enum value maps for NetworkProvider.
133var (
134	NetworkProvider_name = map[int32]string{
135		0:  "NETWORK_OTHER",
136		5:  "NETWORK_UNSUPPORTED",
137		1:  "NETWORK_TEST",
138		2:  "NETWORK_ATT",
139		3:  "NETWORK_TMOBILE",
140		4:  "NETWORK_VERIZON",
141		6:  "NETWORK_SPRINT",
142		7:  "NETWORK_DOCOMO",
143		8:  "NETWORK_SOFTBANK",
144		9:  "NETWORK_KDDI",
145		10: "NETWORK_RAKUTEN",
146		11: "NETWORK_VODAFONE",
147		12: "NETWORK_EE",
148		13: "NETWORK_AMARISOFT",
149		14: "NETWORK_ROGER",
150		15: "NETWORK_BELL",
151		16: "NETWORK_TELUS",
152		17: "NETWORK_FI",
153		18: "NETWORK_CBRS",
154		19: "NETWORK_LINEMO",
155		20: "NETWORK_POVO",
156		21: "NETWORK_HANSHIN",
157	}
158	NetworkProvider_value = map[string]int32{
159		"NETWORK_OTHER":       0,
160		"NETWORK_UNSUPPORTED": 5,
161		"NETWORK_TEST":        1,
162		"NETWORK_ATT":         2,
163		"NETWORK_TMOBILE":     3,
164		"NETWORK_VERIZON":     4,
165		"NETWORK_SPRINT":      6,
166		"NETWORK_DOCOMO":      7,
167		"NETWORK_SOFTBANK":    8,
168		"NETWORK_KDDI":        9,
169		"NETWORK_RAKUTEN":     10,
170		"NETWORK_VODAFONE":    11,
171		"NETWORK_EE":          12,
172		"NETWORK_AMARISOFT":   13,
173		"NETWORK_ROGER":       14,
174		"NETWORK_BELL":        15,
175		"NETWORK_TELUS":       16,
176		"NETWORK_FI":          17,
177		"NETWORK_CBRS":        18,
178		"NETWORK_LINEMO":      19,
179		"NETWORK_POVO":        20,
180		"NETWORK_HANSHIN":     21,
181	}
182)
183
184func (x NetworkProvider) Enum() *NetworkProvider {
185	p := new(NetworkProvider)
186	*p = x
187	return p
188}
189
190func (x NetworkProvider) String() string {
191	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
192}
193
194func (NetworkProvider) Descriptor() protoreflect.EnumDescriptor {
195	return file_chromiumos_test_lab_api_dut_proto_enumTypes[1].Descriptor()
196}
197
198func (NetworkProvider) Type() protoreflect.EnumType {
199	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[1]
200}
201
202func (x NetworkProvider) Number() protoreflect.EnumNumber {
203	return protoreflect.EnumNumber(x)
204}
205
206// Deprecated: Use NetworkProvider.Descriptor instead.
207func (NetworkProvider) EnumDescriptor() ([]byte, []int) {
208	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{1}
209}
210
211type SIMType int32
212
213const (
214	SIMType_SIM_UNKNOWN  SIMType = 0
215	SIMType_SIM_PHYSICAL SIMType = 1
216	SIMType_SIM_DIGITAL  SIMType = 2
217)
218
219// Enum value maps for SIMType.
220var (
221	SIMType_name = map[int32]string{
222		0: "SIM_UNKNOWN",
223		1: "SIM_PHYSICAL",
224		2: "SIM_DIGITAL",
225	}
226	SIMType_value = map[string]int32{
227		"SIM_UNKNOWN":  0,
228		"SIM_PHYSICAL": 1,
229		"SIM_DIGITAL":  2,
230	}
231)
232
233func (x SIMType) Enum() *SIMType {
234	p := new(SIMType)
235	*p = x
236	return p
237}
238
239func (x SIMType) String() string {
240	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
241}
242
243func (SIMType) Descriptor() protoreflect.EnumDescriptor {
244	return file_chromiumos_test_lab_api_dut_proto_enumTypes[2].Descriptor()
245}
246
247func (SIMType) Type() protoreflect.EnumType {
248	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[2]
249}
250
251func (x SIMType) Number() protoreflect.EnumNumber {
252	return protoreflect.EnumNumber(x)
253}
254
255// Deprecated: Use SIMType.Descriptor instead.
256func (SIMType) EnumDescriptor() ([]byte, []int) {
257	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{2}
258}
259
260// Next Tag: 3
261type RPMType int32
262
263const (
264	RPMType_RPM_TYPE_UNKNOWN RPMType = 0
265	RPMType_RPM_TYPE_SENTRY  RPMType = 1
266	RPMType_RPM_TYPE_IP9850  RPMType = 2
267)
268
269// Enum value maps for RPMType.
270var (
271	RPMType_name = map[int32]string{
272		0: "RPM_TYPE_UNKNOWN",
273		1: "RPM_TYPE_SENTRY",
274		2: "RPM_TYPE_IP9850",
275	}
276	RPMType_value = map[string]int32{
277		"RPM_TYPE_UNKNOWN": 0,
278		"RPM_TYPE_SENTRY":  1,
279		"RPM_TYPE_IP9850":  2,
280	}
281)
282
283func (x RPMType) Enum() *RPMType {
284	p := new(RPMType)
285	*p = x
286	return p
287}
288
289func (x RPMType) String() string {
290	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
291}
292
293func (RPMType) Descriptor() protoreflect.EnumDescriptor {
294	return file_chromiumos_test_lab_api_dut_proto_enumTypes[3].Descriptor()
295}
296
297func (RPMType) Type() protoreflect.EnumType {
298	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[3]
299}
300
301func (x RPMType) Number() protoreflect.EnumNumber {
302	return protoreflect.EnumNumber(x)
303}
304
305// Deprecated: Use RPMType.Descriptor instead.
306func (RPMType) EnumDescriptor() ([]byte, []int) {
307	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{3}
308}
309
310// Next Tag: 3
311type PeripheralState int32
312
313const (
314	PeripheralState_PERIPHERAL_STATE_UNSPECIFIED PeripheralState = 0
315	PeripheralState_WORKING                      PeripheralState = 1
316	PeripheralState_BROKEN                       PeripheralState = 2
317	PeripheralState_NOT_APPLICABLE               PeripheralState = 3
318)
319
320// Enum value maps for PeripheralState.
321var (
322	PeripheralState_name = map[int32]string{
323		0: "PERIPHERAL_STATE_UNSPECIFIED",
324		1: "WORKING",
325		2: "BROKEN",
326		3: "NOT_APPLICABLE",
327	}
328	PeripheralState_value = map[string]int32{
329		"PERIPHERAL_STATE_UNSPECIFIED": 0,
330		"WORKING":                      1,
331		"BROKEN":                       2,
332		"NOT_APPLICABLE":               3,
333	}
334)
335
336func (x PeripheralState) Enum() *PeripheralState {
337	p := new(PeripheralState)
338	*p = x
339	return p
340}
341
342func (x PeripheralState) String() string {
343	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
344}
345
346func (PeripheralState) Descriptor() protoreflect.EnumDescriptor {
347	return file_chromiumos_test_lab_api_dut_proto_enumTypes[4].Descriptor()
348}
349
350func (PeripheralState) Type() protoreflect.EnumType {
351	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[4]
352}
353
354func (x PeripheralState) Number() protoreflect.EnumNumber {
355	return protoreflect.EnumNumber(x)
356}
357
358// Deprecated: Use PeripheralState.Descriptor instead.
359func (PeripheralState) EnumDescriptor() ([]byte, []int) {
360	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{4}
361}
362
363// Next Tag: 34
364type Phase int32
365
366const (
367	Phase_PHASE_UNSPECIFIED Phase = 0
368	Phase_DVT               Phase = 1
369	Phase_DVT_2             Phase = 2
370	Phase_DVT_2_MPS_LTE     Phase = 3
371	Phase_DVT_BIPSHIP       Phase = 4
372	Phase_DVT_BOOKEM        Phase = 5
373	Phase_DVT_ELECTRO       Phase = 6
374	Phase_DVT_LOCKE         Phase = 7
375	Phase_DVT_OSCINO        Phase = 8
376	Phase_DVT_REKS14        Phase = 9
377	Phase_DVT_REKS14_TOUCH  Phase = 10
378	Phase_DVT_TOUCH         Phase = 11
379	Phase_EVT               Phase = 12
380	Phase_EVT_FLEEX_LTE     Phase = 13
381	Phase_EVT_HQ            Phase = 14
382	Phase_EVT_LTE           Phase = 15
383	Phase_EVT_MAPLE         Phase = 16
384	Phase_EVT_PUJJO         Phase = 17
385	Phase_PROTO             Phase = 18
386	Phase_PROTO1            Phase = 19
387	Phase_PVT               Phase = 20
388	Phase_PVT_TERRA3        Phase = 21
389	Phase_PVT_US            Phase = 22
390	Phase_PVT_2             Phase = 23
391	Phase_PVT_BOOKEM        Phase = 24
392	Phase_PVT_ELECTRO       Phase = 25
393	Phase_PVT_GIK360        Phase = 26
394	Phase_PVT_LILI          Phase = 27
395	Phase_PVT_LTE           Phase = 28
396	Phase_PVT_NEW_CPU       Phase = 29
397	Phase_PVT_SAND          Phase = 30
398	Phase_PVT_TUNE_BITS     Phase = 31
399	Phase_PVT_TELESU        Phase = 32
400	Phase_SR                Phase = 33
401)
402
403// Enum value maps for Phase.
404var (
405	Phase_name = map[int32]string{
406		0:  "PHASE_UNSPECIFIED",
407		1:  "DVT",
408		2:  "DVT_2",
409		3:  "DVT_2_MPS_LTE",
410		4:  "DVT_BIPSHIP",
411		5:  "DVT_BOOKEM",
412		6:  "DVT_ELECTRO",
413		7:  "DVT_LOCKE",
414		8:  "DVT_OSCINO",
415		9:  "DVT_REKS14",
416		10: "DVT_REKS14_TOUCH",
417		11: "DVT_TOUCH",
418		12: "EVT",
419		13: "EVT_FLEEX_LTE",
420		14: "EVT_HQ",
421		15: "EVT_LTE",
422		16: "EVT_MAPLE",
423		17: "EVT_PUJJO",
424		18: "PROTO",
425		19: "PROTO1",
426		20: "PVT",
427		21: "PVT_TERRA3",
428		22: "PVT_US",
429		23: "PVT_2",
430		24: "PVT_BOOKEM",
431		25: "PVT_ELECTRO",
432		26: "PVT_GIK360",
433		27: "PVT_LILI",
434		28: "PVT_LTE",
435		29: "PVT_NEW_CPU",
436		30: "PVT_SAND",
437		31: "PVT_TUNE_BITS",
438		32: "PVT_TELESU",
439		33: "SR",
440	}
441	Phase_value = map[string]int32{
442		"PHASE_UNSPECIFIED": 0,
443		"DVT":               1,
444		"DVT_2":             2,
445		"DVT_2_MPS_LTE":     3,
446		"DVT_BIPSHIP":       4,
447		"DVT_BOOKEM":        5,
448		"DVT_ELECTRO":       6,
449		"DVT_LOCKE":         7,
450		"DVT_OSCINO":        8,
451		"DVT_REKS14":        9,
452		"DVT_REKS14_TOUCH":  10,
453		"DVT_TOUCH":         11,
454		"EVT":               12,
455		"EVT_FLEEX_LTE":     13,
456		"EVT_HQ":            14,
457		"EVT_LTE":           15,
458		"EVT_MAPLE":         16,
459		"EVT_PUJJO":         17,
460		"PROTO":             18,
461		"PROTO1":            19,
462		"PVT":               20,
463		"PVT_TERRA3":        21,
464		"PVT_US":            22,
465		"PVT_2":             23,
466		"PVT_BOOKEM":        24,
467		"PVT_ELECTRO":       25,
468		"PVT_GIK360":        26,
469		"PVT_LILI":          27,
470		"PVT_LTE":           28,
471		"PVT_NEW_CPU":       29,
472		"PVT_SAND":          30,
473		"PVT_TUNE_BITS":     31,
474		"PVT_TELESU":        32,
475		"SR":                33,
476	}
477)
478
479func (x Phase) Enum() *Phase {
480	p := new(Phase)
481	*p = x
482	return p
483}
484
485func (x Phase) String() string {
486	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
487}
488
489func (Phase) Descriptor() protoreflect.EnumDescriptor {
490	return file_chromiumos_test_lab_api_dut_proto_enumTypes[5].Descriptor()
491}
492
493func (Phase) Type() protoreflect.EnumType {
494	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[5]
495}
496
497func (x Phase) Number() protoreflect.EnumNumber {
498	return protoreflect.EnumNumber(x)
499}
500
501// Deprecated: Use Phase.Descriptor instead.
502func (Phase) EnumDescriptor() ([]byte, []int) {
503	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{5}
504}
505
506type Cable_Type int32
507
508const (
509	Cable_TYPE_UNSPECIFIED Cable_Type = 0
510	Cable_AUDIOJACK        Cable_Type = 1
511	Cable_USBAUDIO         Cable_Type = 2
512	Cable_USBPRINTING      Cable_Type = 3
513	Cable_HDMIAUDIO        Cable_Type = 4
514)
515
516// Enum value maps for Cable_Type.
517var (
518	Cable_Type_name = map[int32]string{
519		0: "TYPE_UNSPECIFIED",
520		1: "AUDIOJACK",
521		2: "USBAUDIO",
522		3: "USBPRINTING",
523		4: "HDMIAUDIO",
524	}
525	Cable_Type_value = map[string]int32{
526		"TYPE_UNSPECIFIED": 0,
527		"AUDIOJACK":        1,
528		"USBAUDIO":         2,
529		"USBPRINTING":      3,
530		"HDMIAUDIO":        4,
531	}
532)
533
534func (x Cable_Type) Enum() *Cable_Type {
535	p := new(Cable_Type)
536	*p = x
537	return p
538}
539
540func (x Cable_Type) String() string {
541	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
542}
543
544func (Cable_Type) Descriptor() protoreflect.EnumDescriptor {
545	return file_chromiumos_test_lab_api_dut_proto_enumTypes[6].Descriptor()
546}
547
548func (Cable_Type) Type() protoreflect.EnumType {
549	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[6]
550}
551
552func (x Cable_Type) Number() protoreflect.EnumNumber {
553	return protoreflect.EnumNumber(x)
554}
555
556// Deprecated: Use Cable_Type.Descriptor instead.
557func (Cable_Type) EnumDescriptor() ([]byte, []int) {
558	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{4, 0}
559}
560
561// Facing of DUT's camera to be tested whose FOV should cover chart tablet's
562// screen.
563type Camerabox_Facing int32
564
565const (
566	Camerabox_FACING_UNSPECIFIED Camerabox_Facing = 0
567	// DUT's back camera faces the chart tablet.
568	Camerabox_BACK Camerabox_Facing = 1
569	// DUT's front camera faces to chart tablet.
570	Camerabox_FRONT Camerabox_Facing = 2
571)
572
573// Enum value maps for Camerabox_Facing.
574var (
575	Camerabox_Facing_name = map[int32]string{
576		0: "FACING_UNSPECIFIED",
577		1: "BACK",
578		2: "FRONT",
579	}
580	Camerabox_Facing_value = map[string]int32{
581		"FACING_UNSPECIFIED": 0,
582		"BACK":               1,
583		"FRONT":              2,
584	}
585)
586
587func (x Camerabox_Facing) Enum() *Camerabox_Facing {
588	p := new(Camerabox_Facing)
589	*p = x
590	return p
591}
592
593func (x Camerabox_Facing) String() string {
594	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
595}
596
597func (Camerabox_Facing) Descriptor() protoreflect.EnumDescriptor {
598	return file_chromiumos_test_lab_api_dut_proto_enumTypes[7].Descriptor()
599}
600
601func (Camerabox_Facing) Type() protoreflect.EnumType {
602	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[7]
603}
604
605func (x Camerabox_Facing) Number() protoreflect.EnumNumber {
606	return protoreflect.EnumNumber(x)
607}
608
609// Deprecated: Use Camerabox_Facing.Descriptor instead.
610func (Camerabox_Facing) EnumDescriptor() ([]byte, []int) {
611	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{6, 0}
612}
613
614type Cellular_Operator int32
615
616const (
617	Cellular_OPERATOR_UNSPECIFIED Cellular_Operator = 0
618	Cellular_ATT                  Cellular_Operator = 1
619	Cellular_VERIZON              Cellular_Operator = 2
620	Cellular_TMOBILE              Cellular_Operator = 3
621)
622
623// Enum value maps for Cellular_Operator.
624var (
625	Cellular_Operator_name = map[int32]string{
626		0: "OPERATOR_UNSPECIFIED",
627		1: "ATT",
628		2: "VERIZON",
629		3: "TMOBILE",
630	}
631	Cellular_Operator_value = map[string]int32{
632		"OPERATOR_UNSPECIFIED": 0,
633		"ATT":                  1,
634		"VERIZON":              2,
635		"TMOBILE":              3,
636	}
637)
638
639func (x Cellular_Operator) Enum() *Cellular_Operator {
640	p := new(Cellular_Operator)
641	*p = x
642	return p
643}
644
645func (x Cellular_Operator) String() string {
646	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
647}
648
649func (Cellular_Operator) Descriptor() protoreflect.EnumDescriptor {
650	return file_chromiumos_test_lab_api_dut_proto_enumTypes[8].Descriptor()
651}
652
653func (Cellular_Operator) Type() protoreflect.EnumType {
654	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[8]
655}
656
657func (x Cellular_Operator) Number() protoreflect.EnumNumber {
658	return protoreflect.EnumNumber(x)
659}
660
661// Deprecated: Use Cellular_Operator.Descriptor instead.
662func (Cellular_Operator) EnumDescriptor() ([]byte, []int) {
663	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{7, 0}
664}
665
666// Possible states of the SIM profile.
667type SIMProfileInfo_State int32
668
669const (
670	// State not set.
671	SIMProfileInfo_UNSPECIFIED SIMProfileInfo_State = 0
672	// The device is unusable.
673	SIMProfileInfo_BROKEN SIMProfileInfo_State = 1
674	// The device needs to be unlocked.
675	SIMProfileInfo_LOCKED SIMProfileInfo_State = 2
676	// No data connection available and not in a failed state.
677	SIMProfileInfo_NO_NETWORK SIMProfileInfo_State = 3
678	// The device is registered with a network provider, and data connections and messaging may be available for use.
679	SIMProfileInfo_WORKING SIMProfileInfo_State = 4
680	// The device has an invalid configuration in UFS.
681	SIMProfileInfo_WRONG_CONFIG SIMProfileInfo_State = 5
682)
683
684// Enum value maps for SIMProfileInfo_State.
685var (
686	SIMProfileInfo_State_name = map[int32]string{
687		0: "UNSPECIFIED",
688		1: "BROKEN",
689		2: "LOCKED",
690		3: "NO_NETWORK",
691		4: "WORKING",
692		5: "WRONG_CONFIG",
693	}
694	SIMProfileInfo_State_value = map[string]int32{
695		"UNSPECIFIED":  0,
696		"BROKEN":       1,
697		"LOCKED":       2,
698		"NO_NETWORK":   3,
699		"WORKING":      4,
700		"WRONG_CONFIG": 5,
701	}
702)
703
704func (x SIMProfileInfo_State) Enum() *SIMProfileInfo_State {
705	p := new(SIMProfileInfo_State)
706	*p = x
707	return p
708}
709
710func (x SIMProfileInfo_State) String() string {
711	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
712}
713
714func (SIMProfileInfo_State) Descriptor() protoreflect.EnumDescriptor {
715	return file_chromiumos_test_lab_api_dut_proto_enumTypes[9].Descriptor()
716}
717
718func (SIMProfileInfo_State) Type() protoreflect.EnumType {
719	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[9]
720}
721
722func (x SIMProfileInfo_State) Number() protoreflect.EnumNumber {
723	return protoreflect.EnumNumber(x)
724}
725
726// Deprecated: Use SIMProfileInfo_State.Descriptor instead.
727func (SIMProfileInfo_State) EnumDescriptor() ([]byte, []int) {
728	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{10, 0}
729}
730
731// Possible features that the SIM supports.
732type SIMProfileInfo_Feature int32
733
734const (
735	// Unset feature.
736	SIMProfileInfo_FEATURE_UNSPECIFIED SIMProfileInfo_Feature = 0
737	// The SIM supports a generic live network.
738	SIMProfileInfo_FEATURE_LIVE_NETWORK SIMProfileInfo_Feature = 1
739	// The SIM supports SMS messaging.
740	SIMProfileInfo_FEATURE_SMS SIMProfileInfo_Feature = 2
741)
742
743// Enum value maps for SIMProfileInfo_Feature.
744var (
745	SIMProfileInfo_Feature_name = map[int32]string{
746		0: "FEATURE_UNSPECIFIED",
747		1: "FEATURE_LIVE_NETWORK",
748		2: "FEATURE_SMS",
749	}
750	SIMProfileInfo_Feature_value = map[string]int32{
751		"FEATURE_UNSPECIFIED":  0,
752		"FEATURE_LIVE_NETWORK": 1,
753		"FEATURE_SMS":          2,
754	}
755)
756
757func (x SIMProfileInfo_Feature) Enum() *SIMProfileInfo_Feature {
758	p := new(SIMProfileInfo_Feature)
759	*p = x
760	return p
761}
762
763func (x SIMProfileInfo_Feature) String() string {
764	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
765}
766
767func (SIMProfileInfo_Feature) Descriptor() protoreflect.EnumDescriptor {
768	return file_chromiumos_test_lab_api_dut_proto_enumTypes[10].Descriptor()
769}
770
771func (SIMProfileInfo_Feature) Type() protoreflect.EnumType {
772	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[10]
773}
774
775func (x SIMProfileInfo_Feature) Number() protoreflect.EnumNumber {
776	return protoreflect.EnumNumber(x)
777}
778
779// Deprecated: Use SIMProfileInfo_Feature.Descriptor instead.
780func (SIMProfileInfo_Feature) EnumDescriptor() ([]byte, []int) {
781	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{10, 1}
782}
783
784type Chameleon_Peripheral int32
785
786const (
787	// TODO(b/268202522): remove obsolete chameleon types
788	Chameleon_PERIPHERAL_UNSPECIFIED Chameleon_Peripheral = 0
789	Chameleon_BT_HID                 Chameleon_Peripheral = 1
790	// Display Port
791	Chameleon_DP      Chameleon_Peripheral = 2
792	Chameleon_DP_HDMI Chameleon_Peripheral = 3
793	Chameleon_VGA     Chameleon_Peripheral = 4
794	// High Definition Multimedia Interface
795	Chameleon_HDMI         Chameleon_Peripheral = 5
796	Chameleon_BT_BLE_HID   Chameleon_Peripheral = 6
797	Chameleon_BT_A2DP_SINK Chameleon_Peripheral = 7
798	Chameleon_BT_PEER      Chameleon_Peripheral = 8
799	// Raspberry Pi
800	Chameleon_RPI Chameleon_Peripheral = 9
801)
802
803// Enum value maps for Chameleon_Peripheral.
804var (
805	Chameleon_Peripheral_name = map[int32]string{
806		0: "PERIPHERAL_UNSPECIFIED",
807		1: "BT_HID",
808		2: "DP",
809		3: "DP_HDMI",
810		4: "VGA",
811		5: "HDMI",
812		6: "BT_BLE_HID",
813		7: "BT_A2DP_SINK",
814		8: "BT_PEER",
815		9: "RPI",
816	}
817	Chameleon_Peripheral_value = map[string]int32{
818		"PERIPHERAL_UNSPECIFIED": 0,
819		"BT_HID":                 1,
820		"DP":                     2,
821		"DP_HDMI":                3,
822		"VGA":                    4,
823		"HDMI":                   5,
824		"BT_BLE_HID":             6,
825		"BT_A2DP_SINK":           7,
826		"BT_PEER":                8,
827		"RPI":                    9,
828	}
829)
830
831func (x Chameleon_Peripheral) Enum() *Chameleon_Peripheral {
832	p := new(Chameleon_Peripheral)
833	*p = x
834	return p
835}
836
837func (x Chameleon_Peripheral) String() string {
838	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
839}
840
841func (Chameleon_Peripheral) Descriptor() protoreflect.EnumDescriptor {
842	return file_chromiumos_test_lab_api_dut_proto_enumTypes[11].Descriptor()
843}
844
845func (Chameleon_Peripheral) Type() protoreflect.EnumType {
846	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[11]
847}
848
849func (x Chameleon_Peripheral) Number() protoreflect.EnumNumber {
850	return protoreflect.EnumNumber(x)
851}
852
853// Deprecated: Use Chameleon_Peripheral.Descriptor instead.
854func (Chameleon_Peripheral) EnumDescriptor() ([]byte, []int) {
855	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{11, 0}
856}
857
858type Chameleon_Type int32
859
860const (
861	Chameleon_TYPE_UNSPECIFIED Chameleon_Type = 0
862	Chameleon_V2               Chameleon_Type = 1
863	Chameleon_V3               Chameleon_Type = 2
864)
865
866// Enum value maps for Chameleon_Type.
867var (
868	Chameleon_Type_name = map[int32]string{
869		0: "TYPE_UNSPECIFIED",
870		1: "V2",
871		2: "V3",
872	}
873	Chameleon_Type_value = map[string]int32{
874		"TYPE_UNSPECIFIED": 0,
875		"V2":               1,
876		"V3":               2,
877	}
878)
879
880func (x Chameleon_Type) Enum() *Chameleon_Type {
881	p := new(Chameleon_Type)
882	*p = x
883	return p
884}
885
886func (x Chameleon_Type) String() string {
887	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
888}
889
890func (Chameleon_Type) Descriptor() protoreflect.EnumDescriptor {
891	return file_chromiumos_test_lab_api_dut_proto_enumTypes[12].Descriptor()
892}
893
894func (Chameleon_Type) Type() protoreflect.EnumType {
895	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[12]
896}
897
898func (x Chameleon_Type) Number() protoreflect.EnumNumber {
899	return protoreflect.EnumNumber(x)
900}
901
902// Deprecated: Use Chameleon_Type.Descriptor instead.
903func (Chameleon_Type) EnumDescriptor() ([]byte, []int) {
904	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{11, 1}
905}
906
907type ExternalCamera_Type int32
908
909const (
910	ExternalCamera_TYPE_UNSPECIFIED ExternalCamera_Type = 0
911	// camera Huddly GO
912	ExternalCamera_HUDDLY ExternalCamera_Type = 1
913	// camera Logitech PTZ Pro 2
914	ExternalCamera_PTZPRO2 ExternalCamera_Type = 2
915)
916
917// Enum value maps for ExternalCamera_Type.
918var (
919	ExternalCamera_Type_name = map[int32]string{
920		0: "TYPE_UNSPECIFIED",
921		1: "HUDDLY",
922		2: "PTZPRO2",
923	}
924	ExternalCamera_Type_value = map[string]int32{
925		"TYPE_UNSPECIFIED": 0,
926		"HUDDLY":           1,
927		"PTZPRO2":          2,
928	}
929)
930
931func (x ExternalCamera_Type) Enum() *ExternalCamera_Type {
932	p := new(ExternalCamera_Type)
933	*p = x
934	return p
935}
936
937func (x ExternalCamera_Type) String() string {
938	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
939}
940
941func (ExternalCamera_Type) Descriptor() protoreflect.EnumDescriptor {
942	return file_chromiumos_test_lab_api_dut_proto_enumTypes[13].Descriptor()
943}
944
945func (ExternalCamera_Type) Type() protoreflect.EnumType {
946	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[13]
947}
948
949func (x ExternalCamera_Type) Number() protoreflect.EnumNumber {
950	return protoreflect.EnumNumber(x)
951}
952
953// Deprecated: Use ExternalCamera_Type.Descriptor instead.
954func (ExternalCamera_Type) EnumDescriptor() ([]byte, []int) {
955	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{12, 0}
956}
957
958type Wifi_Environment int32
959
960const (
961	Wifi_ENVIRONMENT_UNSPECIFIED Wifi_Environment = 0
962	// Device is setup without any special wifi environment.
963	Wifi_STANDARD Wifi_Environment = 1
964	// Device is inside a hermetic wifi cell.
965	Wifi_WIFI_CELL Wifi_Environment = 2
966	// Device is setup in a chaos environment. It's a special settings for
967	// running wifi interop tests.
968	Wifi_CHAOS Wifi_Environment = 3
969	// In an environment where the AP is 802.11ax compliant.
970	// Context: crbug.com/1044786
971	Wifi_ROUTER_802_11AX Wifi_Environment = 4
972)
973
974// Enum value maps for Wifi_Environment.
975var (
976	Wifi_Environment_name = map[int32]string{
977		0: "ENVIRONMENT_UNSPECIFIED",
978		1: "STANDARD",
979		2: "WIFI_CELL",
980		3: "CHAOS",
981		4: "ROUTER_802_11AX",
982	}
983	Wifi_Environment_value = map[string]int32{
984		"ENVIRONMENT_UNSPECIFIED": 0,
985		"STANDARD":                1,
986		"WIFI_CELL":               2,
987		"CHAOS":                   3,
988		"ROUTER_802_11AX":         4,
989	}
990)
991
992func (x Wifi_Environment) Enum() *Wifi_Environment {
993	p := new(Wifi_Environment)
994	*p = x
995	return p
996}
997
998func (x Wifi_Environment) String() string {
999	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
1000}
1001
1002func (Wifi_Environment) Descriptor() protoreflect.EnumDescriptor {
1003	return file_chromiumos_test_lab_api_dut_proto_enumTypes[14].Descriptor()
1004}
1005
1006func (Wifi_Environment) Type() protoreflect.EnumType {
1007	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[14]
1008}
1009
1010func (x Wifi_Environment) Number() protoreflect.EnumNumber {
1011	return protoreflect.EnumNumber(x)
1012}
1013
1014// Deprecated: Use Wifi_Environment.Descriptor instead.
1015func (Wifi_Environment) EnumDescriptor() ([]byte, []int) {
1016	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{16, 0}
1017}
1018
1019// DUT's WiFi antenna's connection.
1020type WifiAntenna_Connection int32
1021
1022const (
1023	WifiAntenna_CONNECTION_UNSPECIFIED WifiAntenna_Connection = 0
1024	// WIFI antenna is connected conductively.
1025	WifiAntenna_CONDUCTIVE WifiAntenna_Connection = 1
1026	// WIFI antenna is connected over-the-air.
1027	WifiAntenna_OTA WifiAntenna_Connection = 2
1028)
1029
1030// Enum value maps for WifiAntenna_Connection.
1031var (
1032	WifiAntenna_Connection_name = map[int32]string{
1033		0: "CONNECTION_UNSPECIFIED",
1034		1: "CONDUCTIVE",
1035		2: "OTA",
1036	}
1037	WifiAntenna_Connection_value = map[string]int32{
1038		"CONNECTION_UNSPECIFIED": 0,
1039		"CONDUCTIVE":             1,
1040		"OTA":                    2,
1041	}
1042)
1043
1044func (x WifiAntenna_Connection) Enum() *WifiAntenna_Connection {
1045	p := new(WifiAntenna_Connection)
1046	*p = x
1047	return p
1048}
1049
1050func (x WifiAntenna_Connection) String() string {
1051	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
1052}
1053
1054func (WifiAntenna_Connection) Descriptor() protoreflect.EnumDescriptor {
1055	return file_chromiumos_test_lab_api_dut_proto_enumTypes[15].Descriptor()
1056}
1057
1058func (WifiAntenna_Connection) Type() protoreflect.EnumType {
1059	return &file_chromiumos_test_lab_api_dut_proto_enumTypes[15]
1060}
1061
1062func (x WifiAntenna_Connection) Number() protoreflect.EnumNumber {
1063	return protoreflect.EnumNumber(x)
1064}
1065
1066// Deprecated: Use WifiAntenna_Connection.Descriptor instead.
1067func (WifiAntenna_Connection) EnumDescriptor() ([]byte, []int) {
1068	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{17, 0}
1069}
1070
1071// Specification of Device Under Test.
1072// Next Tag: 7
1073type Dut struct {
1074	state         protoimpl.MessageState
1075	sizeCache     protoimpl.SizeCache
1076	unknownFields protoimpl.UnknownFields
1077
1078	Id *Dut_Id `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1079	// Types that are assignable to DutType:
1080	//	*Dut_Chromeos
1081	//	*Dut_Android_
1082	//	*Dut_Devboard_
1083	DutType isDut_DutType `protobuf_oneof:"dut_type"`
1084	// Cache server for downloading artifacts related to this DUT.
1085	CacheServer *CacheServer `protobuf:"bytes,4,opt,name=cache_server,json=cacheServer,proto3" json:"cache_server,omitempty"`
1086	// The secret for wifi tests.
1087	WifiSecret *WifiSecret `protobuf:"bytes,6,opt,name=wifi_secret,json=wifiSecret,proto3" json:"wifi_secret,omitempty"`
1088}
1089
1090func (x *Dut) Reset() {
1091	*x = Dut{}
1092	if protoimpl.UnsafeEnabled {
1093		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[0]
1094		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1095		ms.StoreMessageInfo(mi)
1096	}
1097}
1098
1099func (x *Dut) String() string {
1100	return protoimpl.X.MessageStringOf(x)
1101}
1102
1103func (*Dut) ProtoMessage() {}
1104
1105func (x *Dut) ProtoReflect() protoreflect.Message {
1106	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[0]
1107	if protoimpl.UnsafeEnabled && x != nil {
1108		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1109		if ms.LoadMessageInfo() == nil {
1110			ms.StoreMessageInfo(mi)
1111		}
1112		return ms
1113	}
1114	return mi.MessageOf(x)
1115}
1116
1117// Deprecated: Use Dut.ProtoReflect.Descriptor instead.
1118func (*Dut) Descriptor() ([]byte, []int) {
1119	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{0}
1120}
1121
1122func (x *Dut) GetId() *Dut_Id {
1123	if x != nil {
1124		return x.Id
1125	}
1126	return nil
1127}
1128
1129func (m *Dut) GetDutType() isDut_DutType {
1130	if m != nil {
1131		return m.DutType
1132	}
1133	return nil
1134}
1135
1136func (x *Dut) GetChromeos() *Dut_ChromeOS {
1137	if x, ok := x.GetDutType().(*Dut_Chromeos); ok {
1138		return x.Chromeos
1139	}
1140	return nil
1141}
1142
1143func (x *Dut) GetAndroid() *Dut_Android {
1144	if x, ok := x.GetDutType().(*Dut_Android_); ok {
1145		return x.Android
1146	}
1147	return nil
1148}
1149
1150func (x *Dut) GetDevboard() *Dut_Devboard {
1151	if x, ok := x.GetDutType().(*Dut_Devboard_); ok {
1152		return x.Devboard
1153	}
1154	return nil
1155}
1156
1157func (x *Dut) GetCacheServer() *CacheServer {
1158	if x != nil {
1159		return x.CacheServer
1160	}
1161	return nil
1162}
1163
1164func (x *Dut) GetWifiSecret() *WifiSecret {
1165	if x != nil {
1166		return x.WifiSecret
1167	}
1168	return nil
1169}
1170
1171type isDut_DutType interface {
1172	isDut_DutType()
1173}
1174
1175type Dut_Chromeos struct {
1176	Chromeos *Dut_ChromeOS `protobuf:"bytes,2,opt,name=chromeos,proto3,oneof"`
1177}
1178
1179type Dut_Android_ struct {
1180	Android *Dut_Android `protobuf:"bytes,3,opt,name=android,proto3,oneof"`
1181}
1182
1183type Dut_Devboard_ struct {
1184	Devboard *Dut_Devboard `protobuf:"bytes,5,opt,name=devboard,proto3,oneof"`
1185}
1186
1187func (*Dut_Chromeos) isDut_DutType() {}
1188
1189func (*Dut_Android_) isDut_DutType() {}
1190
1191func (*Dut_Devboard_) isDut_DutType() {}
1192
1193// Defines the build target/board and model of the Dut
1194type DutModel struct {
1195	state         protoimpl.MessageState
1196	sizeCache     protoimpl.SizeCache
1197	unknownFields protoimpl.UnknownFields
1198
1199	BuildTarget string `protobuf:"bytes,1,opt,name=build_target,json=buildTarget,proto3" json:"build_target,omitempty"`
1200	ModelName   string `protobuf:"bytes,2,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
1201}
1202
1203func (x *DutModel) Reset() {
1204	*x = DutModel{}
1205	if protoimpl.UnsafeEnabled {
1206		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[1]
1207		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1208		ms.StoreMessageInfo(mi)
1209	}
1210}
1211
1212func (x *DutModel) String() string {
1213	return protoimpl.X.MessageStringOf(x)
1214}
1215
1216func (*DutModel) ProtoMessage() {}
1217
1218func (x *DutModel) ProtoReflect() protoreflect.Message {
1219	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[1]
1220	if protoimpl.UnsafeEnabled && x != nil {
1221		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1222		if ms.LoadMessageInfo() == nil {
1223			ms.StoreMessageInfo(mi)
1224		}
1225		return ms
1226	}
1227	return mi.MessageOf(x)
1228}
1229
1230// Deprecated: Use DutModel.ProtoReflect.Descriptor instead.
1231func (*DutModel) Descriptor() ([]byte, []int) {
1232	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{1}
1233}
1234
1235func (x *DutModel) GetBuildTarget() string {
1236	if x != nil {
1237		return x.BuildTarget
1238	}
1239	return ""
1240}
1241
1242func (x *DutModel) GetModelName() string {
1243	if x != nil {
1244		return x.ModelName
1245	}
1246	return ""
1247}
1248
1249// Defines the topology of connected devices under test
1250type DutTopology struct {
1251	state         protoimpl.MessageState
1252	sizeCache     protoimpl.SizeCache
1253	unknownFields protoimpl.UnknownFields
1254
1255	Id *DutTopology_Id `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
1256	// Collection of devices that are used in a given test.
1257	// Generally, this will contain a single Dut for an functional test that
1258	// doesn't depend on other devices, but can include a collection of devices
1259	// used in multi-dut testing (e.g. ChromeOS to ChromeOS, ChromeOS to Android,
1260	// etc...)
1261	Duts []*Dut `protobuf:"bytes,4,rep,name=duts,proto3" json:"duts,omitempty"`
1262}
1263
1264func (x *DutTopology) Reset() {
1265	*x = DutTopology{}
1266	if protoimpl.UnsafeEnabled {
1267		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[2]
1268		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1269		ms.StoreMessageInfo(mi)
1270	}
1271}
1272
1273func (x *DutTopology) String() string {
1274	return protoimpl.X.MessageStringOf(x)
1275}
1276
1277func (*DutTopology) ProtoMessage() {}
1278
1279func (x *DutTopology) ProtoReflect() protoreflect.Message {
1280	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[2]
1281	if protoimpl.UnsafeEnabled && x != nil {
1282		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1283		if ms.LoadMessageInfo() == nil {
1284			ms.StoreMessageInfo(mi)
1285		}
1286		return ms
1287	}
1288	return mi.MessageOf(x)
1289}
1290
1291// Deprecated: Use DutTopology.ProtoReflect.Descriptor instead.
1292func (*DutTopology) Descriptor() ([]byte, []int) {
1293	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{2}
1294}
1295
1296func (x *DutTopology) GetId() *DutTopology_Id {
1297	if x != nil {
1298		return x.Id
1299	}
1300	return nil
1301}
1302
1303func (x *DutTopology) GetDuts() []*Dut {
1304	if x != nil {
1305		return x.Duts
1306	}
1307	return nil
1308}
1309
1310// Peripherals related to audio input and output from the Device.
1311type Audio struct {
1312	state         protoimpl.MessageState
1313	sizeCache     protoimpl.SizeCache
1314	unknownFields protoimpl.UnknownFields
1315
1316	// Device is housed in an audio box to record / replay audio
1317	// for audio testing.
1318	AudioBox bool `protobuf:"varint,1,opt,name=audio_box,json=audioBox,proto3" json:"audio_box,omitempty"`
1319	// Device is connected to Atrus speakermic.
1320	Atrus bool `protobuf:"varint,2,opt,name=atrus,proto3" json:"atrus,omitempty"`
1321}
1322
1323func (x *Audio) Reset() {
1324	*x = Audio{}
1325	if protoimpl.UnsafeEnabled {
1326		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[3]
1327		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1328		ms.StoreMessageInfo(mi)
1329	}
1330}
1331
1332func (x *Audio) String() string {
1333	return protoimpl.X.MessageStringOf(x)
1334}
1335
1336func (*Audio) ProtoMessage() {}
1337
1338func (x *Audio) ProtoReflect() protoreflect.Message {
1339	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[3]
1340	if protoimpl.UnsafeEnabled && x != nil {
1341		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1342		if ms.LoadMessageInfo() == nil {
1343			ms.StoreMessageInfo(mi)
1344		}
1345		return ms
1346	}
1347	return mi.MessageOf(x)
1348}
1349
1350// Deprecated: Use Audio.ProtoReflect.Descriptor instead.
1351func (*Audio) Descriptor() ([]byte, []int) {
1352	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{3}
1353}
1354
1355func (x *Audio) GetAudioBox() bool {
1356	if x != nil {
1357		return x.AudioBox
1358	}
1359	return false
1360}
1361
1362func (x *Audio) GetAtrus() bool {
1363	if x != nil {
1364		return x.Atrus
1365	}
1366	return false
1367}
1368
1369// A cable connecting the device to audio, printer and other peripherals.
1370type Cable struct {
1371	state         protoimpl.MessageState
1372	sizeCache     protoimpl.SizeCache
1373	unknownFields protoimpl.UnknownFields
1374
1375	Type Cable_Type `protobuf:"varint,1,opt,name=type,proto3,enum=chromiumos.test.lab.api.Cable_Type" json:"type,omitempty"`
1376}
1377
1378func (x *Cable) Reset() {
1379	*x = Cable{}
1380	if protoimpl.UnsafeEnabled {
1381		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[4]
1382		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1383		ms.StoreMessageInfo(mi)
1384	}
1385}
1386
1387func (x *Cable) String() string {
1388	return protoimpl.X.MessageStringOf(x)
1389}
1390
1391func (*Cable) ProtoMessage() {}
1392
1393func (x *Cable) ProtoReflect() protoreflect.Message {
1394	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[4]
1395	if protoimpl.UnsafeEnabled && x != nil {
1396		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1397		if ms.LoadMessageInfo() == nil {
1398			ms.StoreMessageInfo(mi)
1399		}
1400		return ms
1401	}
1402	return mi.MessageOf(x)
1403}
1404
1405// Deprecated: Use Cable.ProtoReflect.Descriptor instead.
1406func (*Cable) Descriptor() ([]byte, []int) {
1407	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{4}
1408}
1409
1410func (x *Cable) GetType() Cable_Type {
1411	if x != nil {
1412		return x.Type
1413	}
1414	return Cable_TYPE_UNSPECIFIED
1415}
1416
1417// A cache server for downloading artifacts.
1418//
1419// The server should support the following HTTP requests:
1420//
1421// GET /download/GS_BUCKET/GS_PATH
1422// Download a file from Google Storage.
1423//
1424// GET /extract/GS_BUCKET/GS_PATH?file=TAR_PATH
1425// Download a file within a (possibly compressed) TAR archive stored
1426// in Google Storage.
1427//
1428// GET /decompress/GS_BUCKET/GS_PATH
1429// Download the decompressed data of a compressed file from Google Storage.
1430type CacheServer struct {
1431	state         protoimpl.MessageState
1432	sizeCache     protoimpl.SizeCache
1433	unknownFields protoimpl.UnknownFields
1434
1435	// HTTP address for the cache server.
1436	Address *IpEndpoint `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
1437}
1438
1439func (x *CacheServer) Reset() {
1440	*x = CacheServer{}
1441	if protoimpl.UnsafeEnabled {
1442		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[5]
1443		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1444		ms.StoreMessageInfo(mi)
1445	}
1446}
1447
1448func (x *CacheServer) String() string {
1449	return protoimpl.X.MessageStringOf(x)
1450}
1451
1452func (*CacheServer) ProtoMessage() {}
1453
1454func (x *CacheServer) ProtoReflect() protoreflect.Message {
1455	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[5]
1456	if protoimpl.UnsafeEnabled && x != nil {
1457		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1458		if ms.LoadMessageInfo() == nil {
1459			ms.StoreMessageInfo(mi)
1460		}
1461		return ms
1462	}
1463	return mi.MessageOf(x)
1464}
1465
1466// Deprecated: Use CacheServer.ProtoReflect.Descriptor instead.
1467func (*CacheServer) Descriptor() ([]byte, []int) {
1468	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{5}
1469}
1470
1471func (x *CacheServer) GetAddress() *IpEndpoint {
1472	if x != nil {
1473		return x.Address
1474	}
1475	return nil
1476}
1477
1478// A steady and controllable camera box environment for the device, used by
1479// camera test automation. http://go/cros-camera-box
1480type Camerabox struct {
1481	state         protoimpl.MessageState
1482	sizeCache     protoimpl.SizeCache
1483	unknownFields protoimpl.UnknownFields
1484
1485	Facing Camerabox_Facing `protobuf:"varint,1,opt,name=facing,proto3,enum=chromiumos.test.lab.api.Camerabox_Facing" json:"facing,omitempty"`
1486}
1487
1488func (x *Camerabox) Reset() {
1489	*x = Camerabox{}
1490	if protoimpl.UnsafeEnabled {
1491		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[6]
1492		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1493		ms.StoreMessageInfo(mi)
1494	}
1495}
1496
1497func (x *Camerabox) String() string {
1498	return protoimpl.X.MessageStringOf(x)
1499}
1500
1501func (*Camerabox) ProtoMessage() {}
1502
1503func (x *Camerabox) ProtoReflect() protoreflect.Message {
1504	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[6]
1505	if protoimpl.UnsafeEnabled && x != nil {
1506		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1507		if ms.LoadMessageInfo() == nil {
1508			ms.StoreMessageInfo(mi)
1509		}
1510		return ms
1511	}
1512	return mi.MessageOf(x)
1513}
1514
1515// Deprecated: Use Camerabox.ProtoReflect.Descriptor instead.
1516func (*Camerabox) Descriptor() ([]byte, []int) {
1517	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{6}
1518}
1519
1520func (x *Camerabox) GetFacing() Camerabox_Facing {
1521	if x != nil {
1522		return x.Facing
1523	}
1524	return Camerabox_FACING_UNSPECIFIED
1525}
1526
1527type Cellular struct {
1528	state         protoimpl.MessageState
1529	sizeCache     protoimpl.SizeCache
1530	unknownFields protoimpl.UnknownFields
1531
1532	// Cellular operators supported by the SIM installed in the device.
1533	// Note this is not used as it has been superseded by SimInfo.
1534	Operators []Cellular_Operator `protobuf:"varint,1,rep,packed,name=operators,proto3,enum=chromiumos.test.lab.api.Cellular_Operator" json:"operators,omitempty"`
1535	// Carrier is the DUTs carrier name/type from:
1536	// https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/unifiedfleet/api/v1/models/chromeos/lab/peripherals.proto;l=31
1537	Carrier string `protobuf:"bytes,2,opt,name=carrier,proto3" json:"carrier,omitempty"`
1538}
1539
1540func (x *Cellular) Reset() {
1541	*x = Cellular{}
1542	if protoimpl.UnsafeEnabled {
1543		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[7]
1544		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1545		ms.StoreMessageInfo(mi)
1546	}
1547}
1548
1549func (x *Cellular) String() string {
1550	return protoimpl.X.MessageStringOf(x)
1551}
1552
1553func (*Cellular) ProtoMessage() {}
1554
1555func (x *Cellular) ProtoReflect() protoreflect.Message {
1556	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[7]
1557	if protoimpl.UnsafeEnabled && x != nil {
1558		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1559		if ms.LoadMessageInfo() == nil {
1560			ms.StoreMessageInfo(mi)
1561		}
1562		return ms
1563	}
1564	return mi.MessageOf(x)
1565}
1566
1567// Deprecated: Use Cellular.ProtoReflect.Descriptor instead.
1568func (*Cellular) Descriptor() ([]byte, []int) {
1569	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{7}
1570}
1571
1572func (x *Cellular) GetOperators() []Cellular_Operator {
1573	if x != nil {
1574		return x.Operators
1575	}
1576	return nil
1577}
1578
1579func (x *Cellular) GetCarrier() string {
1580	if x != nil {
1581		return x.Carrier
1582	}
1583	return ""
1584}
1585
1586// ModemInfo is adapted from ufs and should be kept in sync with:
1587// https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/unifiedfleet/api/v1/models/chromeos/lab/modeminfo.proto
1588// Next Tag: 6
1589type ModemInfo struct {
1590	state         protoimpl.MessageState
1591	sizeCache     protoimpl.SizeCache
1592	unknownFields protoimpl.UnknownFields
1593
1594	Type           ModemType `protobuf:"varint,1,opt,name=type,proto3,enum=chromiumos.test.lab.api.ModemType" json:"type,omitempty"`
1595	Imei           string    `protobuf:"bytes,2,opt,name=imei,proto3" json:"imei,omitempty"`
1596	SupportedBands string    `protobuf:"bytes,3,opt,name=supported_bands,json=supportedBands,proto3" json:"supported_bands,omitempty"`
1597	SimCount       int32     `protobuf:"varint,4,opt,name=sim_count,json=simCount,proto3" json:"sim_count,omitempty"`
1598	ModelVariant   string    `protobuf:"bytes,5,opt,name=model_variant,json=modelVariant,proto3" json:"model_variant,omitempty"`
1599}
1600
1601func (x *ModemInfo) Reset() {
1602	*x = ModemInfo{}
1603	if protoimpl.UnsafeEnabled {
1604		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[8]
1605		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1606		ms.StoreMessageInfo(mi)
1607	}
1608}
1609
1610func (x *ModemInfo) String() string {
1611	return protoimpl.X.MessageStringOf(x)
1612}
1613
1614func (*ModemInfo) ProtoMessage() {}
1615
1616func (x *ModemInfo) ProtoReflect() protoreflect.Message {
1617	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[8]
1618	if protoimpl.UnsafeEnabled && x != nil {
1619		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1620		if ms.LoadMessageInfo() == nil {
1621			ms.StoreMessageInfo(mi)
1622		}
1623		return ms
1624	}
1625	return mi.MessageOf(x)
1626}
1627
1628// Deprecated: Use ModemInfo.ProtoReflect.Descriptor instead.
1629func (*ModemInfo) Descriptor() ([]byte, []int) {
1630	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{8}
1631}
1632
1633func (x *ModemInfo) GetType() ModemType {
1634	if x != nil {
1635		return x.Type
1636	}
1637	return ModemType_MODEM_TYPE_UNSPECIFIED
1638}
1639
1640func (x *ModemInfo) GetImei() string {
1641	if x != nil {
1642		return x.Imei
1643	}
1644	return ""
1645}
1646
1647func (x *ModemInfo) GetSupportedBands() string {
1648	if x != nil {
1649		return x.SupportedBands
1650	}
1651	return ""
1652}
1653
1654func (x *ModemInfo) GetSimCount() int32 {
1655	if x != nil {
1656		return x.SimCount
1657	}
1658	return 0
1659}
1660
1661func (x *ModemInfo) GetModelVariant() string {
1662	if x != nil {
1663		return x.ModelVariant
1664	}
1665	return ""
1666}
1667
1668type SIMInfo struct {
1669	state         protoimpl.MessageState
1670	sizeCache     protoimpl.SizeCache
1671	unknownFields protoimpl.UnknownFields
1672
1673	SlotId      int32             `protobuf:"varint,1,opt,name=slot_id,json=slotId,proto3" json:"slot_id,omitempty"`
1674	Type        SIMType           `protobuf:"varint,2,opt,name=type,proto3,enum=chromiumos.test.lab.api.SIMType" json:"type,omitempty"`
1675	Eid         string            `protobuf:"bytes,3,opt,name=eid,proto3" json:"eid,omitempty"`
1676	TestEsim    bool              `protobuf:"varint,4,opt,name=test_esim,json=testEsim,proto3" json:"test_esim,omitempty"`
1677	ProfileInfo []*SIMProfileInfo `protobuf:"bytes,5,rep,name=profile_info,json=profileInfo,proto3" json:"profile_info,omitempty"`
1678}
1679
1680func (x *SIMInfo) Reset() {
1681	*x = SIMInfo{}
1682	if protoimpl.UnsafeEnabled {
1683		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[9]
1684		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1685		ms.StoreMessageInfo(mi)
1686	}
1687}
1688
1689func (x *SIMInfo) String() string {
1690	return protoimpl.X.MessageStringOf(x)
1691}
1692
1693func (*SIMInfo) ProtoMessage() {}
1694
1695func (x *SIMInfo) ProtoReflect() protoreflect.Message {
1696	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[9]
1697	if protoimpl.UnsafeEnabled && x != nil {
1698		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1699		if ms.LoadMessageInfo() == nil {
1700			ms.StoreMessageInfo(mi)
1701		}
1702		return ms
1703	}
1704	return mi.MessageOf(x)
1705}
1706
1707// Deprecated: Use SIMInfo.ProtoReflect.Descriptor instead.
1708func (*SIMInfo) Descriptor() ([]byte, []int) {
1709	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{9}
1710}
1711
1712func (x *SIMInfo) GetSlotId() int32 {
1713	if x != nil {
1714		return x.SlotId
1715	}
1716	return 0
1717}
1718
1719func (x *SIMInfo) GetType() SIMType {
1720	if x != nil {
1721		return x.Type
1722	}
1723	return SIMType_SIM_UNKNOWN
1724}
1725
1726func (x *SIMInfo) GetEid() string {
1727	if x != nil {
1728		return x.Eid
1729	}
1730	return ""
1731}
1732
1733func (x *SIMInfo) GetTestEsim() bool {
1734	if x != nil {
1735		return x.TestEsim
1736	}
1737	return false
1738}
1739
1740func (x *SIMInfo) GetProfileInfo() []*SIMProfileInfo {
1741	if x != nil {
1742		return x.ProfileInfo
1743	}
1744	return nil
1745}
1746
1747type SIMProfileInfo struct {
1748	state         protoimpl.MessageState
1749	sizeCache     protoimpl.SizeCache
1750	unknownFields protoimpl.UnknownFields
1751
1752	Iccid       string          `protobuf:"bytes,1,opt,name=iccid,proto3" json:"iccid,omitempty"`
1753	SimPin      string          `protobuf:"bytes,2,opt,name=sim_pin,json=simPin,proto3" json:"sim_pin,omitempty"`
1754	SimPuk      string          `protobuf:"bytes,3,opt,name=sim_puk,json=simPuk,proto3" json:"sim_puk,omitempty"`
1755	CarrierName NetworkProvider `protobuf:"varint,4,opt,name=carrier_name,json=carrierName,proto3,enum=chromiumos.test.lab.api.NetworkProvider" json:"carrier_name,omitempty"`
1756	OwnNumber   string          `protobuf:"bytes,5,opt,name=own_number,json=ownNumber,proto3" json:"own_number,omitempty"`
1757	// The SIM state as reported by the cellular modem.
1758	State SIMProfileInfo_State `protobuf:"varint,6,opt,name=state,proto3,enum=chromiumos.test.lab.api.SIMProfileInfo_State" json:"state,omitempty"`
1759	// Features supported by the profile.
1760	// These features are used to determine what tests can be run against which SIMs
1761	// in the lab, see go/cros-cellular-features for more information.
1762	// File bugs against buganizer component: 979102.
1763	Features []SIMProfileInfo_Feature `protobuf:"varint,7,rep,packed,name=features,proto3,enum=chromiumos.test.lab.api.SIMProfileInfo_Feature" json:"features,omitempty"`
1764}
1765
1766func (x *SIMProfileInfo) Reset() {
1767	*x = SIMProfileInfo{}
1768	if protoimpl.UnsafeEnabled {
1769		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[10]
1770		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1771		ms.StoreMessageInfo(mi)
1772	}
1773}
1774
1775func (x *SIMProfileInfo) String() string {
1776	return protoimpl.X.MessageStringOf(x)
1777}
1778
1779func (*SIMProfileInfo) ProtoMessage() {}
1780
1781func (x *SIMProfileInfo) ProtoReflect() protoreflect.Message {
1782	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[10]
1783	if protoimpl.UnsafeEnabled && x != nil {
1784		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1785		if ms.LoadMessageInfo() == nil {
1786			ms.StoreMessageInfo(mi)
1787		}
1788		return ms
1789	}
1790	return mi.MessageOf(x)
1791}
1792
1793// Deprecated: Use SIMProfileInfo.ProtoReflect.Descriptor instead.
1794func (*SIMProfileInfo) Descriptor() ([]byte, []int) {
1795	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{10}
1796}
1797
1798func (x *SIMProfileInfo) GetIccid() string {
1799	if x != nil {
1800		return x.Iccid
1801	}
1802	return ""
1803}
1804
1805func (x *SIMProfileInfo) GetSimPin() string {
1806	if x != nil {
1807		return x.SimPin
1808	}
1809	return ""
1810}
1811
1812func (x *SIMProfileInfo) GetSimPuk() string {
1813	if x != nil {
1814		return x.SimPuk
1815	}
1816	return ""
1817}
1818
1819func (x *SIMProfileInfo) GetCarrierName() NetworkProvider {
1820	if x != nil {
1821		return x.CarrierName
1822	}
1823	return NetworkProvider_NETWORK_OTHER
1824}
1825
1826func (x *SIMProfileInfo) GetOwnNumber() string {
1827	if x != nil {
1828		return x.OwnNumber
1829	}
1830	return ""
1831}
1832
1833func (x *SIMProfileInfo) GetState() SIMProfileInfo_State {
1834	if x != nil {
1835		return x.State
1836	}
1837	return SIMProfileInfo_UNSPECIFIED
1838}
1839
1840func (x *SIMProfileInfo) GetFeatures() []SIMProfileInfo_Feature {
1841	if x != nil {
1842		return x.Features
1843	}
1844	return nil
1845}
1846
1847// See https://sites.google.com/a/google.com/cros-chameleon/home
1848type Chameleon struct {
1849	state         protoimpl.MessageState
1850	sizeCache     protoimpl.SizeCache
1851	unknownFields protoimpl.UnknownFields
1852
1853	Peripherals []Chameleon_Peripheral `protobuf:"varint,1,rep,packed,name=peripherals,proto3,enum=chromiumos.test.lab.api.Chameleon_Peripheral" json:"peripherals,omitempty"`
1854	// Indicate if there's an audio_board in the chameleon.
1855	AudioBoard bool             `protobuf:"varint,2,opt,name=audio_board,json=audioBoard,proto3" json:"audio_board,omitempty"`
1856	State      PeripheralState  `protobuf:"varint,3,opt,name=state,proto3,enum=chromiumos.test.lab.api.PeripheralState" json:"state,omitempty"`
1857	Hostname   string           `protobuf:"bytes,4,opt,name=hostname,proto3" json:"hostname,omitempty"`
1858	Types      []Chameleon_Type `protobuf:"varint,5,rep,packed,name=types,proto3,enum=chromiumos.test.lab.api.Chameleon_Type" json:"types,omitempty"`
1859}
1860
1861func (x *Chameleon) Reset() {
1862	*x = Chameleon{}
1863	if protoimpl.UnsafeEnabled {
1864		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[11]
1865		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1866		ms.StoreMessageInfo(mi)
1867	}
1868}
1869
1870func (x *Chameleon) String() string {
1871	return protoimpl.X.MessageStringOf(x)
1872}
1873
1874func (*Chameleon) ProtoMessage() {}
1875
1876func (x *Chameleon) ProtoReflect() protoreflect.Message {
1877	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[11]
1878	if protoimpl.UnsafeEnabled && x != nil {
1879		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1880		if ms.LoadMessageInfo() == nil {
1881			ms.StoreMessageInfo(mi)
1882		}
1883		return ms
1884	}
1885	return mi.MessageOf(x)
1886}
1887
1888// Deprecated: Use Chameleon.ProtoReflect.Descriptor instead.
1889func (*Chameleon) Descriptor() ([]byte, []int) {
1890	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{11}
1891}
1892
1893func (x *Chameleon) GetPeripherals() []Chameleon_Peripheral {
1894	if x != nil {
1895		return x.Peripherals
1896	}
1897	return nil
1898}
1899
1900func (x *Chameleon) GetAudioBoard() bool {
1901	if x != nil {
1902		return x.AudioBoard
1903	}
1904	return false
1905}
1906
1907func (x *Chameleon) GetState() PeripheralState {
1908	if x != nil {
1909		return x.State
1910	}
1911	return PeripheralState_PERIPHERAL_STATE_UNSPECIFIED
1912}
1913
1914func (x *Chameleon) GetHostname() string {
1915	if x != nil {
1916		return x.Hostname
1917	}
1918	return ""
1919}
1920
1921func (x *Chameleon) GetTypes() []Chameleon_Type {
1922	if x != nil {
1923		return x.Types
1924	}
1925	return nil
1926}
1927
1928// External camera connected to the device.
1929type ExternalCamera struct {
1930	state         protoimpl.MessageState
1931	sizeCache     protoimpl.SizeCache
1932	unknownFields protoimpl.UnknownFields
1933
1934	Type ExternalCamera_Type `protobuf:"varint,1,opt,name=type,proto3,enum=chromiumos.test.lab.api.ExternalCamera_Type" json:"type,omitempty"`
1935}
1936
1937func (x *ExternalCamera) Reset() {
1938	*x = ExternalCamera{}
1939	if protoimpl.UnsafeEnabled {
1940		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[12]
1941		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1942		ms.StoreMessageInfo(mi)
1943	}
1944}
1945
1946func (x *ExternalCamera) String() string {
1947	return protoimpl.X.MessageStringOf(x)
1948}
1949
1950func (*ExternalCamera) ProtoMessage() {}
1951
1952func (x *ExternalCamera) ProtoReflect() protoreflect.Message {
1953	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[12]
1954	if protoimpl.UnsafeEnabled && x != nil {
1955		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1956		if ms.LoadMessageInfo() == nil {
1957			ms.StoreMessageInfo(mi)
1958		}
1959		return ms
1960	}
1961	return mi.MessageOf(x)
1962}
1963
1964// Deprecated: Use ExternalCamera.ProtoReflect.Descriptor instead.
1965func (*ExternalCamera) Descriptor() ([]byte, []int) {
1966	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{12}
1967}
1968
1969func (x *ExternalCamera) GetType() ExternalCamera_Type {
1970	if x != nil {
1971		return x.Type
1972	}
1973	return ExternalCamera_TYPE_UNSPECIFIED
1974}
1975
1976// Remote power management capability for the device.
1977type RPM struct {
1978	state         protoimpl.MessageState
1979	sizeCache     protoimpl.SizeCache
1980	unknownFields protoimpl.UnknownFields
1981
1982	Present bool `protobuf:"varint,1,opt,name=present,proto3" json:"present,omitempty"`
1983	// Address to the frontend service for accessing the RPM.
1984	// The frontend service is an HTTP service that supports XMLRPC calls.
1985	FrontendAddress *IpEndpoint `protobuf:"bytes,2,opt,name=frontend_address,json=frontendAddress,proto3" json:"frontend_address,omitempty"`
1986	// Hostname of a particular PDU that assigned to the DUT.
1987	PowerUnitHostname *IpEndpoint `protobuf:"bytes,3,opt,name=power_unit_hostname,json=powerUnitHostname,proto3" json:"power_unit_hostname,omitempty"`
1988	// Outlet name/number assigned to the DUT
1989	PowerUnitOutlet string `protobuf:"bytes,4,opt,name=power_unit_outlet,json=powerUnitOutlet,proto3" json:"power_unit_outlet,omitempty"`
1990	// (Optional) Hydra hostname if the PDU access require a hydra.
1991	HydraHostname *IpEndpoint `protobuf:"bytes,5,opt,name=hydra_hostname,json=hydraHostname,proto3" json:"hydra_hostname,omitempty"`
1992	// RPM type
1993	Type RPMType `protobuf:"varint,6,opt,name=type,proto3,enum=chromiumos.test.lab.api.RPMType" json:"type,omitempty"`
1994}
1995
1996func (x *RPM) Reset() {
1997	*x = RPM{}
1998	if protoimpl.UnsafeEnabled {
1999		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[13]
2000		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2001		ms.StoreMessageInfo(mi)
2002	}
2003}
2004
2005func (x *RPM) String() string {
2006	return protoimpl.X.MessageStringOf(x)
2007}
2008
2009func (*RPM) ProtoMessage() {}
2010
2011func (x *RPM) ProtoReflect() protoreflect.Message {
2012	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[13]
2013	if protoimpl.UnsafeEnabled && x != nil {
2014		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2015		if ms.LoadMessageInfo() == nil {
2016			ms.StoreMessageInfo(mi)
2017		}
2018		return ms
2019	}
2020	return mi.MessageOf(x)
2021}
2022
2023// Deprecated: Use RPM.ProtoReflect.Descriptor instead.
2024func (*RPM) Descriptor() ([]byte, []int) {
2025	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{13}
2026}
2027
2028func (x *RPM) GetPresent() bool {
2029	if x != nil {
2030		return x.Present
2031	}
2032	return false
2033}
2034
2035func (x *RPM) GetFrontendAddress() *IpEndpoint {
2036	if x != nil {
2037		return x.FrontendAddress
2038	}
2039	return nil
2040}
2041
2042func (x *RPM) GetPowerUnitHostname() *IpEndpoint {
2043	if x != nil {
2044		return x.PowerUnitHostname
2045	}
2046	return nil
2047}
2048
2049func (x *RPM) GetPowerUnitOutlet() string {
2050	if x != nil {
2051		return x.PowerUnitOutlet
2052	}
2053	return ""
2054}
2055
2056func (x *RPM) GetHydraHostname() *IpEndpoint {
2057	if x != nil {
2058		return x.HydraHostname
2059	}
2060	return nil
2061}
2062
2063func (x *RPM) GetType() RPMType {
2064	if x != nil {
2065		return x.Type
2066	}
2067	return RPMType_RPM_TYPE_UNKNOWN
2068}
2069
2070// Servo control of the device.
2071type Servo struct {
2072	state         protoimpl.MessageState
2073	sizeCache     protoimpl.SizeCache
2074	unknownFields protoimpl.UnknownFields
2075
2076	Present bool `protobuf:"varint,1,opt,name=present,proto3" json:"present,omitempty"`
2077	// Address to the host running the servod daemon.
2078	// Port number servod is listening on.
2079	ServodAddress *IpEndpoint `protobuf:"bytes,2,opt,name=servod_address,json=servodAddress,proto3" json:"servod_address,omitempty"`
2080	// Serial number of the servo.
2081	Serial string `protobuf:"bytes,3,opt,name=serial,proto3" json:"serial,omitempty"`
2082	// Current state of the servo, updated by latest auto-repair.
2083	State PeripheralState `protobuf:"varint,4,opt,name=state,proto3,enum=chromiumos.test.lab.api.PeripheralState" json:"state,omitempty"`
2084}
2085
2086func (x *Servo) Reset() {
2087	*x = Servo{}
2088	if protoimpl.UnsafeEnabled {
2089		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[14]
2090		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2091		ms.StoreMessageInfo(mi)
2092	}
2093}
2094
2095func (x *Servo) String() string {
2096	return protoimpl.X.MessageStringOf(x)
2097}
2098
2099func (*Servo) ProtoMessage() {}
2100
2101func (x *Servo) ProtoReflect() protoreflect.Message {
2102	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[14]
2103	if protoimpl.UnsafeEnabled && x != nil {
2104		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2105		if ms.LoadMessageInfo() == nil {
2106			ms.StoreMessageInfo(mi)
2107		}
2108		return ms
2109	}
2110	return mi.MessageOf(x)
2111}
2112
2113// Deprecated: Use Servo.ProtoReflect.Descriptor instead.
2114func (*Servo) Descriptor() ([]byte, []int) {
2115	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{14}
2116}
2117
2118func (x *Servo) GetPresent() bool {
2119	if x != nil {
2120		return x.Present
2121	}
2122	return false
2123}
2124
2125func (x *Servo) GetServodAddress() *IpEndpoint {
2126	if x != nil {
2127		return x.ServodAddress
2128	}
2129	return nil
2130}
2131
2132func (x *Servo) GetSerial() string {
2133	if x != nil {
2134		return x.Serial
2135	}
2136	return ""
2137}
2138
2139func (x *Servo) GetState() PeripheralState {
2140	if x != nil {
2141		return x.State
2142	}
2143	return PeripheralState_PERIPHERAL_STATE_UNSPECIFIED
2144}
2145
2146type Touch struct {
2147	state         protoimpl.MessageState
2148	sizeCache     protoimpl.SizeCache
2149	unknownFields protoimpl.UnknownFields
2150
2151	// Has touch monitor mimo.
2152	Mimo bool `protobuf:"varint,1,opt,name=mimo,proto3" json:"mimo,omitempty"`
2153}
2154
2155func (x *Touch) Reset() {
2156	*x = Touch{}
2157	if protoimpl.UnsafeEnabled {
2158		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[15]
2159		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2160		ms.StoreMessageInfo(mi)
2161	}
2162}
2163
2164func (x *Touch) String() string {
2165	return protoimpl.X.MessageStringOf(x)
2166}
2167
2168func (*Touch) ProtoMessage() {}
2169
2170func (x *Touch) ProtoReflect() protoreflect.Message {
2171	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[15]
2172	if protoimpl.UnsafeEnabled && x != nil {
2173		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2174		if ms.LoadMessageInfo() == nil {
2175			ms.StoreMessageInfo(mi)
2176		}
2177		return ms
2178	}
2179	return mi.MessageOf(x)
2180}
2181
2182// Deprecated: Use Touch.ProtoReflect.Descriptor instead.
2183func (*Touch) Descriptor() ([]byte, []int) {
2184	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{15}
2185}
2186
2187func (x *Touch) GetMimo() bool {
2188	if x != nil {
2189		return x.Mimo
2190	}
2191	return false
2192}
2193
2194// Wifi environment of the device.
2195type Wifi struct {
2196	state         protoimpl.MessageState
2197	sizeCache     protoimpl.SizeCache
2198	unknownFields protoimpl.UnknownFields
2199
2200	Environment Wifi_Environment `protobuf:"varint,1,opt,name=environment,proto3,enum=chromiumos.test.lab.api.Wifi_Environment" json:"environment,omitempty"`
2201	Antenna     *WifiAntenna     `protobuf:"bytes,2,opt,name=antenna,proto3" json:"antenna,omitempty"`
2202	// WiFi APs assigned to the device.
2203	WifiRouters []*WifiRouter `protobuf:"bytes,3,rep,name=wifi_routers,json=wifiRouters,proto3" json:"wifi_routers,omitempty"`
2204}
2205
2206func (x *Wifi) Reset() {
2207	*x = Wifi{}
2208	if protoimpl.UnsafeEnabled {
2209		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[16]
2210		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2211		ms.StoreMessageInfo(mi)
2212	}
2213}
2214
2215func (x *Wifi) String() string {
2216	return protoimpl.X.MessageStringOf(x)
2217}
2218
2219func (*Wifi) ProtoMessage() {}
2220
2221func (x *Wifi) ProtoReflect() protoreflect.Message {
2222	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[16]
2223	if protoimpl.UnsafeEnabled && x != nil {
2224		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2225		if ms.LoadMessageInfo() == nil {
2226			ms.StoreMessageInfo(mi)
2227		}
2228		return ms
2229	}
2230	return mi.MessageOf(x)
2231}
2232
2233// Deprecated: Use Wifi.ProtoReflect.Descriptor instead.
2234func (*Wifi) Descriptor() ([]byte, []int) {
2235	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{16}
2236}
2237
2238func (x *Wifi) GetEnvironment() Wifi_Environment {
2239	if x != nil {
2240		return x.Environment
2241	}
2242	return Wifi_ENVIRONMENT_UNSPECIFIED
2243}
2244
2245func (x *Wifi) GetAntenna() *WifiAntenna {
2246	if x != nil {
2247		return x.Antenna
2248	}
2249	return nil
2250}
2251
2252func (x *Wifi) GetWifiRouters() []*WifiRouter {
2253	if x != nil {
2254		return x.WifiRouters
2255	}
2256	return nil
2257}
2258
2259type WifiAntenna struct {
2260	state         protoimpl.MessageState
2261	sizeCache     protoimpl.SizeCache
2262	unknownFields protoimpl.UnknownFields
2263
2264	Connection WifiAntenna_Connection `protobuf:"varint,1,opt,name=connection,proto3,enum=chromiumos.test.lab.api.WifiAntenna_Connection" json:"connection,omitempty"`
2265}
2266
2267func (x *WifiAntenna) Reset() {
2268	*x = WifiAntenna{}
2269	if protoimpl.UnsafeEnabled {
2270		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[17]
2271		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2272		ms.StoreMessageInfo(mi)
2273	}
2274}
2275
2276func (x *WifiAntenna) String() string {
2277	return protoimpl.X.MessageStringOf(x)
2278}
2279
2280func (*WifiAntenna) ProtoMessage() {}
2281
2282func (x *WifiAntenna) ProtoReflect() protoreflect.Message {
2283	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[17]
2284	if protoimpl.UnsafeEnabled && x != nil {
2285		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2286		if ms.LoadMessageInfo() == nil {
2287			ms.StoreMessageInfo(mi)
2288		}
2289		return ms
2290	}
2291	return mi.MessageOf(x)
2292}
2293
2294// Deprecated: Use WifiAntenna.ProtoReflect.Descriptor instead.
2295func (*WifiAntenna) Descriptor() ([]byte, []int) {
2296	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{17}
2297}
2298
2299func (x *WifiAntenna) GetConnection() WifiAntenna_Connection {
2300	if x != nil {
2301		return x.Connection
2302	}
2303	return WifiAntenna_CONNECTION_UNSPECIFIED
2304}
2305
2306// WiFi APs attached to the DUT.
2307// Note: Define here rather than in wifi_router.proto so we can reference RPM in
2308// the future even though it's not used at the moment.
2309//
2310// Source of truth: https://source.chromium.org/chromium/infra/infra_superproject/+/main:infra/go/src/infra/unifiedfleet/api/v1/models/chromeos/lab/peripherals.proto
2311type WifiRouter struct {
2312	state         protoimpl.MessageState
2313	sizeCache     protoimpl.SizeCache
2314	unknownFields protoimpl.UnknownFields
2315
2316	Hostname string          `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
2317	State    PeripheralState `protobuf:"varint,2,opt,name=state,proto3,enum=chromiumos.test.lab.api.PeripheralState" json:"state,omitempty"`
2318	// Model of the router (e.g. OPENWRT[Ubiquiti_UniFi_6_Lite], gale).
2319	Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
2320	// RPM to perform remote power management.
2321	Rpm *RPM `protobuf:"bytes,4,opt,name=rpm,proto3" json:"rpm,omitempty"`
2322	// Supported test router hardware and software features.
2323	SupportedFeatures []WifiRouterFeature `protobuf:"varint,5,rep,packed,name=supported_features,json=supportedFeatures,proto3,enum=chromiumos.test.lab.api.WifiRouterFeature" json:"supported_features,omitempty"`
2324	// The type of router device this is (e.g. OpenWrt-based, ChromeOS Gale).
2325	DeviceType WifiRouterDeviceType `protobuf:"varint,6,opt,name=device_type,json=deviceType,proto3,enum=chromiumos.test.lab.api.WifiRouterDeviceType" json:"device_type,omitempty"`
2326}
2327
2328func (x *WifiRouter) Reset() {
2329	*x = WifiRouter{}
2330	if protoimpl.UnsafeEnabled {
2331		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[18]
2332		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2333		ms.StoreMessageInfo(mi)
2334	}
2335}
2336
2337func (x *WifiRouter) String() string {
2338	return protoimpl.X.MessageStringOf(x)
2339}
2340
2341func (*WifiRouter) ProtoMessage() {}
2342
2343func (x *WifiRouter) ProtoReflect() protoreflect.Message {
2344	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[18]
2345	if protoimpl.UnsafeEnabled && x != nil {
2346		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2347		if ms.LoadMessageInfo() == nil {
2348			ms.StoreMessageInfo(mi)
2349		}
2350		return ms
2351	}
2352	return mi.MessageOf(x)
2353}
2354
2355// Deprecated: Use WifiRouter.ProtoReflect.Descriptor instead.
2356func (*WifiRouter) Descriptor() ([]byte, []int) {
2357	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{18}
2358}
2359
2360func (x *WifiRouter) GetHostname() string {
2361	if x != nil {
2362		return x.Hostname
2363	}
2364	return ""
2365}
2366
2367func (x *WifiRouter) GetState() PeripheralState {
2368	if x != nil {
2369		return x.State
2370	}
2371	return PeripheralState_PERIPHERAL_STATE_UNSPECIFIED
2372}
2373
2374func (x *WifiRouter) GetModel() string {
2375	if x != nil {
2376		return x.Model
2377	}
2378	return ""
2379}
2380
2381func (x *WifiRouter) GetRpm() *RPM {
2382	if x != nil {
2383		return x.Rpm
2384	}
2385	return nil
2386}
2387
2388func (x *WifiRouter) GetSupportedFeatures() []WifiRouterFeature {
2389	if x != nil {
2390		return x.SupportedFeatures
2391	}
2392	return nil
2393}
2394
2395func (x *WifiRouter) GetDeviceType() WifiRouterDeviceType {
2396	if x != nil {
2397		return x.DeviceType
2398	}
2399	return WifiRouterDeviceType_WIFI_ROUTER_DEVICE_TYPE_UNKNOWN
2400}
2401
2402// Bluetooth Peers attached to the DUT.
2403type BluetoothPeer struct {
2404	state         protoimpl.MessageState
2405	sizeCache     protoimpl.SizeCache
2406	unknownFields protoimpl.UnknownFields
2407
2408	Hostname string          `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
2409	State    PeripheralState `protobuf:"varint,2,opt,name=state,proto3,enum=chromiumos.test.lab.api.PeripheralState" json:"state,omitempty"`
2410}
2411
2412func (x *BluetoothPeer) Reset() {
2413	*x = BluetoothPeer{}
2414	if protoimpl.UnsafeEnabled {
2415		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[19]
2416		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2417		ms.StoreMessageInfo(mi)
2418	}
2419}
2420
2421func (x *BluetoothPeer) String() string {
2422	return protoimpl.X.MessageStringOf(x)
2423}
2424
2425func (*BluetoothPeer) ProtoMessage() {}
2426
2427func (x *BluetoothPeer) ProtoReflect() protoreflect.Message {
2428	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[19]
2429	if protoimpl.UnsafeEnabled && x != nil {
2430		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2431		if ms.LoadMessageInfo() == nil {
2432			ms.StoreMessageInfo(mi)
2433		}
2434		return ms
2435	}
2436	return mi.MessageOf(x)
2437}
2438
2439// Deprecated: Use BluetoothPeer.ProtoReflect.Descriptor instead.
2440func (*BluetoothPeer) Descriptor() ([]byte, []int) {
2441	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{19}
2442}
2443
2444func (x *BluetoothPeer) GetHostname() string {
2445	if x != nil {
2446		return x.Hostname
2447	}
2448	return ""
2449}
2450
2451func (x *BluetoothPeer) GetState() PeripheralState {
2452	if x != nil {
2453		return x.State
2454	}
2455	return PeripheralState_PERIPHERAL_STATE_UNSPECIFIED
2456}
2457
2458// Next Tag: 4
2459// WifiSecret is the secret used for wifi tests.
2460type WifiSecret struct {
2461	state         protoimpl.MessageState
2462	sizeCache     protoimpl.SizeCache
2463	unknownFields protoimpl.UnknownFields
2464
2465	Ssid     string `protobuf:"bytes,1,opt,name=ssid,proto3" json:"ssid,omitempty"`         // wifi SSID
2466	Security string `protobuf:"bytes,2,opt,name=security,proto3" json:"security,omitempty"` // security protocol, e.g. WEP, WPA, etc.
2467	Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` // wifi password
2468}
2469
2470func (x *WifiSecret) Reset() {
2471	*x = WifiSecret{}
2472	if protoimpl.UnsafeEnabled {
2473		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[20]
2474		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2475		ms.StoreMessageInfo(mi)
2476	}
2477}
2478
2479func (x *WifiSecret) String() string {
2480	return protoimpl.X.MessageStringOf(x)
2481}
2482
2483func (*WifiSecret) ProtoMessage() {}
2484
2485func (x *WifiSecret) ProtoReflect() protoreflect.Message {
2486	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[20]
2487	if protoimpl.UnsafeEnabled && x != nil {
2488		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2489		if ms.LoadMessageInfo() == nil {
2490			ms.StoreMessageInfo(mi)
2491		}
2492		return ms
2493	}
2494	return mi.MessageOf(x)
2495}
2496
2497// Deprecated: Use WifiSecret.ProtoReflect.Descriptor instead.
2498func (*WifiSecret) Descriptor() ([]byte, []int) {
2499	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{20}
2500}
2501
2502func (x *WifiSecret) GetSsid() string {
2503	if x != nil {
2504		return x.Ssid
2505	}
2506	return ""
2507}
2508
2509func (x *WifiSecret) GetSecurity() string {
2510	if x != nil {
2511		return x.Security
2512	}
2513	return ""
2514}
2515
2516func (x *WifiSecret) GetPassword() string {
2517	if x != nil {
2518		return x.Password
2519	}
2520	return ""
2521}
2522
2523// Unique identifier for the lab device. It can be the DUT serial number
2524// (e.g. "C144091") derived from the DUT itself or some other unique value
2525// regarding different contexts.
2526type Dut_Id struct {
2527	state         protoimpl.MessageState
2528	sizeCache     protoimpl.SizeCache
2529	unknownFields protoimpl.UnknownFields
2530
2531	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
2532}
2533
2534func (x *Dut_Id) Reset() {
2535	*x = Dut_Id{}
2536	if protoimpl.UnsafeEnabled {
2537		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[21]
2538		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2539		ms.StoreMessageInfo(mi)
2540	}
2541}
2542
2543func (x *Dut_Id) String() string {
2544	return protoimpl.X.MessageStringOf(x)
2545}
2546
2547func (*Dut_Id) ProtoMessage() {}
2548
2549func (x *Dut_Id) ProtoReflect() protoreflect.Message {
2550	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[21]
2551	if protoimpl.UnsafeEnabled && x != nil {
2552		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2553		if ms.LoadMessageInfo() == nil {
2554			ms.StoreMessageInfo(mi)
2555		}
2556		return ms
2557	}
2558	return mi.MessageOf(x)
2559}
2560
2561// Deprecated: Use Dut_Id.ProtoReflect.Descriptor instead.
2562func (*Dut_Id) Descriptor() ([]byte, []int) {
2563	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{0, 0}
2564}
2565
2566func (x *Dut_Id) GetValue() string {
2567	if x != nil {
2568		return x.Value
2569	}
2570	return ""
2571}
2572
2573// Chrome OS specific DUT details
2574// Populated by and should be kept in sync with UFS adapter in:
2575// https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/cros/cmd/labservice/internal/ufs/ufs.go
2576// NEXT TAG: 24
2577type Dut_ChromeOS struct {
2578	state         protoimpl.MessageState
2579	sizeCache     protoimpl.SizeCache
2580	unknownFields protoimpl.UnknownFields
2581
2582	// Unique identifiers around the device's hardware, manufacturing, and brand
2583	// configuration.
2584	DeviceConfigId *api.DeviceConfigId `protobuf:"bytes,3,opt,name=device_config_id,json=deviceConfigId,proto3" json:"device_config_id,omitempty"`
2585	// Endpoint for ssh service running on the device
2586	Ssh *IpEndpoint `protobuf:"bytes,2,opt,name=ssh,proto3" json:"ssh,omitempty"`
2587	// ChromeOS DUT name that is usually associated with the hostname.
2588	// Example: "chromeos6-row16-rack11-host1"
2589	Name            string            `protobuf:"bytes,15,opt,name=name,proto3" json:"name,omitempty"`
2590	DutModel        *DutModel         `protobuf:"bytes,14,opt,name=dut_model,json=dutModel,proto3" json:"dut_model,omitempty"`
2591	Servo           *Servo            `protobuf:"bytes,4,opt,name=servo,proto3" json:"servo,omitempty"`
2592	Chameleon       *Chameleon        `protobuf:"bytes,5,opt,name=chameleon,proto3" json:"chameleon,omitempty"`
2593	Rpm             *RPM              `protobuf:"bytes,6,opt,name=rpm,proto3" json:"rpm,omitempty"`
2594	ExternalCameras []*ExternalCamera `protobuf:"bytes,7,rep,name=external_cameras,json=externalCameras,proto3" json:"external_cameras,omitempty"`
2595	Audio           *Audio            `protobuf:"bytes,8,opt,name=audio,proto3" json:"audio,omitempty"`
2596	Wifi            *Wifi             `protobuf:"bytes,9,opt,name=wifi,proto3" json:"wifi,omitempty"`
2597	Touch           *Touch            `protobuf:"bytes,10,opt,name=touch,proto3" json:"touch,omitempty"`
2598	Camerabox       *Camerabox        `protobuf:"bytes,11,opt,name=camerabox,proto3" json:"camerabox,omitempty"`
2599	Cables          []*Cable          `protobuf:"bytes,12,rep,name=cables,proto3" json:"cables,omitempty"`
2600	Cellular        *Cellular         `protobuf:"bytes,13,opt,name=cellular,proto3" json:"cellular,omitempty"`
2601	HwidComponent   []string          `protobuf:"bytes,16,rep,name=hwid_component,json=hwidComponent,proto3" json:"hwid_component,omitempty"`
2602	BluetoothPeers  []*BluetoothPeer  `protobuf:"bytes,17,rep,name=bluetooth_peers,json=bluetoothPeers,proto3" json:"bluetooth_peers,omitempty"`
2603	Sku             string            `protobuf:"bytes,18,opt,name=sku,proto3" json:"sku,omitempty"`
2604	Hwid            string            `protobuf:"bytes,19,opt,name=hwid,proto3" json:"hwid,omitempty"`
2605	Phase           Phase             `protobuf:"varint,20,opt,name=phase,proto3,enum=chromiumos.test.lab.api.Phase" json:"phase,omitempty"`
2606	SimInfos        []*SIMInfo        `protobuf:"bytes,21,rep,name=sim_infos,json=simInfos,proto3" json:"sim_infos,omitempty"`
2607	ModemInfo       *ModemInfo        `protobuf:"bytes,22,opt,name=modem_info,json=modemInfo,proto3" json:"modem_info,omitempty"`
2608	// The host and topology used in peripheral interop test beds.
2609	PasitHost *PasitHost `protobuf:"bytes,23,opt,name=pasit_host,json=pasitHost,proto3" json:"pasit_host,omitempty"`
2610}
2611
2612func (x *Dut_ChromeOS) Reset() {
2613	*x = Dut_ChromeOS{}
2614	if protoimpl.UnsafeEnabled {
2615		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[22]
2616		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2617		ms.StoreMessageInfo(mi)
2618	}
2619}
2620
2621func (x *Dut_ChromeOS) String() string {
2622	return protoimpl.X.MessageStringOf(x)
2623}
2624
2625func (*Dut_ChromeOS) ProtoMessage() {}
2626
2627func (x *Dut_ChromeOS) ProtoReflect() protoreflect.Message {
2628	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[22]
2629	if protoimpl.UnsafeEnabled && x != nil {
2630		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2631		if ms.LoadMessageInfo() == nil {
2632			ms.StoreMessageInfo(mi)
2633		}
2634		return ms
2635	}
2636	return mi.MessageOf(x)
2637}
2638
2639// Deprecated: Use Dut_ChromeOS.ProtoReflect.Descriptor instead.
2640func (*Dut_ChromeOS) Descriptor() ([]byte, []int) {
2641	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{0, 1}
2642}
2643
2644func (x *Dut_ChromeOS) GetDeviceConfigId() *api.DeviceConfigId {
2645	if x != nil {
2646		return x.DeviceConfigId
2647	}
2648	return nil
2649}
2650
2651func (x *Dut_ChromeOS) GetSsh() *IpEndpoint {
2652	if x != nil {
2653		return x.Ssh
2654	}
2655	return nil
2656}
2657
2658func (x *Dut_ChromeOS) GetName() string {
2659	if x != nil {
2660		return x.Name
2661	}
2662	return ""
2663}
2664
2665func (x *Dut_ChromeOS) GetDutModel() *DutModel {
2666	if x != nil {
2667		return x.DutModel
2668	}
2669	return nil
2670}
2671
2672func (x *Dut_ChromeOS) GetServo() *Servo {
2673	if x != nil {
2674		return x.Servo
2675	}
2676	return nil
2677}
2678
2679func (x *Dut_ChromeOS) GetChameleon() *Chameleon {
2680	if x != nil {
2681		return x.Chameleon
2682	}
2683	return nil
2684}
2685
2686func (x *Dut_ChromeOS) GetRpm() *RPM {
2687	if x != nil {
2688		return x.Rpm
2689	}
2690	return nil
2691}
2692
2693func (x *Dut_ChromeOS) GetExternalCameras() []*ExternalCamera {
2694	if x != nil {
2695		return x.ExternalCameras
2696	}
2697	return nil
2698}
2699
2700func (x *Dut_ChromeOS) GetAudio() *Audio {
2701	if x != nil {
2702		return x.Audio
2703	}
2704	return nil
2705}
2706
2707func (x *Dut_ChromeOS) GetWifi() *Wifi {
2708	if x != nil {
2709		return x.Wifi
2710	}
2711	return nil
2712}
2713
2714func (x *Dut_ChromeOS) GetTouch() *Touch {
2715	if x != nil {
2716		return x.Touch
2717	}
2718	return nil
2719}
2720
2721func (x *Dut_ChromeOS) GetCamerabox() *Camerabox {
2722	if x != nil {
2723		return x.Camerabox
2724	}
2725	return nil
2726}
2727
2728func (x *Dut_ChromeOS) GetCables() []*Cable {
2729	if x != nil {
2730		return x.Cables
2731	}
2732	return nil
2733}
2734
2735func (x *Dut_ChromeOS) GetCellular() *Cellular {
2736	if x != nil {
2737		return x.Cellular
2738	}
2739	return nil
2740}
2741
2742func (x *Dut_ChromeOS) GetHwidComponent() []string {
2743	if x != nil {
2744		return x.HwidComponent
2745	}
2746	return nil
2747}
2748
2749func (x *Dut_ChromeOS) GetBluetoothPeers() []*BluetoothPeer {
2750	if x != nil {
2751		return x.BluetoothPeers
2752	}
2753	return nil
2754}
2755
2756func (x *Dut_ChromeOS) GetSku() string {
2757	if x != nil {
2758		return x.Sku
2759	}
2760	return ""
2761}
2762
2763func (x *Dut_ChromeOS) GetHwid() string {
2764	if x != nil {
2765		return x.Hwid
2766	}
2767	return ""
2768}
2769
2770func (x *Dut_ChromeOS) GetPhase() Phase {
2771	if x != nil {
2772		return x.Phase
2773	}
2774	return Phase_PHASE_UNSPECIFIED
2775}
2776
2777func (x *Dut_ChromeOS) GetSimInfos() []*SIMInfo {
2778	if x != nil {
2779		return x.SimInfos
2780	}
2781	return nil
2782}
2783
2784func (x *Dut_ChromeOS) GetModemInfo() *ModemInfo {
2785	if x != nil {
2786		return x.ModemInfo
2787	}
2788	return nil
2789}
2790
2791func (x *Dut_ChromeOS) GetPasitHost() *PasitHost {
2792	if x != nil {
2793		return x.PasitHost
2794	}
2795	return nil
2796}
2797
2798// Android specific DUT details
2799type Dut_Android struct {
2800	state         protoimpl.MessageState
2801	sizeCache     protoimpl.SizeCache
2802	unknownFields protoimpl.UnknownFields
2803
2804	// A hostname of the device that the Android DUT is attached to.
2805	AssociatedHostname *IpEndpoint `protobuf:"bytes,1,opt,name=associated_hostname,json=associatedHostname,proto3" json:"associated_hostname,omitempty"`
2806	// Android DUT name.
2807	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
2808	// A string created by adb to uniquely identify the device.
2809	SerialNumber string    `protobuf:"bytes,3,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
2810	DutModel     *DutModel `protobuf:"bytes,4,opt,name=dut_model,json=dutModel,proto3" json:"dut_model,omitempty"`
2811}
2812
2813func (x *Dut_Android) Reset() {
2814	*x = Dut_Android{}
2815	if protoimpl.UnsafeEnabled {
2816		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[23]
2817		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2818		ms.StoreMessageInfo(mi)
2819	}
2820}
2821
2822func (x *Dut_Android) String() string {
2823	return protoimpl.X.MessageStringOf(x)
2824}
2825
2826func (*Dut_Android) ProtoMessage() {}
2827
2828func (x *Dut_Android) ProtoReflect() protoreflect.Message {
2829	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[23]
2830	if protoimpl.UnsafeEnabled && x != nil {
2831		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2832		if ms.LoadMessageInfo() == nil {
2833			ms.StoreMessageInfo(mi)
2834		}
2835		return ms
2836	}
2837	return mi.MessageOf(x)
2838}
2839
2840// Deprecated: Use Dut_Android.ProtoReflect.Descriptor instead.
2841func (*Dut_Android) Descriptor() ([]byte, []int) {
2842	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{0, 2}
2843}
2844
2845func (x *Dut_Android) GetAssociatedHostname() *IpEndpoint {
2846	if x != nil {
2847		return x.AssociatedHostname
2848	}
2849	return nil
2850}
2851
2852func (x *Dut_Android) GetName() string {
2853	if x != nil {
2854		return x.Name
2855	}
2856	return ""
2857}
2858
2859func (x *Dut_Android) GetSerialNumber() string {
2860	if x != nil {
2861		return x.SerialNumber
2862	}
2863	return ""
2864}
2865
2866func (x *Dut_Android) GetDutModel() *DutModel {
2867	if x != nil {
2868		return x.DutModel
2869	}
2870	return nil
2871}
2872
2873// Devboard specific DUT details
2874type Dut_Devboard struct {
2875	state         protoimpl.MessageState
2876	sizeCache     protoimpl.SizeCache
2877	unknownFields protoimpl.UnknownFields
2878
2879	// The type of devboard, e.g., andreiboard.
2880	BoardType string `protobuf:"bytes,1,opt,name=board_type,json=boardType,proto3" json:"board_type,omitempty"`
2881	// Serial for the UltraDebug interface, if present.
2882	UltradebugSerial string `protobuf:"bytes,2,opt,name=ultradebug_serial,json=ultradebugSerial,proto3" json:"ultradebug_serial,omitempty"`
2883	Servo            *Servo `protobuf:"bytes,3,opt,name=servo,proto3" json:"servo,omitempty"`
2884	// An ID string for the fingerprint module.
2885	FingerprintModuleId string `protobuf:"bytes,4,opt,name=fingerprint_module_id,json=fingerprintModuleId,proto3" json:"fingerprint_module_id,omitempty"`
2886	// Devboard DUT name.
2887	Name     string    `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
2888	DutModel *DutModel `protobuf:"bytes,6,opt,name=dut_model,json=dutModel,proto3" json:"dut_model,omitempty"`
2889}
2890
2891func (x *Dut_Devboard) Reset() {
2892	*x = Dut_Devboard{}
2893	if protoimpl.UnsafeEnabled {
2894		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[24]
2895		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2896		ms.StoreMessageInfo(mi)
2897	}
2898}
2899
2900func (x *Dut_Devboard) String() string {
2901	return protoimpl.X.MessageStringOf(x)
2902}
2903
2904func (*Dut_Devboard) ProtoMessage() {}
2905
2906func (x *Dut_Devboard) ProtoReflect() protoreflect.Message {
2907	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[24]
2908	if protoimpl.UnsafeEnabled && x != nil {
2909		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2910		if ms.LoadMessageInfo() == nil {
2911			ms.StoreMessageInfo(mi)
2912		}
2913		return ms
2914	}
2915	return mi.MessageOf(x)
2916}
2917
2918// Deprecated: Use Dut_Devboard.ProtoReflect.Descriptor instead.
2919func (*Dut_Devboard) Descriptor() ([]byte, []int) {
2920	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{0, 3}
2921}
2922
2923func (x *Dut_Devboard) GetBoardType() string {
2924	if x != nil {
2925		return x.BoardType
2926	}
2927	return ""
2928}
2929
2930func (x *Dut_Devboard) GetUltradebugSerial() string {
2931	if x != nil {
2932		return x.UltradebugSerial
2933	}
2934	return ""
2935}
2936
2937func (x *Dut_Devboard) GetServo() *Servo {
2938	if x != nil {
2939		return x.Servo
2940	}
2941	return nil
2942}
2943
2944func (x *Dut_Devboard) GetFingerprintModuleId() string {
2945	if x != nil {
2946		return x.FingerprintModuleId
2947	}
2948	return ""
2949}
2950
2951func (x *Dut_Devboard) GetName() string {
2952	if x != nil {
2953		return x.Name
2954	}
2955	return ""
2956}
2957
2958func (x *Dut_Devboard) GetDutModel() *DutModel {
2959	if x != nil {
2960		return x.DutModel
2961	}
2962	return nil
2963}
2964
2965// Unique identifier for a given dut topology (schedulable lab unit)
2966type DutTopology_Id struct {
2967	state         protoimpl.MessageState
2968	sizeCache     protoimpl.SizeCache
2969	unknownFields protoimpl.UnknownFields
2970
2971	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
2972}
2973
2974func (x *DutTopology_Id) Reset() {
2975	*x = DutTopology_Id{}
2976	if protoimpl.UnsafeEnabled {
2977		mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[25]
2978		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2979		ms.StoreMessageInfo(mi)
2980	}
2981}
2982
2983func (x *DutTopology_Id) String() string {
2984	return protoimpl.X.MessageStringOf(x)
2985}
2986
2987func (*DutTopology_Id) ProtoMessage() {}
2988
2989func (x *DutTopology_Id) ProtoReflect() protoreflect.Message {
2990	mi := &file_chromiumos_test_lab_api_dut_proto_msgTypes[25]
2991	if protoimpl.UnsafeEnabled && x != nil {
2992		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2993		if ms.LoadMessageInfo() == nil {
2994			ms.StoreMessageInfo(mi)
2995		}
2996		return ms
2997	}
2998	return mi.MessageOf(x)
2999}
3000
3001// Deprecated: Use DutTopology_Id.ProtoReflect.Descriptor instead.
3002func (*DutTopology_Id) Descriptor() ([]byte, []int) {
3003	return file_chromiumos_test_lab_api_dut_proto_rawDescGZIP(), []int{2, 0}
3004}
3005
3006func (x *DutTopology_Id) GetValue() string {
3007	if x != nil {
3008		return x.Value
3009	}
3010	return ""
3011}
3012
3013var File_chromiumos_test_lab_api_dut_proto protoreflect.FileDescriptor
3014
3015var file_chromiumos_test_lab_api_dut_proto_rawDesc = []byte{
3016	0x0a, 0x21, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73,
3017	0x74, 0x2f, 0x6c, 0x61, 0x62, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x75, 0x74, 0x2e, 0x70, 0x72,
3018	0x6f, 0x74, 0x6f, 0x12, 0x17, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e,
3019	0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x2c, 0x63, 0x68,
3020	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
3021	0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
3022	0x67, 0x5f, 0x69, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x68, 0x72, 0x6f,
3023	0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x6c, 0x61, 0x62, 0x2f,
3024	0x61, 0x70, 0x69, 0x2f, 0x69, 0x70, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e,
3025	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f,
3026	0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x6c, 0x61, 0x62, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70,
3027	0x61, 0x73, 0x69, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
3028	0x29, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74,
3029	0x2f, 0x6c, 0x61, 0x62, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x72, 0x6f,
3030	0x75, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x11, 0x0a, 0x03, 0x44,
3031	0x75, 0x74, 0x12, 0x2f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,
3032	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3033	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x74, 0x2e, 0x49, 0x64, 0x52,
3034	0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x08, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x6f, 0x73, 0x18,
3035	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
3036	0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e,
3037	0x44, 0x75, 0x74, 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x4f, 0x53, 0x48, 0x00, 0x52, 0x08,
3038	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x6f, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x6e, 0x64, 0x72,
3039	0x6f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x72, 0x6f,
3040	0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e,
3041	0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x74, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x48,
3042	0x00, 0x52, 0x07, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x08, 0x64, 0x65,
3043	0x76, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63,
3044	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c,
3045	0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x74, 0x2e, 0x44, 0x65, 0x76, 0x62, 0x6f,
3046	0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x08, 0x64, 0x65, 0x76, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12,
3047	0x47, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18,
3048	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
3049	0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e,
3050	0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0b, 0x63, 0x61, 0x63,
3051	0x68, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0b, 0x77, 0x69, 0x66, 0x69,
3052	0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,
3053	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
3054	0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x63, 0x72,
3055	0x65, 0x74, 0x52, 0x0a, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x1a,
3056	0x0a, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20,
3057	0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xd9, 0x09, 0x0a, 0x08, 0x43,
3058	0x68, 0x72, 0x6f, 0x6d, 0x65, 0x4f, 0x53, 0x12, 0x4f, 0x0a, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63,
3059	0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
3060	0x0b, 0x32, 0x25, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x63,
3061	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
3062	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
3063	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x03, 0x73, 0x73, 0x68, 0x18,
3064	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
3065	0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e,
3066	0x49, 0x70, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x03, 0x73, 0x73, 0x68, 0x12,
3067	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
3068	0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
3069	0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75,
3070	0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69,
3071	0x2e, 0x44, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x08, 0x64, 0x75, 0x74, 0x4d, 0x6f,
3072	0x64, 0x65, 0x6c, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x65, 0x72, 0x76, 0x6f, 0x18, 0x04, 0x20, 0x01,
3073	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e,
3074	0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72,
3075	0x76, 0x6f, 0x52, 0x05, 0x73, 0x65, 0x72, 0x76, 0x6f, 0x12, 0x40, 0x0a, 0x09, 0x63, 0x68, 0x61,
3076	0x6d, 0x65, 0x6c, 0x65, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63,
3077	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c,
3078	0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x61, 0x6d, 0x65, 0x6c, 0x65, 0x6f, 0x6e,
3079	0x52, 0x09, 0x63, 0x68, 0x61, 0x6d, 0x65, 0x6c, 0x65, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x03, 0x72,
3080	0x70, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
3081	0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61,
3082	0x70, 0x69, 0x2e, 0x52, 0x50, 0x4d, 0x52, 0x03, 0x72, 0x70, 0x6d, 0x12, 0x52, 0x0a, 0x10, 0x65,
3083	0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x18,
3084	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
3085	0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e,
3086	0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x0f,
3087	0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x73, 0x12,
3088	0x34, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
3089	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3090	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x52, 0x05,
3091	0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x31, 0x0a, 0x04, 0x77, 0x69, 0x66, 0x69, 0x18, 0x09, 0x20,
3092	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73,
3093	0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x69,
3094	0x66, 0x69, 0x52, 0x04, 0x77, 0x69, 0x66, 0x69, 0x12, 0x34, 0x0a, 0x05, 0x74, 0x6f, 0x75, 0x63,
3095	0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
3096	0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70,
3097	0x69, 0x2e, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x05, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x12, 0x40,
3098	0x0a, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x62, 0x6f, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28,
3099	0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74,
3100	0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x6d, 0x65,
3101	0x72, 0x61, 0x62, 0x6f, 0x78, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x62, 0x6f, 0x78,
3102	0x12, 0x36, 0x0a, 0x06, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b,
3103	0x32, 0x1e, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65,
3104	0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x62, 0x6c, 0x65,
3105	0x52, 0x06, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x63, 0x65, 0x6c, 0x6c,
3106	0x75, 0x6c, 0x61, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x72,
3107	0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62,
3108	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x63,
3109	0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x77, 0x69, 0x64, 0x5f,
3110	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52,
3111	0x0d, 0x68, 0x77, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x4f,
3112	0x0a, 0x0f, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x70, 0x65, 0x65, 0x72,
3113	0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
3114	0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70,
3115	0x69, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x50, 0x65, 0x65, 0x72, 0x52,
3116	0x0e, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12,
3117	0x10, 0x0a, 0x03, 0x73, 0x6b, 0x75, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x6b,
3118	0x75, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x77, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52,
3119	0x04, 0x68, 0x77, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x14,
3120	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f,
3121	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50,
3122	0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x73,
3123	0x69, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
3124	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3125	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x49, 0x4d, 0x49, 0x6e, 0x66, 0x6f,
3126	0x52, 0x08, 0x73, 0x69, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x6d, 0x6f,
3127	0x64, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
3128	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3129	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x49, 0x6e,
3130	0x66, 0x6f, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a,
3131	0x0a, 0x70, 0x61, 0x73, 0x69, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28,
3132	0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74,
3133	0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x61, 0x73, 0x69,
3134	0x74, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x09, 0x70, 0x61, 0x73, 0x69, 0x74, 0x48, 0x6f, 0x73, 0x74,
3135	0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x1a, 0xd8, 0x01, 0x0a, 0x07, 0x41, 0x6e, 0x64, 0x72, 0x6f,
3136	0x69, 0x64, 0x12, 0x54, 0x0a, 0x13, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64,
3137	0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
3138	0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73,
3139	0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x70, 0x45, 0x6e, 0x64, 0x70,
3140	0x6f, 0x69, 0x6e, 0x74, 0x52, 0x12, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64,
3141	0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
3142	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d,
3143	0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20,
3144	0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65,
3145	0x72, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x75, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x04,
3146	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f,
3147	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44,
3148	0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x08, 0x64, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65,
3149	0x6c, 0x1a, 0x94, 0x02, 0x0a, 0x08, 0x44, 0x65, 0x76, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x1d,
3150	0x0a, 0x0a, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
3151	0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a,
3152	0x11, 0x75, 0x6c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x69,
3153	0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6c, 0x74, 0x72, 0x61, 0x64,
3154	0x65, 0x62, 0x75, 0x67, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x65,
3155	0x72, 0x76, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x72, 0x6f,
3156	0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e,
3157	0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x6f, 0x52, 0x05, 0x73, 0x65, 0x72, 0x76, 0x6f,
3158	0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x5f,
3159	0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
3160	0x13, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x75,
3161	0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
3162	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x75, 0x74, 0x5f,
3163	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68,
3164	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61,
3165	0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x08,
3166	0x64, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x75, 0x74, 0x5f,
3167	0x74, 0x79, 0x70, 0x65, 0x22, 0x4c, 0x0a, 0x08, 0x44, 0x75, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
3168	0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
3169	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x61, 0x72,
3170	0x67, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d,
3171	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61,
3172	0x6d, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0b, 0x44, 0x75, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f,
3173	0x67, 0x79, 0x12, 0x37, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
3174	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3175	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x74, 0x54, 0x6f, 0x70, 0x6f,
3176	0x6c, 0x6f, 0x67, 0x79, 0x2e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x64,
3177	0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x72, 0x6f,
3178	0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e,
3179	0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x74, 0x52, 0x04, 0x64, 0x75, 0x74, 0x73, 0x1a, 0x1a, 0x0a,
3180	0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
3181	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a,
3182	0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x3a, 0x0a, 0x05, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x1b,
3183	0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28,
3184	0x08, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x42, 0x6f, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x61,
3185	0x74, 0x72, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x74, 0x72, 0x75,
3186	0x73, 0x22, 0x9b, 0x01, 0x0a, 0x05, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x74,
3187	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f,
3188	0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e,
3189	0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
3190	0x74, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10,
3191	0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
3192	0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x4a, 0x41, 0x43, 0x4b, 0x10,
3193	0x01, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x53, 0x42, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x02, 0x12,
3194	0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x42, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03,
3195	0x12, 0x0d, 0x0a, 0x09, 0x48, 0x44, 0x4d, 0x49, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x04, 0x22,
3196	0x4c, 0x0a, 0x0b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3d,
3197	0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
3198	0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73,
3199	0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x70, 0x45, 0x6e, 0x64, 0x70,
3200	0x6f, 0x69, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x85, 0x01,
3201	0x0a, 0x09, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x62, 0x6f, 0x78, 0x12, 0x41, 0x0a, 0x06, 0x66,
3202	0x61, 0x63, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x68,
3203	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61,
3204	0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x62, 0x6f, 0x78, 0x2e,
3205	0x46, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x22, 0x35,
3206	0x0a, 0x06, 0x46, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x41, 0x43, 0x49,
3207	0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
3208	0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x52,
3209	0x4f, 0x4e, 0x54, 0x10, 0x02, 0x22, 0xb7, 0x01, 0x0a, 0x08, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c,
3210	0x61, 0x72, 0x12, 0x48, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18,
3211	0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
3212	0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e,
3213	0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
3214	0x72, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07,
3215	0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
3216	0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x22, 0x47, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
3217	0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55,
3218	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
3219	0x41, 0x54, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x45, 0x52, 0x49, 0x5a, 0x4f, 0x4e,
3220	0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x22,
3221	0xc2, 0x01, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a,
3222	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x68,
3223	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61,
3224	0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52,
3225	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6d, 0x65, 0x69, 0x18, 0x02, 0x20,
3226	0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6d, 0x65, 0x69, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x70,
3227	0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01,
3228	0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x61, 0x6e,
3229	0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
3230	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x69, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
3231	0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
3232	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x61, 0x72,
3233	0x69, 0x61, 0x6e, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x07, 0x53, 0x49, 0x4d, 0x49, 0x6e, 0x66, 0x6f,
3234	0x12, 0x17, 0x0a, 0x07, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
3235	0x05, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70,
3236	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
3237	0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70,
3238	0x69, 0x2e, 0x53, 0x49, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
3239	0x10, 0x0a, 0x03, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x69,
3240	0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x73, 0x69, 0x6d, 0x18, 0x04,
3241	0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x45, 0x73, 0x69, 0x6d, 0x12, 0x4a,
3242	0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05,
3243	0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f,
3244	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53,
3245	0x49, 0x4d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x70,
3246	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x86, 0x04, 0x0a, 0x0e, 0x53,
3247	0x49, 0x4d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a,
3248	0x05, 0x69, 0x63, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x63,
3249	0x63, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x69, 0x6d, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x02,
3250	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x69, 0x6d, 0x50, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07,
3251	0x73, 0x69, 0x6d, 0x5f, 0x70, 0x75, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
3252	0x69, 0x6d, 0x50, 0x75, 0x6b, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72,
3253	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x68,
3254	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61,
3255	0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f,
3256	0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0b, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x4e, 0x61,
3257	0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
3258	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65,
3259	0x72, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
3260	0x32, 0x2d, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65,
3261	0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x49, 0x4d, 0x50, 0x72,
3262	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
3263	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
3264	0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
3265	0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61,
3266	0x70, 0x69, 0x2e, 0x53, 0x49, 0x4d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66,
3267	0x6f, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75,
3268	0x72, 0x65, 0x73, 0x22, 0x5f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b,
3269	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a,
3270	0x06, 0x42, 0x52, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x43,
3271	0x4b, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x4e, 0x45, 0x54, 0x57,
3272	0x4f, 0x52, 0x4b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x4f, 0x52, 0x4b, 0x49, 0x4e, 0x47,
3273	0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x52, 0x4f, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46,
3274	0x49, 0x47, 0x10, 0x05, 0x22, 0x4d, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
3275	0x17, 0x0a, 0x13, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
3276	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x45, 0x41, 0x54,
3277	0x55, 0x52, 0x45, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b,
3278	0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x4d,
3279	0x53, 0x10, 0x02, 0x22, 0xdd, 0x03, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6d, 0x65, 0x6c, 0x65, 0x6f,
3280	0x6e, 0x12, 0x4f, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73,
3281	0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75,
3282	0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69,
3283	0x2e, 0x43, 0x68, 0x61, 0x6d, 0x65, 0x6c, 0x65, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x70,
3284	0x68, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61,
3285	0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x62, 0x6f, 0x61, 0x72,
3286	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x42, 0x6f,
3287	0x61, 0x72, 0x64, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
3288	0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e,
3289	0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72,
3290	0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
3291	0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18,
3292	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12,
3293	0x3d, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27,
3294	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3295	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x61, 0x6d, 0x65, 0x6c, 0x65,
3296	0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x94,
3297	0x01, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x1a, 0x0a,
3298	0x16, 0x50, 0x45, 0x52, 0x49, 0x50, 0x48, 0x45, 0x52, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50,
3299	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x54, 0x5f,
3300	0x48, 0x49, 0x44, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x44, 0x50, 0x10, 0x02, 0x12, 0x0b, 0x0a,
3301	0x07, 0x44, 0x50, 0x5f, 0x48, 0x44, 0x4d, 0x49, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x47,
3302	0x41, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x44, 0x4d, 0x49, 0x10, 0x05, 0x12, 0x0e, 0x0a,
3303	0x0a, 0x42, 0x54, 0x5f, 0x42, 0x4c, 0x45, 0x5f, 0x48, 0x49, 0x44, 0x10, 0x06, 0x12, 0x10, 0x0a,
3304	0x0c, 0x42, 0x54, 0x5f, 0x41, 0x32, 0x44, 0x50, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x10, 0x07, 0x12,
3305	0x0b, 0x0a, 0x07, 0x42, 0x54, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03,
3306	0x52, 0x50, 0x49, 0x10, 0x09, 0x22, 0x2c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a,
3307	0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
3308	0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x56, 0x32, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x56,
3309	0x33, 0x10, 0x02, 0x22, 0x89, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
3310	0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
3311	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f,
3312	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45,
3313	0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x2e, 0x54, 0x79,
3314	0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x35, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
3315	0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
3316	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x55, 0x44, 0x44, 0x4c, 0x59,
3317	0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x54, 0x5a, 0x50, 0x52, 0x4f, 0x32, 0x10, 0x02, 0x22,
3318	0xf2, 0x02, 0x0a, 0x03, 0x52, 0x50, 0x4d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65,
3319	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e,
3320	0x74, 0x12, 0x4e, 0x0a, 0x10, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x64,
3321	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68,
3322	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61,
3323	0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x70, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
3324	0x52, 0x0f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
3325	0x73, 0x12, 0x53, 0x0a, 0x13, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f,
3326	0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
3327	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3328	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x70, 0x45, 0x6e, 0x64, 0x70, 0x6f,
3329	0x69, 0x6e, 0x74, 0x52, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x48, 0x6f,
3330	0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f,
3331	0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x6c, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
3332	0x09, 0x52, 0x0f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x6c,
3333	0x65, 0x74, 0x12, 0x4a, 0x0a, 0x0e, 0x68, 0x79, 0x64, 0x72, 0x61, 0x5f, 0x68, 0x6f, 0x73, 0x74,
3334	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x72,
3335	0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62,
3336	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x70, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52,
3337	0x0d, 0x68, 0x79, 0x64, 0x72, 0x61, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34,
3338	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63,
3339	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c,
3340	0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x50, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
3341	0x74, 0x79, 0x70, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x05, 0x53, 0x65, 0x72, 0x76, 0x6f, 0x12, 0x18,
3342	0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
3343	0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76,
3344	0x6f, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
3345	0x32, 0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65,
3346	0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x70, 0x45, 0x6e, 0x64,
3347	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x6f, 0x64, 0x41, 0x64, 0x64,
3348	0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x03,
3349	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x05,
3350	0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x68,
3351	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61,
3352	0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c,
3353	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x1b, 0x0a, 0x05,
3354	0x54, 0x6f, 0x75, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x69, 0x6d, 0x6f, 0x18, 0x01, 0x20,
3355	0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x69, 0x6d, 0x6f, 0x22, 0xc4, 0x02, 0x0a, 0x04, 0x57, 0x69,
3356	0x66, 0x69, 0x12, 0x4b, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
3357	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
3358	0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70,
3359	0x69, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
3360	0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12,
3361	0x3e, 0x0a, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
3362	0x32, 0x24, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65,
3363	0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x41,
3364	0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x52, 0x07, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x12,
3365	0x46, 0x0a, 0x0c, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18,
3366	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
3367	0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e,
3368	0x57, 0x69, 0x66, 0x69, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x66, 0x69,
3369	0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x22, 0x67, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72,
3370	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f,
3371	0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
3372	0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10,
3373	0x01, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x49, 0x46, 0x49, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x10, 0x02,
3374	0x12, 0x09, 0x0a, 0x05, 0x43, 0x48, 0x41, 0x4f, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x52,
3375	0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x31, 0x41, 0x58, 0x10, 0x04,
3376	0x22, 0xa1, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x66, 0x69, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61,
3377	0x12, 0x4f, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
3378	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f,
3379	0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x57,
3380	0x69, 0x66, 0x69, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
3381	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
3382	0x6e, 0x22, 0x41, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
3383	0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e,
3384	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x43,
3385	0x4f, 0x4e, 0x44, 0x55, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4f,
3386	0x54, 0x41, 0x10, 0x02, 0x22, 0xd9, 0x02, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x52, 0x6f, 0x75,
3387	0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18,
3388	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12,
3389	0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28,
3390	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74,
3391	0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65,
3392	0x72, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
3393	0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
3394	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x03, 0x72, 0x70, 0x6d, 0x18, 0x04, 0x20, 0x01,
3395	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e,
3396	0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x50, 0x4d,
3397	0x52, 0x03, 0x72, 0x70, 0x6d, 0x12, 0x59, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
3398	0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
3399	0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74,
3400	0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x69, 0x66, 0x69,
3401	0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x11, 0x73,
3402	0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
3403	0x12, 0x4e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
3404	0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
3405	0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e,
3406	0x57, 0x69, 0x66, 0x69, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
3407	0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
3408	0x22, 0x6b, 0x0a, 0x0d, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x50, 0x65, 0x65,
3409	0x72, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
3410	0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a,
3411	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63,
3412	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x6c,
3413	0x61, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61,
3414	0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a,
3415	0x0a, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73,
3416	0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64, 0x12,
3417	0x1a, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
3418	0x09, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70,
3419	0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
3420	0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0xbe, 0x02, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65,
3421	0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54,
3422	0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
3423	0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
3424	0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x1e, 0x0a,
3425	0x1a, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x41, 0x4c,
3426	0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x53, 0x43, 0x37, 0x31, 0x38, 0x30, 0x10, 0x01, 0x12, 0x1e, 0x0a,
3427	0x1a, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x42, 0x4f,
3428	0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x4c, 0x38, 0x35, 0x30, 0x47, 0x4c, 0x10, 0x02, 0x12, 0x14, 0x0a,
3429	0x10, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4c, 0x36, 0x36,
3430	0x38, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50,
3431	0x45, 0x5f, 0x46, 0x4d, 0x33, 0x35, 0x30, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44,
3432	0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4d, 0x31, 0x30, 0x31, 0x10, 0x05, 0x12,
3433	0x1e, 0x0a, 0x1a, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55,
3434	0x41, 0x4c, 0x43, 0x4f, 0x4d, 0x4d, 0x5f, 0x53, 0x43, 0x37, 0x32, 0x38, 0x30, 0x10, 0x06, 0x12,
3435	0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4d,
3436	0x30, 0x36, 0x30, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54,
3437	0x59, 0x50, 0x45, 0x5f, 0x52, 0x57, 0x31, 0x30, 0x31, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x4d,
3438	0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x57, 0x31, 0x33, 0x35, 0x10,
3439	0x0a, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x44, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
3440	0x4c, 0x43, 0x55, 0x4b, 0x35, 0x34, 0x10, 0x0b, 0x2a, 0xc1, 0x03, 0x0a, 0x0f, 0x4e, 0x65, 0x74,
3441	0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x11, 0x0a, 0x0d,
3442	0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x00, 0x12,
3443	0x17, 0x0a, 0x13, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50,
3444	0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x54, 0x57,
3445	0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x45,
3446	0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4e,
3447	0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x10, 0x03,
3448	0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x56, 0x45, 0x52, 0x49,
3449	0x5a, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b,
3450	0x5f, 0x53, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x45, 0x54,
3451	0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x4f, 0x43, 0x4f, 0x4d, 0x4f, 0x10, 0x07, 0x12, 0x14, 0x0a,
3452	0x10, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x53, 0x4f, 0x46, 0x54, 0x42, 0x41, 0x4e,
3453	0x4b, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4b,
3454	0x44, 0x44, 0x49, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b,
3455	0x5f, 0x52, 0x41, 0x4b, 0x55, 0x54, 0x45, 0x4e, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x45,
3456	0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x56, 0x4f, 0x44, 0x41, 0x46, 0x4f, 0x4e, 0x45, 0x10, 0x0b,
3457	0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x45, 0x10, 0x0c,
3458	0x12, 0x15, 0x0a, 0x11, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x41, 0x4d, 0x41, 0x52,
3459	0x49, 0x53, 0x4f, 0x46, 0x54, 0x10, 0x0d, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x45, 0x54, 0x57, 0x4f,
3460	0x52, 0x4b, 0x5f, 0x52, 0x4f, 0x47, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45,
3461	0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x42, 0x45, 0x4c, 0x4c, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d,
3462	0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x45, 0x4c, 0x55, 0x53, 0x10, 0x10, 0x12,
3463	0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x46, 0x49, 0x10, 0x11, 0x12,
3464	0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x42, 0x52, 0x53, 0x10,
3465	0x12, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4c, 0x49, 0x4e,
3466	0x45, 0x4d, 0x4f, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b,
3467	0x5f, 0x50, 0x4f, 0x56, 0x4f, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x54, 0x57, 0x4f,
3468	0x52, 0x4b, 0x5f, 0x48, 0x41, 0x4e, 0x53, 0x48, 0x49, 0x4e, 0x10, 0x15, 0x2a, 0x3d, 0x0a, 0x07,
3469	0x53, 0x49, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49, 0x4d, 0x5f, 0x55,
3470	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x49, 0x4d, 0x5f,
3471	0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49,
3472	0x4d, 0x5f, 0x44, 0x49, 0x47, 0x49, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x49, 0x0a, 0x07, 0x52,
3473	0x50, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x50, 0x4d, 0x5f, 0x54, 0x59,
3474	0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,
3475	0x52, 0x50, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10,
3476	0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x50, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50,
3477	0x39, 0x38, 0x35, 0x30, 0x10, 0x02, 0x2a, 0x60, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68,
3478	0x65, 0x72, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x45, 0x52,
3479	0x49, 0x50, 0x48, 0x45, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e,
3480	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57,
3481	0x4f, 0x52, 0x4b, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x52, 0x4f, 0x4b,
3482	0x45, 0x4e, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x50, 0x50, 0x4c,
3483	0x49, 0x43, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0xfb, 0x03, 0x0a, 0x05, 0x50, 0x68, 0x61,
3484	0x73, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
3485	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x56, 0x54,
3486	0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x56, 0x54, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x11, 0x0a,
3487	0x0d, 0x44, 0x56, 0x54, 0x5f, 0x32, 0x5f, 0x4d, 0x50, 0x53, 0x5f, 0x4c, 0x54, 0x45, 0x10, 0x03,
3488	0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x56, 0x54, 0x5f, 0x42, 0x49, 0x50, 0x53, 0x48, 0x49, 0x50, 0x10,
3489	0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x56, 0x54, 0x5f, 0x42, 0x4f, 0x4f, 0x4b, 0x45, 0x4d, 0x10,
3490	0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x56, 0x54, 0x5f, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x52, 0x4f,
3491	0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x56, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x10,
3492	0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x56, 0x54, 0x5f, 0x4f, 0x53, 0x43, 0x49, 0x4e, 0x4f, 0x10,
3493	0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x56, 0x54, 0x5f, 0x52, 0x45, 0x4b, 0x53, 0x31, 0x34, 0x10,
3494	0x09, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x56, 0x54, 0x5f, 0x52, 0x45, 0x4b, 0x53, 0x31, 0x34, 0x5f,
3495	0x54, 0x4f, 0x55, 0x43, 0x48, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x56, 0x54, 0x5f, 0x54,
3496	0x4f, 0x55, 0x43, 0x48, 0x10, 0x0b, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x56, 0x54, 0x10, 0x0c, 0x12,
3497	0x11, 0x0a, 0x0d, 0x45, 0x56, 0x54, 0x5f, 0x46, 0x4c, 0x45, 0x45, 0x58, 0x5f, 0x4c, 0x54, 0x45,
3498	0x10, 0x0d, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x56, 0x54, 0x5f, 0x48, 0x51, 0x10, 0x0e, 0x12, 0x0b,
3499	0x0a, 0x07, 0x45, 0x56, 0x54, 0x5f, 0x4c, 0x54, 0x45, 0x10, 0x0f, 0x12, 0x0d, 0x0a, 0x09, 0x45,
3500	0x56, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x4c, 0x45, 0x10, 0x10, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x56,
3501	0x54, 0x5f, 0x50, 0x55, 0x4a, 0x4a, 0x4f, 0x10, 0x11, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f,
3502	0x54, 0x4f, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x31, 0x10, 0x13,
3503	0x12, 0x07, 0x0a, 0x03, 0x50, 0x56, 0x54, 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x56, 0x54,
3504	0x5f, 0x54, 0x45, 0x52, 0x52, 0x41, 0x33, 0x10, 0x15, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x56, 0x54,
3505	0x5f, 0x55, 0x53, 0x10, 0x16, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x56, 0x54, 0x5f, 0x32, 0x10, 0x17,
3506	0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x56, 0x54, 0x5f, 0x42, 0x4f, 0x4f, 0x4b, 0x45, 0x4d, 0x10, 0x18,
3507	0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x56, 0x54, 0x5f, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x52, 0x4f, 0x10,
3508	0x19, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x56, 0x54, 0x5f, 0x47, 0x49, 0x4b, 0x33, 0x36, 0x30, 0x10,
3509	0x1a, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x56, 0x54, 0x5f, 0x4c, 0x49, 0x4c, 0x49, 0x10, 0x1b, 0x12,
3510	0x0b, 0x0a, 0x07, 0x50, 0x56, 0x54, 0x5f, 0x4c, 0x54, 0x45, 0x10, 0x1c, 0x12, 0x0f, 0x0a, 0x0b,
3511	0x50, 0x56, 0x54, 0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x43, 0x50, 0x55, 0x10, 0x1d, 0x12, 0x0c, 0x0a,
3512	0x08, 0x50, 0x56, 0x54, 0x5f, 0x53, 0x41, 0x4e, 0x44, 0x10, 0x1e, 0x12, 0x11, 0x0a, 0x0d, 0x50,
3513	0x56, 0x54, 0x5f, 0x54, 0x55, 0x4e, 0x45, 0x5f, 0x42, 0x49, 0x54, 0x53, 0x10, 0x1f, 0x12, 0x0e,
3514	0x0a, 0x0a, 0x50, 0x56, 0x54, 0x5f, 0x54, 0x45, 0x4c, 0x45, 0x53, 0x55, 0x10, 0x20, 0x12, 0x06,
3515	0x0a, 0x02, 0x53, 0x52, 0x10, 0x21, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72,
3516	0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
3517	0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6f, 0x2f, 0x74,
3518	0x65, 0x73, 0x74, 0x2f, 0x6c, 0x61, 0x62, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f,
3519	0x74, 0x6f, 0x33,
3520}
3521
3522var (
3523	file_chromiumos_test_lab_api_dut_proto_rawDescOnce sync.Once
3524	file_chromiumos_test_lab_api_dut_proto_rawDescData = file_chromiumos_test_lab_api_dut_proto_rawDesc
3525)
3526
3527func file_chromiumos_test_lab_api_dut_proto_rawDescGZIP() []byte {
3528	file_chromiumos_test_lab_api_dut_proto_rawDescOnce.Do(func() {
3529		file_chromiumos_test_lab_api_dut_proto_rawDescData = protoimpl.X.CompressGZIP(file_chromiumos_test_lab_api_dut_proto_rawDescData)
3530	})
3531	return file_chromiumos_test_lab_api_dut_proto_rawDescData
3532}
3533
3534var file_chromiumos_test_lab_api_dut_proto_enumTypes = make([]protoimpl.EnumInfo, 16)
3535var file_chromiumos_test_lab_api_dut_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
3536var file_chromiumos_test_lab_api_dut_proto_goTypes = []interface{}{
3537	(ModemType)(0),              // 0: chromiumos.test.lab.api.ModemType
3538	(NetworkProvider)(0),        // 1: chromiumos.test.lab.api.NetworkProvider
3539	(SIMType)(0),                // 2: chromiumos.test.lab.api.SIMType
3540	(RPMType)(0),                // 3: chromiumos.test.lab.api.RPMType
3541	(PeripheralState)(0),        // 4: chromiumos.test.lab.api.PeripheralState
3542	(Phase)(0),                  // 5: chromiumos.test.lab.api.Phase
3543	(Cable_Type)(0),             // 6: chromiumos.test.lab.api.Cable.Type
3544	(Camerabox_Facing)(0),       // 7: chromiumos.test.lab.api.Camerabox.Facing
3545	(Cellular_Operator)(0),      // 8: chromiumos.test.lab.api.Cellular.Operator
3546	(SIMProfileInfo_State)(0),   // 9: chromiumos.test.lab.api.SIMProfileInfo.State
3547	(SIMProfileInfo_Feature)(0), // 10: chromiumos.test.lab.api.SIMProfileInfo.Feature
3548	(Chameleon_Peripheral)(0),   // 11: chromiumos.test.lab.api.Chameleon.Peripheral
3549	(Chameleon_Type)(0),         // 12: chromiumos.test.lab.api.Chameleon.Type
3550	(ExternalCamera_Type)(0),    // 13: chromiumos.test.lab.api.ExternalCamera.Type
3551	(Wifi_Environment)(0),       // 14: chromiumos.test.lab.api.Wifi.Environment
3552	(WifiAntenna_Connection)(0), // 15: chromiumos.test.lab.api.WifiAntenna.Connection
3553	(*Dut)(nil),                 // 16: chromiumos.test.lab.api.Dut
3554	(*DutModel)(nil),            // 17: chromiumos.test.lab.api.DutModel
3555	(*DutTopology)(nil),         // 18: chromiumos.test.lab.api.DutTopology
3556	(*Audio)(nil),               // 19: chromiumos.test.lab.api.Audio
3557	(*Cable)(nil),               // 20: chromiumos.test.lab.api.Cable
3558	(*CacheServer)(nil),         // 21: chromiumos.test.lab.api.CacheServer
3559	(*Camerabox)(nil),           // 22: chromiumos.test.lab.api.Camerabox
3560	(*Cellular)(nil),            // 23: chromiumos.test.lab.api.Cellular
3561	(*ModemInfo)(nil),           // 24: chromiumos.test.lab.api.ModemInfo
3562	(*SIMInfo)(nil),             // 25: chromiumos.test.lab.api.SIMInfo
3563	(*SIMProfileInfo)(nil),      // 26: chromiumos.test.lab.api.SIMProfileInfo
3564	(*Chameleon)(nil),           // 27: chromiumos.test.lab.api.Chameleon
3565	(*ExternalCamera)(nil),      // 28: chromiumos.test.lab.api.ExternalCamera
3566	(*RPM)(nil),                 // 29: chromiumos.test.lab.api.RPM
3567	(*Servo)(nil),               // 30: chromiumos.test.lab.api.Servo
3568	(*Touch)(nil),               // 31: chromiumos.test.lab.api.Touch
3569	(*Wifi)(nil),                // 32: chromiumos.test.lab.api.Wifi
3570	(*WifiAntenna)(nil),         // 33: chromiumos.test.lab.api.WifiAntenna
3571	(*WifiRouter)(nil),          // 34: chromiumos.test.lab.api.WifiRouter
3572	(*BluetoothPeer)(nil),       // 35: chromiumos.test.lab.api.BluetoothPeer
3573	(*WifiSecret)(nil),          // 36: chromiumos.test.lab.api.WifiSecret
3574	(*Dut_Id)(nil),              // 37: chromiumos.test.lab.api.Dut.Id
3575	(*Dut_ChromeOS)(nil),        // 38: chromiumos.test.lab.api.Dut.ChromeOS
3576	(*Dut_Android)(nil),         // 39: chromiumos.test.lab.api.Dut.Android
3577	(*Dut_Devboard)(nil),        // 40: chromiumos.test.lab.api.Dut.Devboard
3578	(*DutTopology_Id)(nil),      // 41: chromiumos.test.lab.api.DutTopology.Id
3579	(*IpEndpoint)(nil),          // 42: chromiumos.test.lab.api.IpEndpoint
3580	(WifiRouterFeature)(0),      // 43: chromiumos.test.lab.api.WifiRouterFeature
3581	(WifiRouterDeviceType)(0),   // 44: chromiumos.test.lab.api.WifiRouterDeviceType
3582	(*api.DeviceConfigId)(nil),  // 45: chromiumos.config.api.DeviceConfigId
3583	(*PasitHost)(nil),           // 46: chromiumos.test.lab.api.PasitHost
3584}
3585var file_chromiumos_test_lab_api_dut_proto_depIdxs = []int32{
3586	37, // 0: chromiumos.test.lab.api.Dut.id:type_name -> chromiumos.test.lab.api.Dut.Id
3587	38, // 1: chromiumos.test.lab.api.Dut.chromeos:type_name -> chromiumos.test.lab.api.Dut.ChromeOS
3588	39, // 2: chromiumos.test.lab.api.Dut.android:type_name -> chromiumos.test.lab.api.Dut.Android
3589	40, // 3: chromiumos.test.lab.api.Dut.devboard:type_name -> chromiumos.test.lab.api.Dut.Devboard
3590	21, // 4: chromiumos.test.lab.api.Dut.cache_server:type_name -> chromiumos.test.lab.api.CacheServer
3591	36, // 5: chromiumos.test.lab.api.Dut.wifi_secret:type_name -> chromiumos.test.lab.api.WifiSecret
3592	41, // 6: chromiumos.test.lab.api.DutTopology.id:type_name -> chromiumos.test.lab.api.DutTopology.Id
3593	16, // 7: chromiumos.test.lab.api.DutTopology.duts:type_name -> chromiumos.test.lab.api.Dut
3594	6,  // 8: chromiumos.test.lab.api.Cable.type:type_name -> chromiumos.test.lab.api.Cable.Type
3595	42, // 9: chromiumos.test.lab.api.CacheServer.address:type_name -> chromiumos.test.lab.api.IpEndpoint
3596	7,  // 10: chromiumos.test.lab.api.Camerabox.facing:type_name -> chromiumos.test.lab.api.Camerabox.Facing
3597	8,  // 11: chromiumos.test.lab.api.Cellular.operators:type_name -> chromiumos.test.lab.api.Cellular.Operator
3598	0,  // 12: chromiumos.test.lab.api.ModemInfo.type:type_name -> chromiumos.test.lab.api.ModemType
3599	2,  // 13: chromiumos.test.lab.api.SIMInfo.type:type_name -> chromiumos.test.lab.api.SIMType
3600	26, // 14: chromiumos.test.lab.api.SIMInfo.profile_info:type_name -> chromiumos.test.lab.api.SIMProfileInfo
3601	1,  // 15: chromiumos.test.lab.api.SIMProfileInfo.carrier_name:type_name -> chromiumos.test.lab.api.NetworkProvider
3602	9,  // 16: chromiumos.test.lab.api.SIMProfileInfo.state:type_name -> chromiumos.test.lab.api.SIMProfileInfo.State
3603	10, // 17: chromiumos.test.lab.api.SIMProfileInfo.features:type_name -> chromiumos.test.lab.api.SIMProfileInfo.Feature
3604	11, // 18: chromiumos.test.lab.api.Chameleon.peripherals:type_name -> chromiumos.test.lab.api.Chameleon.Peripheral
3605	4,  // 19: chromiumos.test.lab.api.Chameleon.state:type_name -> chromiumos.test.lab.api.PeripheralState
3606	12, // 20: chromiumos.test.lab.api.Chameleon.types:type_name -> chromiumos.test.lab.api.Chameleon.Type
3607	13, // 21: chromiumos.test.lab.api.ExternalCamera.type:type_name -> chromiumos.test.lab.api.ExternalCamera.Type
3608	42, // 22: chromiumos.test.lab.api.RPM.frontend_address:type_name -> chromiumos.test.lab.api.IpEndpoint
3609	42, // 23: chromiumos.test.lab.api.RPM.power_unit_hostname:type_name -> chromiumos.test.lab.api.IpEndpoint
3610	42, // 24: chromiumos.test.lab.api.RPM.hydra_hostname:type_name -> chromiumos.test.lab.api.IpEndpoint
3611	3,  // 25: chromiumos.test.lab.api.RPM.type:type_name -> chromiumos.test.lab.api.RPMType
3612	42, // 26: chromiumos.test.lab.api.Servo.servod_address:type_name -> chromiumos.test.lab.api.IpEndpoint
3613	4,  // 27: chromiumos.test.lab.api.Servo.state:type_name -> chromiumos.test.lab.api.PeripheralState
3614	14, // 28: chromiumos.test.lab.api.Wifi.environment:type_name -> chromiumos.test.lab.api.Wifi.Environment
3615	33, // 29: chromiumos.test.lab.api.Wifi.antenna:type_name -> chromiumos.test.lab.api.WifiAntenna
3616	34, // 30: chromiumos.test.lab.api.Wifi.wifi_routers:type_name -> chromiumos.test.lab.api.WifiRouter
3617	15, // 31: chromiumos.test.lab.api.WifiAntenna.connection:type_name -> chromiumos.test.lab.api.WifiAntenna.Connection
3618	4,  // 32: chromiumos.test.lab.api.WifiRouter.state:type_name -> chromiumos.test.lab.api.PeripheralState
3619	29, // 33: chromiumos.test.lab.api.WifiRouter.rpm:type_name -> chromiumos.test.lab.api.RPM
3620	43, // 34: chromiumos.test.lab.api.WifiRouter.supported_features:type_name -> chromiumos.test.lab.api.WifiRouterFeature
3621	44, // 35: chromiumos.test.lab.api.WifiRouter.device_type:type_name -> chromiumos.test.lab.api.WifiRouterDeviceType
3622	4,  // 36: chromiumos.test.lab.api.BluetoothPeer.state:type_name -> chromiumos.test.lab.api.PeripheralState
3623	45, // 37: chromiumos.test.lab.api.Dut.ChromeOS.device_config_id:type_name -> chromiumos.config.api.DeviceConfigId
3624	42, // 38: chromiumos.test.lab.api.Dut.ChromeOS.ssh:type_name -> chromiumos.test.lab.api.IpEndpoint
3625	17, // 39: chromiumos.test.lab.api.Dut.ChromeOS.dut_model:type_name -> chromiumos.test.lab.api.DutModel
3626	30, // 40: chromiumos.test.lab.api.Dut.ChromeOS.servo:type_name -> chromiumos.test.lab.api.Servo
3627	27, // 41: chromiumos.test.lab.api.Dut.ChromeOS.chameleon:type_name -> chromiumos.test.lab.api.Chameleon
3628	29, // 42: chromiumos.test.lab.api.Dut.ChromeOS.rpm:type_name -> chromiumos.test.lab.api.RPM
3629	28, // 43: chromiumos.test.lab.api.Dut.ChromeOS.external_cameras:type_name -> chromiumos.test.lab.api.ExternalCamera
3630	19, // 44: chromiumos.test.lab.api.Dut.ChromeOS.audio:type_name -> chromiumos.test.lab.api.Audio
3631	32, // 45: chromiumos.test.lab.api.Dut.ChromeOS.wifi:type_name -> chromiumos.test.lab.api.Wifi
3632	31, // 46: chromiumos.test.lab.api.Dut.ChromeOS.touch:type_name -> chromiumos.test.lab.api.Touch
3633	22, // 47: chromiumos.test.lab.api.Dut.ChromeOS.camerabox:type_name -> chromiumos.test.lab.api.Camerabox
3634	20, // 48: chromiumos.test.lab.api.Dut.ChromeOS.cables:type_name -> chromiumos.test.lab.api.Cable
3635	23, // 49: chromiumos.test.lab.api.Dut.ChromeOS.cellular:type_name -> chromiumos.test.lab.api.Cellular
3636	35, // 50: chromiumos.test.lab.api.Dut.ChromeOS.bluetooth_peers:type_name -> chromiumos.test.lab.api.BluetoothPeer
3637	5,  // 51: chromiumos.test.lab.api.Dut.ChromeOS.phase:type_name -> chromiumos.test.lab.api.Phase
3638	25, // 52: chromiumos.test.lab.api.Dut.ChromeOS.sim_infos:type_name -> chromiumos.test.lab.api.SIMInfo
3639	24, // 53: chromiumos.test.lab.api.Dut.ChromeOS.modem_info:type_name -> chromiumos.test.lab.api.ModemInfo
3640	46, // 54: chromiumos.test.lab.api.Dut.ChromeOS.pasit_host:type_name -> chromiumos.test.lab.api.PasitHost
3641	42, // 55: chromiumos.test.lab.api.Dut.Android.associated_hostname:type_name -> chromiumos.test.lab.api.IpEndpoint
3642	17, // 56: chromiumos.test.lab.api.Dut.Android.dut_model:type_name -> chromiumos.test.lab.api.DutModel
3643	30, // 57: chromiumos.test.lab.api.Dut.Devboard.servo:type_name -> chromiumos.test.lab.api.Servo
3644	17, // 58: chromiumos.test.lab.api.Dut.Devboard.dut_model:type_name -> chromiumos.test.lab.api.DutModel
3645	59, // [59:59] is the sub-list for method output_type
3646	59, // [59:59] is the sub-list for method input_type
3647	59, // [59:59] is the sub-list for extension type_name
3648	59, // [59:59] is the sub-list for extension extendee
3649	0,  // [0:59] is the sub-list for field type_name
3650}
3651
3652func init() { file_chromiumos_test_lab_api_dut_proto_init() }
3653func file_chromiumos_test_lab_api_dut_proto_init() {
3654	if File_chromiumos_test_lab_api_dut_proto != nil {
3655		return
3656	}
3657	file_chromiumos_test_lab_api_ip_endpoint_proto_init()
3658	file_chromiumos_test_lab_api_pasit_host_proto_init()
3659	file_chromiumos_test_lab_api_wifi_router_proto_init()
3660	if !protoimpl.UnsafeEnabled {
3661		file_chromiumos_test_lab_api_dut_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
3662			switch v := v.(*Dut); i {
3663			case 0:
3664				return &v.state
3665			case 1:
3666				return &v.sizeCache
3667			case 2:
3668				return &v.unknownFields
3669			default:
3670				return nil
3671			}
3672		}
3673		file_chromiumos_test_lab_api_dut_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
3674			switch v := v.(*DutModel); i {
3675			case 0:
3676				return &v.state
3677			case 1:
3678				return &v.sizeCache
3679			case 2:
3680				return &v.unknownFields
3681			default:
3682				return nil
3683			}
3684		}
3685		file_chromiumos_test_lab_api_dut_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
3686			switch v := v.(*DutTopology); i {
3687			case 0:
3688				return &v.state
3689			case 1:
3690				return &v.sizeCache
3691			case 2:
3692				return &v.unknownFields
3693			default:
3694				return nil
3695			}
3696		}
3697		file_chromiumos_test_lab_api_dut_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
3698			switch v := v.(*Audio); i {
3699			case 0:
3700				return &v.state
3701			case 1:
3702				return &v.sizeCache
3703			case 2:
3704				return &v.unknownFields
3705			default:
3706				return nil
3707			}
3708		}
3709		file_chromiumos_test_lab_api_dut_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
3710			switch v := v.(*Cable); i {
3711			case 0:
3712				return &v.state
3713			case 1:
3714				return &v.sizeCache
3715			case 2:
3716				return &v.unknownFields
3717			default:
3718				return nil
3719			}
3720		}
3721		file_chromiumos_test_lab_api_dut_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
3722			switch v := v.(*CacheServer); i {
3723			case 0:
3724				return &v.state
3725			case 1:
3726				return &v.sizeCache
3727			case 2:
3728				return &v.unknownFields
3729			default:
3730				return nil
3731			}
3732		}
3733		file_chromiumos_test_lab_api_dut_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
3734			switch v := v.(*Camerabox); i {
3735			case 0:
3736				return &v.state
3737			case 1:
3738				return &v.sizeCache
3739			case 2:
3740				return &v.unknownFields
3741			default:
3742				return nil
3743			}
3744		}
3745		file_chromiumos_test_lab_api_dut_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
3746			switch v := v.(*Cellular); i {
3747			case 0:
3748				return &v.state
3749			case 1:
3750				return &v.sizeCache
3751			case 2:
3752				return &v.unknownFields
3753			default:
3754				return nil
3755			}
3756		}
3757		file_chromiumos_test_lab_api_dut_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
3758			switch v := v.(*ModemInfo); i {
3759			case 0:
3760				return &v.state
3761			case 1:
3762				return &v.sizeCache
3763			case 2:
3764				return &v.unknownFields
3765			default:
3766				return nil
3767			}
3768		}
3769		file_chromiumos_test_lab_api_dut_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
3770			switch v := v.(*SIMInfo); i {
3771			case 0:
3772				return &v.state
3773			case 1:
3774				return &v.sizeCache
3775			case 2:
3776				return &v.unknownFields
3777			default:
3778				return nil
3779			}
3780		}
3781		file_chromiumos_test_lab_api_dut_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
3782			switch v := v.(*SIMProfileInfo); i {
3783			case 0:
3784				return &v.state
3785			case 1:
3786				return &v.sizeCache
3787			case 2:
3788				return &v.unknownFields
3789			default:
3790				return nil
3791			}
3792		}
3793		file_chromiumos_test_lab_api_dut_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
3794			switch v := v.(*Chameleon); i {
3795			case 0:
3796				return &v.state
3797			case 1:
3798				return &v.sizeCache
3799			case 2:
3800				return &v.unknownFields
3801			default:
3802				return nil
3803			}
3804		}
3805		file_chromiumos_test_lab_api_dut_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
3806			switch v := v.(*ExternalCamera); i {
3807			case 0:
3808				return &v.state
3809			case 1:
3810				return &v.sizeCache
3811			case 2:
3812				return &v.unknownFields
3813			default:
3814				return nil
3815			}
3816		}
3817		file_chromiumos_test_lab_api_dut_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
3818			switch v := v.(*RPM); i {
3819			case 0:
3820				return &v.state
3821			case 1:
3822				return &v.sizeCache
3823			case 2:
3824				return &v.unknownFields
3825			default:
3826				return nil
3827			}
3828		}
3829		file_chromiumos_test_lab_api_dut_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
3830			switch v := v.(*Servo); i {
3831			case 0:
3832				return &v.state
3833			case 1:
3834				return &v.sizeCache
3835			case 2:
3836				return &v.unknownFields
3837			default:
3838				return nil
3839			}
3840		}
3841		file_chromiumos_test_lab_api_dut_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
3842			switch v := v.(*Touch); i {
3843			case 0:
3844				return &v.state
3845			case 1:
3846				return &v.sizeCache
3847			case 2:
3848				return &v.unknownFields
3849			default:
3850				return nil
3851			}
3852		}
3853		file_chromiumos_test_lab_api_dut_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
3854			switch v := v.(*Wifi); i {
3855			case 0:
3856				return &v.state
3857			case 1:
3858				return &v.sizeCache
3859			case 2:
3860				return &v.unknownFields
3861			default:
3862				return nil
3863			}
3864		}
3865		file_chromiumos_test_lab_api_dut_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
3866			switch v := v.(*WifiAntenna); i {
3867			case 0:
3868				return &v.state
3869			case 1:
3870				return &v.sizeCache
3871			case 2:
3872				return &v.unknownFields
3873			default:
3874				return nil
3875			}
3876		}
3877		file_chromiumos_test_lab_api_dut_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
3878			switch v := v.(*WifiRouter); i {
3879			case 0:
3880				return &v.state
3881			case 1:
3882				return &v.sizeCache
3883			case 2:
3884				return &v.unknownFields
3885			default:
3886				return nil
3887			}
3888		}
3889		file_chromiumos_test_lab_api_dut_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
3890			switch v := v.(*BluetoothPeer); i {
3891			case 0:
3892				return &v.state
3893			case 1:
3894				return &v.sizeCache
3895			case 2:
3896				return &v.unknownFields
3897			default:
3898				return nil
3899			}
3900		}
3901		file_chromiumos_test_lab_api_dut_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
3902			switch v := v.(*WifiSecret); i {
3903			case 0:
3904				return &v.state
3905			case 1:
3906				return &v.sizeCache
3907			case 2:
3908				return &v.unknownFields
3909			default:
3910				return nil
3911			}
3912		}
3913		file_chromiumos_test_lab_api_dut_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
3914			switch v := v.(*Dut_Id); i {
3915			case 0:
3916				return &v.state
3917			case 1:
3918				return &v.sizeCache
3919			case 2:
3920				return &v.unknownFields
3921			default:
3922				return nil
3923			}
3924		}
3925		file_chromiumos_test_lab_api_dut_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
3926			switch v := v.(*Dut_ChromeOS); i {
3927			case 0:
3928				return &v.state
3929			case 1:
3930				return &v.sizeCache
3931			case 2:
3932				return &v.unknownFields
3933			default:
3934				return nil
3935			}
3936		}
3937		file_chromiumos_test_lab_api_dut_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
3938			switch v := v.(*Dut_Android); i {
3939			case 0:
3940				return &v.state
3941			case 1:
3942				return &v.sizeCache
3943			case 2:
3944				return &v.unknownFields
3945			default:
3946				return nil
3947			}
3948		}
3949		file_chromiumos_test_lab_api_dut_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
3950			switch v := v.(*Dut_Devboard); i {
3951			case 0:
3952				return &v.state
3953			case 1:
3954				return &v.sizeCache
3955			case 2:
3956				return &v.unknownFields
3957			default:
3958				return nil
3959			}
3960		}
3961		file_chromiumos_test_lab_api_dut_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
3962			switch v := v.(*DutTopology_Id); i {
3963			case 0:
3964				return &v.state
3965			case 1:
3966				return &v.sizeCache
3967			case 2:
3968				return &v.unknownFields
3969			default:
3970				return nil
3971			}
3972		}
3973	}
3974	file_chromiumos_test_lab_api_dut_proto_msgTypes[0].OneofWrappers = []interface{}{
3975		(*Dut_Chromeos)(nil),
3976		(*Dut_Android_)(nil),
3977		(*Dut_Devboard_)(nil),
3978	}
3979	type x struct{}
3980	out := protoimpl.TypeBuilder{
3981		File: protoimpl.DescBuilder{
3982			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
3983			RawDescriptor: file_chromiumos_test_lab_api_dut_proto_rawDesc,
3984			NumEnums:      16,
3985			NumMessages:   26,
3986			NumExtensions: 0,
3987			NumServices:   0,
3988		},
3989		GoTypes:           file_chromiumos_test_lab_api_dut_proto_goTypes,
3990		DependencyIndexes: file_chromiumos_test_lab_api_dut_proto_depIdxs,
3991		EnumInfos:         file_chromiumos_test_lab_api_dut_proto_enumTypes,
3992		MessageInfos:      file_chromiumos_test_lab_api_dut_proto_msgTypes,
3993	}.Build()
3994	File_chromiumos_test_lab_api_dut_proto = out.File
3995	file_chromiumos_test_lab_api_dut_proto_rawDesc = nil
3996	file_chromiumos_test_lab_api_dut_proto_goTypes = nil
3997	file_chromiumos_test_lab_api_dut_proto_depIdxs = nil
3998}
3999