• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2018 Google Inc. All Rights Reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//   http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.30.0
18// 	protoc        v3.21.7
19// source: metrics.proto
20
21package metrics_proto
22
23import (
24	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
25	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
26	reflect "reflect"
27	sync "sync"
28)
29
30const (
31	// Verify that this generated code is sufficiently up-to-date.
32	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
33	// Verify that runtime/protoimpl is sufficiently up-to-date.
34	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
35)
36
37type MetricsBase_BuildVariant int32
38
39const (
40	MetricsBase_USER      MetricsBase_BuildVariant = 0
41	MetricsBase_USERDEBUG MetricsBase_BuildVariant = 1
42	MetricsBase_ENG       MetricsBase_BuildVariant = 2
43)
44
45// Enum value maps for MetricsBase_BuildVariant.
46var (
47	MetricsBase_BuildVariant_name = map[int32]string{
48		0: "USER",
49		1: "USERDEBUG",
50		2: "ENG",
51	}
52	MetricsBase_BuildVariant_value = map[string]int32{
53		"USER":      0,
54		"USERDEBUG": 1,
55		"ENG":       2,
56	}
57)
58
59func (x MetricsBase_BuildVariant) Enum() *MetricsBase_BuildVariant {
60	p := new(MetricsBase_BuildVariant)
61	*p = x
62	return p
63}
64
65func (x MetricsBase_BuildVariant) String() string {
66	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
67}
68
69func (MetricsBase_BuildVariant) Descriptor() protoreflect.EnumDescriptor {
70	return file_metrics_proto_enumTypes[0].Descriptor()
71}
72
73func (MetricsBase_BuildVariant) Type() protoreflect.EnumType {
74	return &file_metrics_proto_enumTypes[0]
75}
76
77func (x MetricsBase_BuildVariant) Number() protoreflect.EnumNumber {
78	return protoreflect.EnumNumber(x)
79}
80
81// Deprecated: Do not use.
82func (x *MetricsBase_BuildVariant) UnmarshalJSON(b []byte) error {
83	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
84	if err != nil {
85		return err
86	}
87	*x = MetricsBase_BuildVariant(num)
88	return nil
89}
90
91// Deprecated: Use MetricsBase_BuildVariant.Descriptor instead.
92func (MetricsBase_BuildVariant) EnumDescriptor() ([]byte, []int) {
93	return file_metrics_proto_rawDescGZIP(), []int{0, 0}
94}
95
96type MetricsBase_Arch int32
97
98const (
99	MetricsBase_UNKNOWN MetricsBase_Arch = 0
100	MetricsBase_ARM     MetricsBase_Arch = 1
101	MetricsBase_ARM64   MetricsBase_Arch = 2
102	MetricsBase_X86     MetricsBase_Arch = 3
103	MetricsBase_X86_64  MetricsBase_Arch = 4
104)
105
106// Enum value maps for MetricsBase_Arch.
107var (
108	MetricsBase_Arch_name = map[int32]string{
109		0: "UNKNOWN",
110		1: "ARM",
111		2: "ARM64",
112		3: "X86",
113		4: "X86_64",
114	}
115	MetricsBase_Arch_value = map[string]int32{
116		"UNKNOWN": 0,
117		"ARM":     1,
118		"ARM64":   2,
119		"X86":     3,
120		"X86_64":  4,
121	}
122)
123
124func (x MetricsBase_Arch) Enum() *MetricsBase_Arch {
125	p := new(MetricsBase_Arch)
126	*p = x
127	return p
128}
129
130func (x MetricsBase_Arch) String() string {
131	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
132}
133
134func (MetricsBase_Arch) Descriptor() protoreflect.EnumDescriptor {
135	return file_metrics_proto_enumTypes[1].Descriptor()
136}
137
138func (MetricsBase_Arch) Type() protoreflect.EnumType {
139	return &file_metrics_proto_enumTypes[1]
140}
141
142func (x MetricsBase_Arch) Number() protoreflect.EnumNumber {
143	return protoreflect.EnumNumber(x)
144}
145
146// Deprecated: Do not use.
147func (x *MetricsBase_Arch) UnmarshalJSON(b []byte) error {
148	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
149	if err != nil {
150		return err
151	}
152	*x = MetricsBase_Arch(num)
153	return nil
154}
155
156// Deprecated: Use MetricsBase_Arch.Descriptor instead.
157func (MetricsBase_Arch) EnumDescriptor() ([]byte, []int) {
158	return file_metrics_proto_rawDescGZIP(), []int{0, 1}
159}
160
161type BuildConfig_NinjaWeightListSource int32
162
163const (
164	BuildConfig_NOT_USED           BuildConfig_NinjaWeightListSource = 0
165	BuildConfig_NINJA_LOG          BuildConfig_NinjaWeightListSource = 1
166	BuildConfig_EVENLY_DISTRIBUTED BuildConfig_NinjaWeightListSource = 2
167	BuildConfig_EXTERNAL_FILE      BuildConfig_NinjaWeightListSource = 3
168	BuildConfig_HINT_FROM_SOONG    BuildConfig_NinjaWeightListSource = 4
169)
170
171// Enum value maps for BuildConfig_NinjaWeightListSource.
172var (
173	BuildConfig_NinjaWeightListSource_name = map[int32]string{
174		0: "NOT_USED",
175		1: "NINJA_LOG",
176		2: "EVENLY_DISTRIBUTED",
177		3: "EXTERNAL_FILE",
178		4: "HINT_FROM_SOONG",
179	}
180	BuildConfig_NinjaWeightListSource_value = map[string]int32{
181		"NOT_USED":           0,
182		"NINJA_LOG":          1,
183		"EVENLY_DISTRIBUTED": 2,
184		"EXTERNAL_FILE":      3,
185		"HINT_FROM_SOONG":    4,
186	}
187)
188
189func (x BuildConfig_NinjaWeightListSource) Enum() *BuildConfig_NinjaWeightListSource {
190	p := new(BuildConfig_NinjaWeightListSource)
191	*p = x
192	return p
193}
194
195func (x BuildConfig_NinjaWeightListSource) String() string {
196	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
197}
198
199func (BuildConfig_NinjaWeightListSource) Descriptor() protoreflect.EnumDescriptor {
200	return file_metrics_proto_enumTypes[2].Descriptor()
201}
202
203func (BuildConfig_NinjaWeightListSource) Type() protoreflect.EnumType {
204	return &file_metrics_proto_enumTypes[2]
205}
206
207func (x BuildConfig_NinjaWeightListSource) Number() protoreflect.EnumNumber {
208	return protoreflect.EnumNumber(x)
209}
210
211// Deprecated: Do not use.
212func (x *BuildConfig_NinjaWeightListSource) UnmarshalJSON(b []byte) error {
213	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
214	if err != nil {
215		return err
216	}
217	*x = BuildConfig_NinjaWeightListSource(num)
218	return nil
219}
220
221// Deprecated: Use BuildConfig_NinjaWeightListSource.Descriptor instead.
222func (BuildConfig_NinjaWeightListSource) EnumDescriptor() ([]byte, []int) {
223	return file_metrics_proto_rawDescGZIP(), []int{1, 0}
224}
225
226type ModuleTypeInfo_BuildSystem int32
227
228const (
229	ModuleTypeInfo_UNKNOWN ModuleTypeInfo_BuildSystem = 0
230	ModuleTypeInfo_SOONG   ModuleTypeInfo_BuildSystem = 1
231	ModuleTypeInfo_MAKE    ModuleTypeInfo_BuildSystem = 2
232)
233
234// Enum value maps for ModuleTypeInfo_BuildSystem.
235var (
236	ModuleTypeInfo_BuildSystem_name = map[int32]string{
237		0: "UNKNOWN",
238		1: "SOONG",
239		2: "MAKE",
240	}
241	ModuleTypeInfo_BuildSystem_value = map[string]int32{
242		"UNKNOWN": 0,
243		"SOONG":   1,
244		"MAKE":    2,
245	}
246)
247
248func (x ModuleTypeInfo_BuildSystem) Enum() *ModuleTypeInfo_BuildSystem {
249	p := new(ModuleTypeInfo_BuildSystem)
250	*p = x
251	return p
252}
253
254func (x ModuleTypeInfo_BuildSystem) String() string {
255	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
256}
257
258func (ModuleTypeInfo_BuildSystem) Descriptor() protoreflect.EnumDescriptor {
259	return file_metrics_proto_enumTypes[3].Descriptor()
260}
261
262func (ModuleTypeInfo_BuildSystem) Type() protoreflect.EnumType {
263	return &file_metrics_proto_enumTypes[3]
264}
265
266func (x ModuleTypeInfo_BuildSystem) Number() protoreflect.EnumNumber {
267	return protoreflect.EnumNumber(x)
268}
269
270// Deprecated: Do not use.
271func (x *ModuleTypeInfo_BuildSystem) UnmarshalJSON(b []byte) error {
272	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
273	if err != nil {
274		return err
275	}
276	*x = ModuleTypeInfo_BuildSystem(num)
277	return nil
278}
279
280// Deprecated: Use ModuleTypeInfo_BuildSystem.Descriptor instead.
281func (ModuleTypeInfo_BuildSystem) EnumDescriptor() ([]byte, []int) {
282	return file_metrics_proto_rawDescGZIP(), []int{5, 0}
283}
284
285type ExpConfigFetcher_ConfigStatus int32
286
287const (
288	ExpConfigFetcher_NO_CONFIG     ExpConfigFetcher_ConfigStatus = 0
289	ExpConfigFetcher_CONFIG        ExpConfigFetcher_ConfigStatus = 1
290	ExpConfigFetcher_ERROR         ExpConfigFetcher_ConfigStatus = 2
291	ExpConfigFetcher_MISSING_GCERT ExpConfigFetcher_ConfigStatus = 3
292)
293
294// Enum value maps for ExpConfigFetcher_ConfigStatus.
295var (
296	ExpConfigFetcher_ConfigStatus_name = map[int32]string{
297		0: "NO_CONFIG",
298		1: "CONFIG",
299		2: "ERROR",
300		3: "MISSING_GCERT",
301	}
302	ExpConfigFetcher_ConfigStatus_value = map[string]int32{
303		"NO_CONFIG":     0,
304		"CONFIG":        1,
305		"ERROR":         2,
306		"MISSING_GCERT": 3,
307	}
308)
309
310func (x ExpConfigFetcher_ConfigStatus) Enum() *ExpConfigFetcher_ConfigStatus {
311	p := new(ExpConfigFetcher_ConfigStatus)
312	*p = x
313	return p
314}
315
316func (x ExpConfigFetcher_ConfigStatus) String() string {
317	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
318}
319
320func (ExpConfigFetcher_ConfigStatus) Descriptor() protoreflect.EnumDescriptor {
321	return file_metrics_proto_enumTypes[4].Descriptor()
322}
323
324func (ExpConfigFetcher_ConfigStatus) Type() protoreflect.EnumType {
325	return &file_metrics_proto_enumTypes[4]
326}
327
328func (x ExpConfigFetcher_ConfigStatus) Number() protoreflect.EnumNumber {
329	return protoreflect.EnumNumber(x)
330}
331
332// Deprecated: Do not use.
333func (x *ExpConfigFetcher_ConfigStatus) UnmarshalJSON(b []byte) error {
334	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
335	if err != nil {
336		return err
337	}
338	*x = ExpConfigFetcher_ConfigStatus(num)
339	return nil
340}
341
342// Deprecated: Use ExpConfigFetcher_ConfigStatus.Descriptor instead.
343func (ExpConfigFetcher_ConfigStatus) EnumDescriptor() ([]byte, []int) {
344	return file_metrics_proto_rawDescGZIP(), []int{9, 0}
345}
346
347type MetricsBase struct {
348	state         protoimpl.MessageState
349	sizeCache     protoimpl.SizeCache
350	unknownFields protoimpl.UnknownFields
351
352	// Timestamp generated when the build starts.
353	BuildDateTimestamp *int64 `protobuf:"varint,1,opt,name=build_date_timestamp,json=buildDateTimestamp" json:"build_date_timestamp,omitempty"`
354	// It is usually used to specify the branch name [and release candidate].
355	BuildId *string `protobuf:"bytes,2,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
356	// The platform version codename, eg. P, Q, REL.
357	PlatformVersionCodename *string `protobuf:"bytes,3,opt,name=platform_version_codename,json=platformVersionCodename" json:"platform_version_codename,omitempty"`
358	// The target product information, eg. aosp_arm.
359	TargetProduct *string `protobuf:"bytes,4,opt,name=target_product,json=targetProduct" json:"target_product,omitempty"`
360	// The target build variant information, eg. eng.
361	TargetBuildVariant *MetricsBase_BuildVariant `protobuf:"varint,5,opt,name=target_build_variant,json=targetBuildVariant,enum=soong_build_metrics.MetricsBase_BuildVariant,def=2" json:"target_build_variant,omitempty"`
362	// The target arch information, eg. arm.
363	TargetArch *MetricsBase_Arch `protobuf:"varint,6,opt,name=target_arch,json=targetArch,enum=soong_build_metrics.MetricsBase_Arch,def=0" json:"target_arch,omitempty"`
364	// The target arch variant information, eg. armv7-a-neon.
365	TargetArchVariant *string `protobuf:"bytes,7,opt,name=target_arch_variant,json=targetArchVariant" json:"target_arch_variant,omitempty"`
366	// The target cpu variant information, eg. generic.
367	TargetCpuVariant *string `protobuf:"bytes,8,opt,name=target_cpu_variant,json=targetCpuVariant" json:"target_cpu_variant,omitempty"`
368	// The host arch information, eg. x86_64.
369	HostArch *MetricsBase_Arch `protobuf:"varint,9,opt,name=host_arch,json=hostArch,enum=soong_build_metrics.MetricsBase_Arch,def=0" json:"host_arch,omitempty"`
370	// The host 2nd arch information, eg. x86.
371	Host_2NdArch *MetricsBase_Arch `protobuf:"varint,10,opt,name=host_2nd_arch,json=host2ndArch,enum=soong_build_metrics.MetricsBase_Arch,def=0" json:"host_2nd_arch,omitempty"`
372	// The host os information, eg. linux.
373	HostOs *string `protobuf:"bytes,11,opt,name=host_os,json=hostOs" json:"host_os,omitempty"`
374	// The host os extra information, eg. Linux-4.17.0-3rodete2-amd64-x86_64-Debian-GNU.
375	HostOsExtra *string `protobuf:"bytes,12,opt,name=host_os_extra,json=hostOsExtra" json:"host_os_extra,omitempty"`
376	// The host cross os information, eg. windows.
377	HostCrossOs *string `protobuf:"bytes,13,opt,name=host_cross_os,json=hostCrossOs" json:"host_cross_os,omitempty"`
378	// The host cross arch information, eg. x86.
379	HostCrossArch *string `protobuf:"bytes,14,opt,name=host_cross_arch,json=hostCrossArch" json:"host_cross_arch,omitempty"`
380	// The host cross 2nd arch information, eg. x86_64.
381	HostCross_2NdArch *string `protobuf:"bytes,15,opt,name=host_cross_2nd_arch,json=hostCross2ndArch" json:"host_cross_2nd_arch,omitempty"`
382	// The directory for generated built artifacts installation, eg. out.
383	OutDir *string `protobuf:"bytes,16,opt,name=out_dir,json=outDir" json:"out_dir,omitempty"`
384	// The metrics for calling various tools (microfactory) before Soong_UI starts.
385	SetupTools []*PerfInfo `protobuf:"bytes,17,rep,name=setup_tools,json=setupTools" json:"setup_tools,omitempty"`
386	// The metrics for calling Kati by multiple times.
387	KatiRuns []*PerfInfo `protobuf:"bytes,18,rep,name=kati_runs,json=katiRuns" json:"kati_runs,omitempty"`
388	// The metrics for calling Soong.
389	SoongRuns []*PerfInfo `protobuf:"bytes,19,rep,name=soong_runs,json=soongRuns" json:"soong_runs,omitempty"`
390	// The metrics for calling Ninja.
391	NinjaRuns []*PerfInfo `protobuf:"bytes,20,rep,name=ninja_runs,json=ninjaRuns" json:"ninja_runs,omitempty"`
392	// The metrics for the whole build
393	Total *PerfInfo `protobuf:"bytes,21,opt,name=total" json:"total,omitempty"`
394	// Deprecated because instead of embedding in a MetricsBase, we keep
395	// SoongBuildMetrics in its own file
396	//
397	// Deprecated: Marked as deprecated in metrics.proto.
398	SoongBuildMetrics *SoongBuildMetrics `protobuf:"bytes,22,opt,name=soong_build_metrics,json=soongBuildMetrics" json:"soong_build_metrics,omitempty"`
399	BuildConfig       *BuildConfig       `protobuf:"bytes,23,opt,name=build_config,json=buildConfig" json:"build_config,omitempty"`
400	// The hostname of the machine.
401	Hostname *string `protobuf:"bytes,24,opt,name=hostname" json:"hostname,omitempty"`
402	// The system resource information such as total physical memory.
403	SystemResourceInfo *SystemResourceInfo `protobuf:"bytes,25,opt,name=system_resource_info,json=systemResourceInfo" json:"system_resource_info,omitempty"`
404	// The build command that the user entered to the build system.
405	BuildCommand *string `protobuf:"bytes,26,opt,name=build_command,json=buildCommand" json:"build_command,omitempty"`
406	// The metrics for calling Bazel.
407	BazelRuns []*PerfInfo `protobuf:"bytes,27,rep,name=bazel_runs,json=bazelRuns" json:"bazel_runs,omitempty"`
408	// The metrics of the experiment config fetcher
409	ExpConfigFetcher *ExpConfigFetcher `protobuf:"bytes,28,opt,name=exp_config_fetcher,json=expConfigFetcher" json:"exp_config_fetcher,omitempty"`
410	// Whether the build exited with a panic or non-zero exit code, includes both
411	// non-zero exits of recorded phases and non-recorded phases of the build.
412	NonZeroExit *bool `protobuf:"varint,29,opt,name=non_zero_exit,json=nonZeroExit" json:"non_zero_exit,omitempty"`
413	// The error message due to a non-zero exit _only_ if it did not occur in a
414	// recorded phase of the build.
415	ErrorMessage *string `protobuf:"bytes,30,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
416	// The Git Manifest for the user's branch.
417	ManifestUrl *string `protobuf:"bytes,31,opt,name=manifest_url,json=manifestUrl" json:"manifest_url,omitempty"`
418	// The branch on which the build occurred.
419	// Example: refs/heads/master
420	Branch *string `protobuf:"bytes,32,opt,name=branch" json:"branch,omitempty"`
421	// The metric of critical path in build
422	CriticalPathInfo *CriticalPathInfo `protobuf:"bytes,33,opt,name=critical_path_info,json=criticalPathInfo" json:"critical_path_info,omitempty"`
423}
424
425// Default values for MetricsBase fields.
426const (
427	Default_MetricsBase_TargetBuildVariant = MetricsBase_ENG
428	Default_MetricsBase_TargetArch         = MetricsBase_UNKNOWN
429	Default_MetricsBase_HostArch           = MetricsBase_UNKNOWN
430	Default_MetricsBase_Host_2NdArch       = MetricsBase_UNKNOWN
431)
432
433func (x *MetricsBase) Reset() {
434	*x = MetricsBase{}
435	if protoimpl.UnsafeEnabled {
436		mi := &file_metrics_proto_msgTypes[0]
437		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
438		ms.StoreMessageInfo(mi)
439	}
440}
441
442func (x *MetricsBase) String() string {
443	return protoimpl.X.MessageStringOf(x)
444}
445
446func (*MetricsBase) ProtoMessage() {}
447
448func (x *MetricsBase) ProtoReflect() protoreflect.Message {
449	mi := &file_metrics_proto_msgTypes[0]
450	if protoimpl.UnsafeEnabled && x != nil {
451		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
452		if ms.LoadMessageInfo() == nil {
453			ms.StoreMessageInfo(mi)
454		}
455		return ms
456	}
457	return mi.MessageOf(x)
458}
459
460// Deprecated: Use MetricsBase.ProtoReflect.Descriptor instead.
461func (*MetricsBase) Descriptor() ([]byte, []int) {
462	return file_metrics_proto_rawDescGZIP(), []int{0}
463}
464
465func (x *MetricsBase) GetBuildDateTimestamp() int64 {
466	if x != nil && x.BuildDateTimestamp != nil {
467		return *x.BuildDateTimestamp
468	}
469	return 0
470}
471
472func (x *MetricsBase) GetBuildId() string {
473	if x != nil && x.BuildId != nil {
474		return *x.BuildId
475	}
476	return ""
477}
478
479func (x *MetricsBase) GetPlatformVersionCodename() string {
480	if x != nil && x.PlatformVersionCodename != nil {
481		return *x.PlatformVersionCodename
482	}
483	return ""
484}
485
486func (x *MetricsBase) GetTargetProduct() string {
487	if x != nil && x.TargetProduct != nil {
488		return *x.TargetProduct
489	}
490	return ""
491}
492
493func (x *MetricsBase) GetTargetBuildVariant() MetricsBase_BuildVariant {
494	if x != nil && x.TargetBuildVariant != nil {
495		return *x.TargetBuildVariant
496	}
497	return Default_MetricsBase_TargetBuildVariant
498}
499
500func (x *MetricsBase) GetTargetArch() MetricsBase_Arch {
501	if x != nil && x.TargetArch != nil {
502		return *x.TargetArch
503	}
504	return Default_MetricsBase_TargetArch
505}
506
507func (x *MetricsBase) GetTargetArchVariant() string {
508	if x != nil && x.TargetArchVariant != nil {
509		return *x.TargetArchVariant
510	}
511	return ""
512}
513
514func (x *MetricsBase) GetTargetCpuVariant() string {
515	if x != nil && x.TargetCpuVariant != nil {
516		return *x.TargetCpuVariant
517	}
518	return ""
519}
520
521func (x *MetricsBase) GetHostArch() MetricsBase_Arch {
522	if x != nil && x.HostArch != nil {
523		return *x.HostArch
524	}
525	return Default_MetricsBase_HostArch
526}
527
528func (x *MetricsBase) GetHost_2NdArch() MetricsBase_Arch {
529	if x != nil && x.Host_2NdArch != nil {
530		return *x.Host_2NdArch
531	}
532	return Default_MetricsBase_Host_2NdArch
533}
534
535func (x *MetricsBase) GetHostOs() string {
536	if x != nil && x.HostOs != nil {
537		return *x.HostOs
538	}
539	return ""
540}
541
542func (x *MetricsBase) GetHostOsExtra() string {
543	if x != nil && x.HostOsExtra != nil {
544		return *x.HostOsExtra
545	}
546	return ""
547}
548
549func (x *MetricsBase) GetHostCrossOs() string {
550	if x != nil && x.HostCrossOs != nil {
551		return *x.HostCrossOs
552	}
553	return ""
554}
555
556func (x *MetricsBase) GetHostCrossArch() string {
557	if x != nil && x.HostCrossArch != nil {
558		return *x.HostCrossArch
559	}
560	return ""
561}
562
563func (x *MetricsBase) GetHostCross_2NdArch() string {
564	if x != nil && x.HostCross_2NdArch != nil {
565		return *x.HostCross_2NdArch
566	}
567	return ""
568}
569
570func (x *MetricsBase) GetOutDir() string {
571	if x != nil && x.OutDir != nil {
572		return *x.OutDir
573	}
574	return ""
575}
576
577func (x *MetricsBase) GetSetupTools() []*PerfInfo {
578	if x != nil {
579		return x.SetupTools
580	}
581	return nil
582}
583
584func (x *MetricsBase) GetKatiRuns() []*PerfInfo {
585	if x != nil {
586		return x.KatiRuns
587	}
588	return nil
589}
590
591func (x *MetricsBase) GetSoongRuns() []*PerfInfo {
592	if x != nil {
593		return x.SoongRuns
594	}
595	return nil
596}
597
598func (x *MetricsBase) GetNinjaRuns() []*PerfInfo {
599	if x != nil {
600		return x.NinjaRuns
601	}
602	return nil
603}
604
605func (x *MetricsBase) GetTotal() *PerfInfo {
606	if x != nil {
607		return x.Total
608	}
609	return nil
610}
611
612// Deprecated: Marked as deprecated in metrics.proto.
613func (x *MetricsBase) GetSoongBuildMetrics() *SoongBuildMetrics {
614	if x != nil {
615		return x.SoongBuildMetrics
616	}
617	return nil
618}
619
620func (x *MetricsBase) GetBuildConfig() *BuildConfig {
621	if x != nil {
622		return x.BuildConfig
623	}
624	return nil
625}
626
627func (x *MetricsBase) GetHostname() string {
628	if x != nil && x.Hostname != nil {
629		return *x.Hostname
630	}
631	return ""
632}
633
634func (x *MetricsBase) GetSystemResourceInfo() *SystemResourceInfo {
635	if x != nil {
636		return x.SystemResourceInfo
637	}
638	return nil
639}
640
641func (x *MetricsBase) GetBuildCommand() string {
642	if x != nil && x.BuildCommand != nil {
643		return *x.BuildCommand
644	}
645	return ""
646}
647
648func (x *MetricsBase) GetBazelRuns() []*PerfInfo {
649	if x != nil {
650		return x.BazelRuns
651	}
652	return nil
653}
654
655func (x *MetricsBase) GetExpConfigFetcher() *ExpConfigFetcher {
656	if x != nil {
657		return x.ExpConfigFetcher
658	}
659	return nil
660}
661
662func (x *MetricsBase) GetNonZeroExit() bool {
663	if x != nil && x.NonZeroExit != nil {
664		return *x.NonZeroExit
665	}
666	return false
667}
668
669func (x *MetricsBase) GetErrorMessage() string {
670	if x != nil && x.ErrorMessage != nil {
671		return *x.ErrorMessage
672	}
673	return ""
674}
675
676func (x *MetricsBase) GetManifestUrl() string {
677	if x != nil && x.ManifestUrl != nil {
678		return *x.ManifestUrl
679	}
680	return ""
681}
682
683func (x *MetricsBase) GetBranch() string {
684	if x != nil && x.Branch != nil {
685		return *x.Branch
686	}
687	return ""
688}
689
690func (x *MetricsBase) GetCriticalPathInfo() *CriticalPathInfo {
691	if x != nil {
692		return x.CriticalPathInfo
693	}
694	return nil
695}
696
697type BuildConfig struct {
698	state         protoimpl.MessageState
699	sizeCache     protoimpl.SizeCache
700	unknownFields protoimpl.UnknownFields
701
702	UseGoma      *bool `protobuf:"varint,1,opt,name=use_goma,json=useGoma" json:"use_goma,omitempty"`
703	UseRbe       *bool `protobuf:"varint,2,opt,name=use_rbe,json=useRbe" json:"use_rbe,omitempty"`
704	ForceUseGoma *bool `protobuf:"varint,3,opt,name=force_use_goma,json=forceUseGoma" json:"force_use_goma,omitempty"`
705	// Whether the Bazel is acting as the Ninja executor for this build.
706	BazelAsNinja *bool `protobuf:"varint,4,opt,name=bazel_as_ninja,json=bazelAsNinja" json:"bazel_as_ninja,omitempty"`
707	// Whether build is occurring in a mixed build mode, where Bazel maintains the
708	// definition and build of some modules in cooperation with Soong.
709	BazelMixedBuild *bool `protobuf:"varint,5,opt,name=bazel_mixed_build,json=bazelMixedBuild" json:"bazel_mixed_build,omitempty"`
710	// These are the targets soong passes to ninja, these targets include special
711	// targets such as droid as well as the regular build targets.
712	Targets []string `protobuf:"bytes,6,rep,name=targets" json:"targets,omitempty"`
713	// Whether the user explicitly disabled bazel mixed builds for this build.
714	ForceDisableBazelMixedBuild *bool `protobuf:"varint,7,opt,name=force_disable_bazel_mixed_build,json=forceDisableBazelMixedBuild" json:"force_disable_bazel_mixed_build,omitempty"`
715	// NOT_USED - ninja doesn't use weight list.
716	// NINJA_LOG - ninja uses weight list based on previous builds by ninja log
717	// EVENLY_DISTRIBUTED - ninja thinks every task has the same weight.
718	// EXTERNAL_FILE - ninja uses an external custom weight list
719	// HINT_FROM_SOONG - ninja uses a prioritized module list from Soong
720	NinjaWeightListSource *BuildConfig_NinjaWeightListSource `protobuf:"varint,8,opt,name=ninja_weight_list_source,json=ninjaWeightListSource,enum=soong_build_metrics.BuildConfig_NinjaWeightListSource,def=0" json:"ninja_weight_list_source,omitempty"`
721}
722
723// Default values for BuildConfig fields.
724const (
725	Default_BuildConfig_NinjaWeightListSource = BuildConfig_NOT_USED
726)
727
728func (x *BuildConfig) Reset() {
729	*x = BuildConfig{}
730	if protoimpl.UnsafeEnabled {
731		mi := &file_metrics_proto_msgTypes[1]
732		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
733		ms.StoreMessageInfo(mi)
734	}
735}
736
737func (x *BuildConfig) String() string {
738	return protoimpl.X.MessageStringOf(x)
739}
740
741func (*BuildConfig) ProtoMessage() {}
742
743func (x *BuildConfig) ProtoReflect() protoreflect.Message {
744	mi := &file_metrics_proto_msgTypes[1]
745	if protoimpl.UnsafeEnabled && x != nil {
746		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
747		if ms.LoadMessageInfo() == nil {
748			ms.StoreMessageInfo(mi)
749		}
750		return ms
751	}
752	return mi.MessageOf(x)
753}
754
755// Deprecated: Use BuildConfig.ProtoReflect.Descriptor instead.
756func (*BuildConfig) Descriptor() ([]byte, []int) {
757	return file_metrics_proto_rawDescGZIP(), []int{1}
758}
759
760func (x *BuildConfig) GetUseGoma() bool {
761	if x != nil && x.UseGoma != nil {
762		return *x.UseGoma
763	}
764	return false
765}
766
767func (x *BuildConfig) GetUseRbe() bool {
768	if x != nil && x.UseRbe != nil {
769		return *x.UseRbe
770	}
771	return false
772}
773
774func (x *BuildConfig) GetForceUseGoma() bool {
775	if x != nil && x.ForceUseGoma != nil {
776		return *x.ForceUseGoma
777	}
778	return false
779}
780
781func (x *BuildConfig) GetBazelAsNinja() bool {
782	if x != nil && x.BazelAsNinja != nil {
783		return *x.BazelAsNinja
784	}
785	return false
786}
787
788func (x *BuildConfig) GetBazelMixedBuild() bool {
789	if x != nil && x.BazelMixedBuild != nil {
790		return *x.BazelMixedBuild
791	}
792	return false
793}
794
795func (x *BuildConfig) GetTargets() []string {
796	if x != nil {
797		return x.Targets
798	}
799	return nil
800}
801
802func (x *BuildConfig) GetForceDisableBazelMixedBuild() bool {
803	if x != nil && x.ForceDisableBazelMixedBuild != nil {
804		return *x.ForceDisableBazelMixedBuild
805	}
806	return false
807}
808
809func (x *BuildConfig) GetNinjaWeightListSource() BuildConfig_NinjaWeightListSource {
810	if x != nil && x.NinjaWeightListSource != nil {
811		return *x.NinjaWeightListSource
812	}
813	return Default_BuildConfig_NinjaWeightListSource
814}
815
816type SystemResourceInfo struct {
817	state         protoimpl.MessageState
818	sizeCache     protoimpl.SizeCache
819	unknownFields protoimpl.UnknownFields
820
821	// The total physical memory in bytes.
822	TotalPhysicalMemory *uint64 `protobuf:"varint,1,opt,name=total_physical_memory,json=totalPhysicalMemory" json:"total_physical_memory,omitempty"`
823	// The total of available cores for building
824	AvailableCpus *int32 `protobuf:"varint,2,opt,name=available_cpus,json=availableCpus" json:"available_cpus,omitempty"`
825}
826
827func (x *SystemResourceInfo) Reset() {
828	*x = SystemResourceInfo{}
829	if protoimpl.UnsafeEnabled {
830		mi := &file_metrics_proto_msgTypes[2]
831		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
832		ms.StoreMessageInfo(mi)
833	}
834}
835
836func (x *SystemResourceInfo) String() string {
837	return protoimpl.X.MessageStringOf(x)
838}
839
840func (*SystemResourceInfo) ProtoMessage() {}
841
842func (x *SystemResourceInfo) ProtoReflect() protoreflect.Message {
843	mi := &file_metrics_proto_msgTypes[2]
844	if protoimpl.UnsafeEnabled && x != nil {
845		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
846		if ms.LoadMessageInfo() == nil {
847			ms.StoreMessageInfo(mi)
848		}
849		return ms
850	}
851	return mi.MessageOf(x)
852}
853
854// Deprecated: Use SystemResourceInfo.ProtoReflect.Descriptor instead.
855func (*SystemResourceInfo) Descriptor() ([]byte, []int) {
856	return file_metrics_proto_rawDescGZIP(), []int{2}
857}
858
859func (x *SystemResourceInfo) GetTotalPhysicalMemory() uint64 {
860	if x != nil && x.TotalPhysicalMemory != nil {
861		return *x.TotalPhysicalMemory
862	}
863	return 0
864}
865
866func (x *SystemResourceInfo) GetAvailableCpus() int32 {
867	if x != nil && x.AvailableCpus != nil {
868		return *x.AvailableCpus
869	}
870	return 0
871}
872
873type PerfInfo struct {
874	state         protoimpl.MessageState
875	sizeCache     protoimpl.SizeCache
876	unknownFields protoimpl.UnknownFields
877
878	// The description for the phase/action/part while the tool running.
879	Description *string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
880	// The name for the running phase/action/part.
881	Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
882	// The absolute start time.
883	// The number of nanoseconds elapsed since January 1, 1970 UTC.
884	StartTime *uint64 `protobuf:"varint,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
885	// The real running time.
886	// The number of nanoseconds elapsed since start_time.
887	RealTime *uint64 `protobuf:"varint,4,opt,name=real_time,json=realTime" json:"real_time,omitempty"`
888	// The number of MB for memory use (deprecated as it is too generic).
889	//
890	// Deprecated: Marked as deprecated in metrics.proto.
891	MemoryUse *uint64 `protobuf:"varint,5,opt,name=memory_use,json=memoryUse" json:"memory_use,omitempty"`
892	// The resource information of each executed process.
893	ProcessesResourceInfo []*ProcessResourceInfo `protobuf:"bytes,6,rep,name=processes_resource_info,json=processesResourceInfo" json:"processes_resource_info,omitempty"`
894	// Whether the phase of tool running exited with a panic or non-zero exit
895	// code.
896	NonZeroExit *bool `protobuf:"varint,7,opt,name=non_zero_exit,json=nonZeroExit" json:"non_zero_exit,omitempty"`
897	// The error message, if any, due to a non-zero exit.
898	ErrorMessage *string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
899}
900
901func (x *PerfInfo) Reset() {
902	*x = PerfInfo{}
903	if protoimpl.UnsafeEnabled {
904		mi := &file_metrics_proto_msgTypes[3]
905		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
906		ms.StoreMessageInfo(mi)
907	}
908}
909
910func (x *PerfInfo) String() string {
911	return protoimpl.X.MessageStringOf(x)
912}
913
914func (*PerfInfo) ProtoMessage() {}
915
916func (x *PerfInfo) ProtoReflect() protoreflect.Message {
917	mi := &file_metrics_proto_msgTypes[3]
918	if protoimpl.UnsafeEnabled && x != nil {
919		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
920		if ms.LoadMessageInfo() == nil {
921			ms.StoreMessageInfo(mi)
922		}
923		return ms
924	}
925	return mi.MessageOf(x)
926}
927
928// Deprecated: Use PerfInfo.ProtoReflect.Descriptor instead.
929func (*PerfInfo) Descriptor() ([]byte, []int) {
930	return file_metrics_proto_rawDescGZIP(), []int{3}
931}
932
933func (x *PerfInfo) GetDescription() string {
934	if x != nil && x.Description != nil {
935		return *x.Description
936	}
937	return ""
938}
939
940func (x *PerfInfo) GetName() string {
941	if x != nil && x.Name != nil {
942		return *x.Name
943	}
944	return ""
945}
946
947func (x *PerfInfo) GetStartTime() uint64 {
948	if x != nil && x.StartTime != nil {
949		return *x.StartTime
950	}
951	return 0
952}
953
954func (x *PerfInfo) GetRealTime() uint64 {
955	if x != nil && x.RealTime != nil {
956		return *x.RealTime
957	}
958	return 0
959}
960
961// Deprecated: Marked as deprecated in metrics.proto.
962func (x *PerfInfo) GetMemoryUse() uint64 {
963	if x != nil && x.MemoryUse != nil {
964		return *x.MemoryUse
965	}
966	return 0
967}
968
969func (x *PerfInfo) GetProcessesResourceInfo() []*ProcessResourceInfo {
970	if x != nil {
971		return x.ProcessesResourceInfo
972	}
973	return nil
974}
975
976func (x *PerfInfo) GetNonZeroExit() bool {
977	if x != nil && x.NonZeroExit != nil {
978		return *x.NonZeroExit
979	}
980	return false
981}
982
983func (x *PerfInfo) GetErrorMessage() string {
984	if x != nil && x.ErrorMessage != nil {
985		return *x.ErrorMessage
986	}
987	return ""
988}
989
990type ProcessResourceInfo struct {
991	state         protoimpl.MessageState
992	sizeCache     protoimpl.SizeCache
993	unknownFields protoimpl.UnknownFields
994
995	// The name of the process for identification.
996	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
997	// The amount of time spent executing in user space in microseconds.
998	UserTimeMicros *uint64 `protobuf:"varint,2,opt,name=user_time_micros,json=userTimeMicros" json:"user_time_micros,omitempty"`
999	// The amount of time spent executing in kernel mode in microseconds.
1000	SystemTimeMicros *uint64 `protobuf:"varint,3,opt,name=system_time_micros,json=systemTimeMicros" json:"system_time_micros,omitempty"`
1001	// The maximum resident set size memory used in kilobytes.
1002	MaxRssKb *uint64 `protobuf:"varint,4,opt,name=max_rss_kb,json=maxRssKb" json:"max_rss_kb,omitempty"`
1003	// The number of minor page faults serviced without any I/O activity.
1004	MinorPageFaults *uint64 `protobuf:"varint,5,opt,name=minor_page_faults,json=minorPageFaults" json:"minor_page_faults,omitempty"`
1005	// The number of major page faults serviced that required I/O activity.
1006	MajorPageFaults *uint64 `protobuf:"varint,6,opt,name=major_page_faults,json=majorPageFaults" json:"major_page_faults,omitempty"`
1007	// Total IO input in kilobytes.
1008	IoInputKb *uint64 `protobuf:"varint,7,opt,name=io_input_kb,json=ioInputKb" json:"io_input_kb,omitempty"`
1009	// Total IO output in kilobytes.
1010	IoOutputKb *uint64 `protobuf:"varint,8,opt,name=io_output_kb,json=ioOutputKb" json:"io_output_kb,omitempty"`
1011	// The number of voluntary context switches
1012	VoluntaryContextSwitches *uint64 `protobuf:"varint,9,opt,name=voluntary_context_switches,json=voluntaryContextSwitches" json:"voluntary_context_switches,omitempty"`
1013	// The number of involuntary context switches
1014	InvoluntaryContextSwitches *uint64 `protobuf:"varint,10,opt,name=involuntary_context_switches,json=involuntaryContextSwitches" json:"involuntary_context_switches,omitempty"`
1015}
1016
1017func (x *ProcessResourceInfo) Reset() {
1018	*x = ProcessResourceInfo{}
1019	if protoimpl.UnsafeEnabled {
1020		mi := &file_metrics_proto_msgTypes[4]
1021		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1022		ms.StoreMessageInfo(mi)
1023	}
1024}
1025
1026func (x *ProcessResourceInfo) String() string {
1027	return protoimpl.X.MessageStringOf(x)
1028}
1029
1030func (*ProcessResourceInfo) ProtoMessage() {}
1031
1032func (x *ProcessResourceInfo) ProtoReflect() protoreflect.Message {
1033	mi := &file_metrics_proto_msgTypes[4]
1034	if protoimpl.UnsafeEnabled && x != nil {
1035		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1036		if ms.LoadMessageInfo() == nil {
1037			ms.StoreMessageInfo(mi)
1038		}
1039		return ms
1040	}
1041	return mi.MessageOf(x)
1042}
1043
1044// Deprecated: Use ProcessResourceInfo.ProtoReflect.Descriptor instead.
1045func (*ProcessResourceInfo) Descriptor() ([]byte, []int) {
1046	return file_metrics_proto_rawDescGZIP(), []int{4}
1047}
1048
1049func (x *ProcessResourceInfo) GetName() string {
1050	if x != nil && x.Name != nil {
1051		return *x.Name
1052	}
1053	return ""
1054}
1055
1056func (x *ProcessResourceInfo) GetUserTimeMicros() uint64 {
1057	if x != nil && x.UserTimeMicros != nil {
1058		return *x.UserTimeMicros
1059	}
1060	return 0
1061}
1062
1063func (x *ProcessResourceInfo) GetSystemTimeMicros() uint64 {
1064	if x != nil && x.SystemTimeMicros != nil {
1065		return *x.SystemTimeMicros
1066	}
1067	return 0
1068}
1069
1070func (x *ProcessResourceInfo) GetMaxRssKb() uint64 {
1071	if x != nil && x.MaxRssKb != nil {
1072		return *x.MaxRssKb
1073	}
1074	return 0
1075}
1076
1077func (x *ProcessResourceInfo) GetMinorPageFaults() uint64 {
1078	if x != nil && x.MinorPageFaults != nil {
1079		return *x.MinorPageFaults
1080	}
1081	return 0
1082}
1083
1084func (x *ProcessResourceInfo) GetMajorPageFaults() uint64 {
1085	if x != nil && x.MajorPageFaults != nil {
1086		return *x.MajorPageFaults
1087	}
1088	return 0
1089}
1090
1091func (x *ProcessResourceInfo) GetIoInputKb() uint64 {
1092	if x != nil && x.IoInputKb != nil {
1093		return *x.IoInputKb
1094	}
1095	return 0
1096}
1097
1098func (x *ProcessResourceInfo) GetIoOutputKb() uint64 {
1099	if x != nil && x.IoOutputKb != nil {
1100		return *x.IoOutputKb
1101	}
1102	return 0
1103}
1104
1105func (x *ProcessResourceInfo) GetVoluntaryContextSwitches() uint64 {
1106	if x != nil && x.VoluntaryContextSwitches != nil {
1107		return *x.VoluntaryContextSwitches
1108	}
1109	return 0
1110}
1111
1112func (x *ProcessResourceInfo) GetInvoluntaryContextSwitches() uint64 {
1113	if x != nil && x.InvoluntaryContextSwitches != nil {
1114		return *x.InvoluntaryContextSwitches
1115	}
1116	return 0
1117}
1118
1119type ModuleTypeInfo struct {
1120	state         protoimpl.MessageState
1121	sizeCache     protoimpl.SizeCache
1122	unknownFields protoimpl.UnknownFields
1123
1124	// The build system, e.g. Soong or Make.
1125	BuildSystem *ModuleTypeInfo_BuildSystem `protobuf:"varint,1,opt,name=build_system,json=buildSystem,enum=soong_build_metrics.ModuleTypeInfo_BuildSystem,def=0" json:"build_system,omitempty"`
1126	// The module type, e.g. java_library, cc_binary, and etc.
1127	ModuleType *string `protobuf:"bytes,2,opt,name=module_type,json=moduleType" json:"module_type,omitempty"`
1128	// The number of logical modules.
1129	NumOfModules *uint32 `protobuf:"varint,3,opt,name=num_of_modules,json=numOfModules" json:"num_of_modules,omitempty"`
1130}
1131
1132// Default values for ModuleTypeInfo fields.
1133const (
1134	Default_ModuleTypeInfo_BuildSystem = ModuleTypeInfo_UNKNOWN
1135)
1136
1137func (x *ModuleTypeInfo) Reset() {
1138	*x = ModuleTypeInfo{}
1139	if protoimpl.UnsafeEnabled {
1140		mi := &file_metrics_proto_msgTypes[5]
1141		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1142		ms.StoreMessageInfo(mi)
1143	}
1144}
1145
1146func (x *ModuleTypeInfo) String() string {
1147	return protoimpl.X.MessageStringOf(x)
1148}
1149
1150func (*ModuleTypeInfo) ProtoMessage() {}
1151
1152func (x *ModuleTypeInfo) ProtoReflect() protoreflect.Message {
1153	mi := &file_metrics_proto_msgTypes[5]
1154	if protoimpl.UnsafeEnabled && x != nil {
1155		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1156		if ms.LoadMessageInfo() == nil {
1157			ms.StoreMessageInfo(mi)
1158		}
1159		return ms
1160	}
1161	return mi.MessageOf(x)
1162}
1163
1164// Deprecated: Use ModuleTypeInfo.ProtoReflect.Descriptor instead.
1165func (*ModuleTypeInfo) Descriptor() ([]byte, []int) {
1166	return file_metrics_proto_rawDescGZIP(), []int{5}
1167}
1168
1169func (x *ModuleTypeInfo) GetBuildSystem() ModuleTypeInfo_BuildSystem {
1170	if x != nil && x.BuildSystem != nil {
1171		return *x.BuildSystem
1172	}
1173	return Default_ModuleTypeInfo_BuildSystem
1174}
1175
1176func (x *ModuleTypeInfo) GetModuleType() string {
1177	if x != nil && x.ModuleType != nil {
1178		return *x.ModuleType
1179	}
1180	return ""
1181}
1182
1183func (x *ModuleTypeInfo) GetNumOfModules() uint32 {
1184	if x != nil && x.NumOfModules != nil {
1185		return *x.NumOfModules
1186	}
1187	return 0
1188}
1189
1190type CriticalUserJourneyMetrics struct {
1191	state         protoimpl.MessageState
1192	sizeCache     protoimpl.SizeCache
1193	unknownFields protoimpl.UnknownFields
1194
1195	// The name of a critical user journey test.
1196	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
1197	// The metrics produced when running the critical user journey test.
1198	Metrics *MetricsBase `protobuf:"bytes,2,opt,name=metrics" json:"metrics,omitempty"`
1199}
1200
1201func (x *CriticalUserJourneyMetrics) Reset() {
1202	*x = CriticalUserJourneyMetrics{}
1203	if protoimpl.UnsafeEnabled {
1204		mi := &file_metrics_proto_msgTypes[6]
1205		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1206		ms.StoreMessageInfo(mi)
1207	}
1208}
1209
1210func (x *CriticalUserJourneyMetrics) String() string {
1211	return protoimpl.X.MessageStringOf(x)
1212}
1213
1214func (*CriticalUserJourneyMetrics) ProtoMessage() {}
1215
1216func (x *CriticalUserJourneyMetrics) ProtoReflect() protoreflect.Message {
1217	mi := &file_metrics_proto_msgTypes[6]
1218	if protoimpl.UnsafeEnabled && x != nil {
1219		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1220		if ms.LoadMessageInfo() == nil {
1221			ms.StoreMessageInfo(mi)
1222		}
1223		return ms
1224	}
1225	return mi.MessageOf(x)
1226}
1227
1228// Deprecated: Use CriticalUserJourneyMetrics.ProtoReflect.Descriptor instead.
1229func (*CriticalUserJourneyMetrics) Descriptor() ([]byte, []int) {
1230	return file_metrics_proto_rawDescGZIP(), []int{6}
1231}
1232
1233func (x *CriticalUserJourneyMetrics) GetName() string {
1234	if x != nil && x.Name != nil {
1235		return *x.Name
1236	}
1237	return ""
1238}
1239
1240func (x *CriticalUserJourneyMetrics) GetMetrics() *MetricsBase {
1241	if x != nil {
1242		return x.Metrics
1243	}
1244	return nil
1245}
1246
1247type CriticalUserJourneysMetrics struct {
1248	state         protoimpl.MessageState
1249	sizeCache     protoimpl.SizeCache
1250	unknownFields protoimpl.UnknownFields
1251
1252	// A set of metrics from a run of the critical user journey tests.
1253	Cujs []*CriticalUserJourneyMetrics `protobuf:"bytes,1,rep,name=cujs" json:"cujs,omitempty"`
1254}
1255
1256func (x *CriticalUserJourneysMetrics) Reset() {
1257	*x = CriticalUserJourneysMetrics{}
1258	if protoimpl.UnsafeEnabled {
1259		mi := &file_metrics_proto_msgTypes[7]
1260		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1261		ms.StoreMessageInfo(mi)
1262	}
1263}
1264
1265func (x *CriticalUserJourneysMetrics) String() string {
1266	return protoimpl.X.MessageStringOf(x)
1267}
1268
1269func (*CriticalUserJourneysMetrics) ProtoMessage() {}
1270
1271func (x *CriticalUserJourneysMetrics) ProtoReflect() protoreflect.Message {
1272	mi := &file_metrics_proto_msgTypes[7]
1273	if protoimpl.UnsafeEnabled && x != nil {
1274		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1275		if ms.LoadMessageInfo() == nil {
1276			ms.StoreMessageInfo(mi)
1277		}
1278		return ms
1279	}
1280	return mi.MessageOf(x)
1281}
1282
1283// Deprecated: Use CriticalUserJourneysMetrics.ProtoReflect.Descriptor instead.
1284func (*CriticalUserJourneysMetrics) Descriptor() ([]byte, []int) {
1285	return file_metrics_proto_rawDescGZIP(), []int{7}
1286}
1287
1288func (x *CriticalUserJourneysMetrics) GetCujs() []*CriticalUserJourneyMetrics {
1289	if x != nil {
1290		return x.Cujs
1291	}
1292	return nil
1293}
1294
1295type SoongBuildMetrics struct {
1296	state         protoimpl.MessageState
1297	sizeCache     protoimpl.SizeCache
1298	unknownFields protoimpl.UnknownFields
1299
1300	// The number of modules handled by soong_build.
1301	Modules *uint32 `protobuf:"varint,1,opt,name=modules" json:"modules,omitempty"`
1302	// The total number of variants handled by soong_build.
1303	Variants *uint32 `protobuf:"varint,2,opt,name=variants" json:"variants,omitempty"`
1304	// The total number of allocations in soong_build.
1305	TotalAllocCount *uint64 `protobuf:"varint,3,opt,name=total_alloc_count,json=totalAllocCount" json:"total_alloc_count,omitempty"`
1306	// The total size of allocations in soong_build in bytes.
1307	TotalAllocSize *uint64 `protobuf:"varint,4,opt,name=total_alloc_size,json=totalAllocSize" json:"total_alloc_size,omitempty"`
1308	// The approximate maximum size of the heap in soong_build in bytes.
1309	MaxHeapSize *uint64 `protobuf:"varint,5,opt,name=max_heap_size,json=maxHeapSize" json:"max_heap_size,omitempty"`
1310	// Runtime metrics for soong_build execution.
1311	Events []*PerfInfo `protobuf:"bytes,6,rep,name=events" json:"events,omitempty"`
1312	// Mixed Builds information
1313	MixedBuildsInfo *MixedBuildsInfo `protobuf:"bytes,7,opt,name=mixed_builds_info,json=mixedBuildsInfo" json:"mixed_builds_info,omitempty"`
1314}
1315
1316func (x *SoongBuildMetrics) Reset() {
1317	*x = SoongBuildMetrics{}
1318	if protoimpl.UnsafeEnabled {
1319		mi := &file_metrics_proto_msgTypes[8]
1320		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1321		ms.StoreMessageInfo(mi)
1322	}
1323}
1324
1325func (x *SoongBuildMetrics) String() string {
1326	return protoimpl.X.MessageStringOf(x)
1327}
1328
1329func (*SoongBuildMetrics) ProtoMessage() {}
1330
1331func (x *SoongBuildMetrics) ProtoReflect() protoreflect.Message {
1332	mi := &file_metrics_proto_msgTypes[8]
1333	if protoimpl.UnsafeEnabled && x != nil {
1334		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1335		if ms.LoadMessageInfo() == nil {
1336			ms.StoreMessageInfo(mi)
1337		}
1338		return ms
1339	}
1340	return mi.MessageOf(x)
1341}
1342
1343// Deprecated: Use SoongBuildMetrics.ProtoReflect.Descriptor instead.
1344func (*SoongBuildMetrics) Descriptor() ([]byte, []int) {
1345	return file_metrics_proto_rawDescGZIP(), []int{8}
1346}
1347
1348func (x *SoongBuildMetrics) GetModules() uint32 {
1349	if x != nil && x.Modules != nil {
1350		return *x.Modules
1351	}
1352	return 0
1353}
1354
1355func (x *SoongBuildMetrics) GetVariants() uint32 {
1356	if x != nil && x.Variants != nil {
1357		return *x.Variants
1358	}
1359	return 0
1360}
1361
1362func (x *SoongBuildMetrics) GetTotalAllocCount() uint64 {
1363	if x != nil && x.TotalAllocCount != nil {
1364		return *x.TotalAllocCount
1365	}
1366	return 0
1367}
1368
1369func (x *SoongBuildMetrics) GetTotalAllocSize() uint64 {
1370	if x != nil && x.TotalAllocSize != nil {
1371		return *x.TotalAllocSize
1372	}
1373	return 0
1374}
1375
1376func (x *SoongBuildMetrics) GetMaxHeapSize() uint64 {
1377	if x != nil && x.MaxHeapSize != nil {
1378		return *x.MaxHeapSize
1379	}
1380	return 0
1381}
1382
1383func (x *SoongBuildMetrics) GetEvents() []*PerfInfo {
1384	if x != nil {
1385		return x.Events
1386	}
1387	return nil
1388}
1389
1390func (x *SoongBuildMetrics) GetMixedBuildsInfo() *MixedBuildsInfo {
1391	if x != nil {
1392		return x.MixedBuildsInfo
1393	}
1394	return nil
1395}
1396
1397type ExpConfigFetcher struct {
1398	state         protoimpl.MessageState
1399	sizeCache     protoimpl.SizeCache
1400	unknownFields protoimpl.UnknownFields
1401
1402	// The result of the call to expconfigfetcher
1403	// NO_CONFIG - Not part of experiment
1404	// CONFIG - Part of experiment, config copied successfully
1405	// ERROR - expconfigfetcher failed
1406	Status *ExpConfigFetcher_ConfigStatus `protobuf:"varint,1,opt,name=status,enum=soong_build_metrics.ExpConfigFetcher_ConfigStatus" json:"status,omitempty"`
1407	// The output config filename
1408	Filename *string `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"`
1409	// Time, in microseconds, taken by the expconfigfetcher
1410	Micros *uint64 `protobuf:"varint,3,opt,name=micros" json:"micros,omitempty"`
1411}
1412
1413func (x *ExpConfigFetcher) Reset() {
1414	*x = ExpConfigFetcher{}
1415	if protoimpl.UnsafeEnabled {
1416		mi := &file_metrics_proto_msgTypes[9]
1417		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1418		ms.StoreMessageInfo(mi)
1419	}
1420}
1421
1422func (x *ExpConfigFetcher) String() string {
1423	return protoimpl.X.MessageStringOf(x)
1424}
1425
1426func (*ExpConfigFetcher) ProtoMessage() {}
1427
1428func (x *ExpConfigFetcher) ProtoReflect() protoreflect.Message {
1429	mi := &file_metrics_proto_msgTypes[9]
1430	if protoimpl.UnsafeEnabled && x != nil {
1431		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1432		if ms.LoadMessageInfo() == nil {
1433			ms.StoreMessageInfo(mi)
1434		}
1435		return ms
1436	}
1437	return mi.MessageOf(x)
1438}
1439
1440// Deprecated: Use ExpConfigFetcher.ProtoReflect.Descriptor instead.
1441func (*ExpConfigFetcher) Descriptor() ([]byte, []int) {
1442	return file_metrics_proto_rawDescGZIP(), []int{9}
1443}
1444
1445func (x *ExpConfigFetcher) GetStatus() ExpConfigFetcher_ConfigStatus {
1446	if x != nil && x.Status != nil {
1447		return *x.Status
1448	}
1449	return ExpConfigFetcher_NO_CONFIG
1450}
1451
1452func (x *ExpConfigFetcher) GetFilename() string {
1453	if x != nil && x.Filename != nil {
1454		return *x.Filename
1455	}
1456	return ""
1457}
1458
1459func (x *ExpConfigFetcher) GetMicros() uint64 {
1460	if x != nil && x.Micros != nil {
1461		return *x.Micros
1462	}
1463	return 0
1464}
1465
1466type MixedBuildsInfo struct {
1467	state         protoimpl.MessageState
1468	sizeCache     protoimpl.SizeCache
1469	unknownFields protoimpl.UnknownFields
1470
1471	// Modules that are enabled for Mixed Builds.
1472	MixedBuildEnabledModules []string `protobuf:"bytes,1,rep,name=mixed_build_enabled_modules,json=mixedBuildEnabledModules" json:"mixed_build_enabled_modules,omitempty"`
1473	// Modules that are not enabled for MixedBuilds
1474	MixedBuildDisabledModules []string `protobuf:"bytes,2,rep,name=mixed_build_disabled_modules,json=mixedBuildDisabledModules" json:"mixed_build_disabled_modules,omitempty"`
1475}
1476
1477func (x *MixedBuildsInfo) Reset() {
1478	*x = MixedBuildsInfo{}
1479	if protoimpl.UnsafeEnabled {
1480		mi := &file_metrics_proto_msgTypes[10]
1481		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1482		ms.StoreMessageInfo(mi)
1483	}
1484}
1485
1486func (x *MixedBuildsInfo) String() string {
1487	return protoimpl.X.MessageStringOf(x)
1488}
1489
1490func (*MixedBuildsInfo) ProtoMessage() {}
1491
1492func (x *MixedBuildsInfo) ProtoReflect() protoreflect.Message {
1493	mi := &file_metrics_proto_msgTypes[10]
1494	if protoimpl.UnsafeEnabled && x != nil {
1495		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1496		if ms.LoadMessageInfo() == nil {
1497			ms.StoreMessageInfo(mi)
1498		}
1499		return ms
1500	}
1501	return mi.MessageOf(x)
1502}
1503
1504// Deprecated: Use MixedBuildsInfo.ProtoReflect.Descriptor instead.
1505func (*MixedBuildsInfo) Descriptor() ([]byte, []int) {
1506	return file_metrics_proto_rawDescGZIP(), []int{10}
1507}
1508
1509func (x *MixedBuildsInfo) GetMixedBuildEnabledModules() []string {
1510	if x != nil {
1511		return x.MixedBuildEnabledModules
1512	}
1513	return nil
1514}
1515
1516func (x *MixedBuildsInfo) GetMixedBuildDisabledModules() []string {
1517	if x != nil {
1518		return x.MixedBuildDisabledModules
1519	}
1520	return nil
1521}
1522
1523// CriticalPathInfo contains critical path nodes's information.
1524// A critical path is a path determining the minimum time needed for the whole build given perfect parallelism.
1525type CriticalPathInfo struct {
1526	state         protoimpl.MessageState
1527	sizeCache     protoimpl.SizeCache
1528	unknownFields protoimpl.UnknownFields
1529
1530	// Real time which the build system spent in microseconds
1531	ElapsedTimeMicros *uint64 `protobuf:"varint,1,opt,name=elapsed_time_micros,json=elapsedTimeMicros" json:"elapsed_time_micros,omitempty"`
1532	// The sum of execution time of the longest path from leave to the root in microseconds
1533	CriticalPathTimeMicros *uint64 `protobuf:"varint,2,opt,name=critical_path_time_micros,json=criticalPathTimeMicros" json:"critical_path_time_micros,omitempty"`
1534	// Detailed job information in a critical path.
1535	CriticalPath []*JobInfo `protobuf:"bytes,4,rep,name=critical_path,json=criticalPath" json:"critical_path,omitempty"`
1536	// Detailed job information for long running jobs (>30 seconds). These may or may not also be on a critical path.
1537	LongRunningJobs []*JobInfo `protobuf:"bytes,5,rep,name=long_running_jobs,json=longRunningJobs" json:"long_running_jobs,omitempty"`
1538}
1539
1540func (x *CriticalPathInfo) Reset() {
1541	*x = CriticalPathInfo{}
1542	if protoimpl.UnsafeEnabled {
1543		mi := &file_metrics_proto_msgTypes[11]
1544		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1545		ms.StoreMessageInfo(mi)
1546	}
1547}
1548
1549func (x *CriticalPathInfo) String() string {
1550	return protoimpl.X.MessageStringOf(x)
1551}
1552
1553func (*CriticalPathInfo) ProtoMessage() {}
1554
1555func (x *CriticalPathInfo) ProtoReflect() protoreflect.Message {
1556	mi := &file_metrics_proto_msgTypes[11]
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 CriticalPathInfo.ProtoReflect.Descriptor instead.
1568func (*CriticalPathInfo) Descriptor() ([]byte, []int) {
1569	return file_metrics_proto_rawDescGZIP(), []int{11}
1570}
1571
1572func (x *CriticalPathInfo) GetElapsedTimeMicros() uint64 {
1573	if x != nil && x.ElapsedTimeMicros != nil {
1574		return *x.ElapsedTimeMicros
1575	}
1576	return 0
1577}
1578
1579func (x *CriticalPathInfo) GetCriticalPathTimeMicros() uint64 {
1580	if x != nil && x.CriticalPathTimeMicros != nil {
1581		return *x.CriticalPathTimeMicros
1582	}
1583	return 0
1584}
1585
1586func (x *CriticalPathInfo) GetCriticalPath() []*JobInfo {
1587	if x != nil {
1588		return x.CriticalPath
1589	}
1590	return nil
1591}
1592
1593func (x *CriticalPathInfo) GetLongRunningJobs() []*JobInfo {
1594	if x != nil {
1595		return x.LongRunningJobs
1596	}
1597	return nil
1598}
1599
1600type JobInfo struct {
1601	state         protoimpl.MessageState
1602	sizeCache     protoimpl.SizeCache
1603	unknownFields protoimpl.UnknownFields
1604
1605	// Real time which a job spent in microseconds
1606	ElapsedTimeMicros *uint64 `protobuf:"varint,1,opt,name=elapsed_time_micros,json=elapsedTimeMicros" json:"elapsed_time_micros,omitempty"`
1607	// Description of a job
1608	JobDescription *string `protobuf:"bytes,2,opt,name=job_description,json=jobDescription" json:"job_description,omitempty"`
1609}
1610
1611func (x *JobInfo) Reset() {
1612	*x = JobInfo{}
1613	if protoimpl.UnsafeEnabled {
1614		mi := &file_metrics_proto_msgTypes[12]
1615		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1616		ms.StoreMessageInfo(mi)
1617	}
1618}
1619
1620func (x *JobInfo) String() string {
1621	return protoimpl.X.MessageStringOf(x)
1622}
1623
1624func (*JobInfo) ProtoMessage() {}
1625
1626func (x *JobInfo) ProtoReflect() protoreflect.Message {
1627	mi := &file_metrics_proto_msgTypes[12]
1628	if protoimpl.UnsafeEnabled && x != nil {
1629		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1630		if ms.LoadMessageInfo() == nil {
1631			ms.StoreMessageInfo(mi)
1632		}
1633		return ms
1634	}
1635	return mi.MessageOf(x)
1636}
1637
1638// Deprecated: Use JobInfo.ProtoReflect.Descriptor instead.
1639func (*JobInfo) Descriptor() ([]byte, []int) {
1640	return file_metrics_proto_rawDescGZIP(), []int{12}
1641}
1642
1643func (x *JobInfo) GetElapsedTimeMicros() uint64 {
1644	if x != nil && x.ElapsedTimeMicros != nil {
1645		return *x.ElapsedTimeMicros
1646	}
1647	return 0
1648}
1649
1650func (x *JobInfo) GetJobDescription() string {
1651	if x != nil && x.JobDescription != nil {
1652		return *x.JobDescription
1653	}
1654	return ""
1655}
1656
1657var File_metrics_proto protoreflect.FileDescriptor
1658
1659var file_metrics_proto_rawDesc = []byte{
1660	0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
1661	0x13, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74,
1662	0x72, 0x69, 0x63, 0x73, 0x22, 0x8a, 0x0f, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1663	0x42, 0x61, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x64, 0x61,
1664	0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01,
1665	0x28, 0x03, 0x52, 0x12, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
1666	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f,
1667	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49,
1668	0x64, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x65,
1669	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
1670	0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x65,
1671	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a,
1672	0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18,
1673	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f,
1674	0x64, 0x75, 0x63, 0x74, 0x12, 0x64, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62,
1675	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
1676	0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
1677	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1678	0x42, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
1679	0x74, 0x3a, 0x03, 0x45, 0x4e, 0x47, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x75,
1680	0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x61,
1681	0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
1682	0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
1683	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73,
1684	0x65, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52,
1685	0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x72, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x74,
1686	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61,
1687	0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
1688	0x41, 0x72, 0x63, 0x68, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74,
1689	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e,
1690	0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43,
1691	0x70, 0x75, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x68, 0x6f, 0x73,
1692	0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73,
1693	0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
1694	0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41,
1695	0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x08, 0x68, 0x6f,
1696	0x73, 0x74, 0x41, 0x72, 0x63, 0x68, 0x12, 0x52, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x32,
1697	0x6e, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e,
1698	0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
1699	0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73, 0x65, 0x2e,
1700	0x41, 0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x0b, 0x68,
1701	0x6f, 0x73, 0x74, 0x32, 0x6e, 0x64, 0x41, 0x72, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f,
1702	0x73, 0x74, 0x5f, 0x6f, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73,
1703	0x74, 0x4f, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x73, 0x5f, 0x65,
1704	0x78, 0x74, 0x72, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x6f, 0x73, 0x74,
1705	0x4f, 0x73, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f,
1706	0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
1707	0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x4f, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68,
1708	0x6f, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0e,
1709	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x41,
1710	0x72, 0x63, 0x68, 0x12, 0x2d, 0x0a, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x73,
1711	0x73, 0x5f, 0x32, 0x6e, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
1712	0x52, 0x10, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x32, 0x6e, 0x64, 0x41, 0x72,
1713	0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x10, 0x20,
1714	0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x73,
1715	0x65, 0x74, 0x75, 0x70, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b,
1716	0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d,
1717	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52,
1718	0x0a, 0x73, 0x65, 0x74, 0x75, 0x70, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x6b,
1719	0x61, 0x74, 0x69, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
1720	0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74,
1721	0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b,
1722	0x61, 0x74, 0x69, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x6f, 0x6f, 0x6e, 0x67,
1723	0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f,
1724	0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
1725	0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x73, 0x6f, 0x6f, 0x6e,
1726	0x67, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x5f, 0x72,
1727	0x75, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e,
1728	0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
1729	0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x52,
1730	0x75, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x15, 0x20, 0x01,
1731	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
1732	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66,
1733	0x6f, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x5a, 0x0a, 0x13, 0x73, 0x6f, 0x6f, 0x6e,
1734	0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18,
1735	0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75,
1736	0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x6f, 0x6f, 0x6e,
1737	0x67, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18,
1738	0x01, 0x52, 0x11, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74,
1739	0x72, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f,
1740	0x6e, 0x66, 0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6f, 0x6f,
1741	0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1742	0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x62, 0x75,
1743	0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73,
1744	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
1745	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f,
1746	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20,
1747	0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c,
1748	0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
1749	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x73, 0x79,
1750	0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
1751	0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
1752	0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f,
1753	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x72,
1754	0x75, 0x6e, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e,
1755	0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
1756	0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x52,
1757	0x75, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
1758	0x67, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32,
1759	0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
1760	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46,
1761	0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x10, 0x65, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69,
1762	0x67, 0x46, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f,
1763	0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52,
1764	0x0b, 0x6e, 0x6f, 0x6e, 0x5a, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d,
1765	0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20,
1766	0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
1767	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x72,
1768	0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
1769	0x74, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x20,
1770	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x53, 0x0a, 0x12,
1771	0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x6e,
1772	0x66, 0x6f, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67,
1773	0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43,
1774	0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52,
1775	0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66,
1776	0x6f, 0x22, 0x30, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
1777	0x74, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55,
1778	0x53, 0x45, 0x52, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x4e,
1779	0x47, 0x10, 0x02, 0x22, 0x3c, 0x0a, 0x04, 0x41, 0x72, 0x63, 0x68, 0x12, 0x0b, 0x0a, 0x07, 0x55,
1780	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x52, 0x4d, 0x10,
1781	0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x52, 0x4d, 0x36, 0x34, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03,
1782	0x58, 0x38, 0x36, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x58, 0x38, 0x36, 0x5f, 0x36, 0x34, 0x10,
1783	0x04, 0x22, 0x8a, 0x04, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69,
1784	0x67, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x18, 0x01, 0x20,
1785	0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x73, 0x65, 0x47, 0x6f, 0x6d, 0x61, 0x12, 0x17, 0x0a, 0x07,
1786	0x75, 0x73, 0x65, 0x5f, 0x72, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75,
1787	0x73, 0x65, 0x52, 0x62, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75,
1788	0x73, 0x65, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66,
1789	0x6f, 0x72, 0x63, 0x65, 0x55, 0x73, 0x65, 0x47, 0x6f, 0x6d, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x62,
1790	0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x18, 0x04, 0x20,
1791	0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x41, 0x73, 0x4e, 0x69, 0x6e, 0x6a,
1792	0x61, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x6d, 0x69, 0x78, 0x65, 0x64,
1793	0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x62, 0x61,
1794	0x7a, 0x65, 0x6c, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x18, 0x0a,
1795	0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
1796	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x66, 0x6f, 0x72, 0x63, 0x65,
1797	0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x6d,
1798	0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
1799	0x52, 0x1b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61,
1800	0x7a, 0x65, 0x6c, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x79, 0x0a,
1801	0x18, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6c, 0x69,
1802	0x73, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32,
1803	0x36, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
1804	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69,
1805	0x67, 0x2e, 0x4e, 0x69, 0x6e, 0x6a, 0x61, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73,
1806	0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x08, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45,
1807	0x44, 0x52, 0x15, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69,
1808	0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x74, 0x0a, 0x15, 0x4e, 0x69, 0x6e, 0x6a,
1809	0x61, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63,
1810	0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x00, 0x12,
1811	0x0d, 0x0a, 0x09, 0x4e, 0x49, 0x4e, 0x4a, 0x41, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x01, 0x12, 0x16,
1812	0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x4c, 0x59, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x42,
1813	0x55, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e,
1814	0x41, 0x4c, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x48, 0x49, 0x4e,
1815	0x54, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x53, 0x4f, 0x4f, 0x4e, 0x47, 0x10, 0x04, 0x22, 0x6f,
1816	0x0a, 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
1817	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x68,
1818	0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20,
1819	0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63,
1820	0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x69,
1821	0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
1822	0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x70, 0x75, 0x73, 0x22,
1823	0xca, 0x02, 0x0a, 0x08, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b,
1824	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
1825	0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
1826	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
1827	0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
1828	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
1829	0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04,
1830	0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21,
1831	0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01,
1832	0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73,
1833	0x65, 0x12, 0x60, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x72,
1834	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03,
1835	0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
1836	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
1837	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x15, 0x70, 0x72,
1838	0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
1839	0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f,
1840	0x65, 0x78, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6e, 0x6f, 0x6e, 0x5a,
1841	0x65, 0x72, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72,
1842	0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
1843	0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb9, 0x03, 0x0a,
1844	0x13, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
1845	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
1846	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72,
1847	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01,
1848	0x28, 0x04, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72,
1849	0x6f, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x6d,
1850	0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10,
1851	0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73,
1852	0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x73, 0x73, 0x5f, 0x6b, 0x62, 0x18, 0x04,
1853	0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x52, 0x73, 0x73, 0x4b, 0x62, 0x12, 0x2a,
1854	0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x75,
1855	0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x6f, 0x72,
1856	0x50, 0x61, 0x67, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61,
1857	0x6a, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18,
1858	0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65,
1859	0x46, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x6f, 0x5f, 0x69, 0x6e, 0x70,
1860	0x75, 0x74, 0x5f, 0x6b, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6f, 0x49,
1861	0x6e, 0x70, 0x75, 0x74, 0x4b, 0x62, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6f, 0x5f, 0x6f, 0x75, 0x74,
1862	0x70, 0x75, 0x74, 0x5f, 0x6b, 0x62, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6f,
1863	0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4b, 0x62, 0x12, 0x3c, 0x0a, 0x1a, 0x76, 0x6f, 0x6c, 0x75,
1864	0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x77,
1865	0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x76, 0x6f,
1866	0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x53, 0x77,
1867	0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x75,
1868	0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x77,
1869	0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x69, 0x6e,
1870	0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
1871	0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x0e, 0x4d, 0x6f, 0x64,
1872	0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5b, 0x0a, 0x0c, 0x62,
1873	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
1874	0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f,
1875	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79,
1876	0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x79, 0x73, 0x74,
1877	0x65, 0x6d, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x0b, 0x62, 0x75, 0x69,
1878	0x6c, 0x64, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75,
1879	0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d,
1880	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6d,
1881	0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
1882	0x0d, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22,
1883	0x2f, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x0b,
1884	0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53,
1885	0x4f, 0x4f, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x41, 0x4b, 0x45, 0x10, 0x02,
1886	0x22, 0x6c, 0x0a, 0x1a, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72,
1887	0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x12,
1888	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
1889	0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20,
1890	0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c,
1891	0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
1892	0x73, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x62,
1893	0x0a, 0x1b, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x6f,
1894	0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a,
1895	0x04, 0x63, 0x75, 0x6a, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x6f,
1896	0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
1897	0x73, 0x2e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4a, 0x6f,
1898	0x75, 0x72, 0x6e, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x04, 0x63, 0x75,
1899	0x6a, 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x11, 0x53, 0x6f, 0x6f, 0x6e, 0x67, 0x42, 0x75, 0x69, 0x6c,
1900	0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75,
1901	0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
1902	0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02,
1903	0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2a,
1904	0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x63, 0x6f,
1905	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c,
1906	0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f,
1907	0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04,
1908	0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6c, 0x6c, 0x6f, 0x63,
1909	0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x65, 0x61, 0x70,
1910	0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78,
1911	0x48, 0x65, 0x61, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e,
1912	0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67,
1913	0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50,
1914	0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12,
1915	0x50, 0x0a, 0x11, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f,
1916	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x6f, 0x6f,
1917	0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1918	0x2e, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f,
1919	0x52, 0x0f, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x49, 0x6e, 0x66,
1920	0x6f, 0x22, 0xdb, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46,
1921	0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
1922	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62,
1923	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x70,
1924	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x43, 0x6f,
1925	0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
1926	0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
1927	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16,
1928	0x0a, 0x06, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06,
1929	0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
1930	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e,
1931	0x46, 0x49, 0x47, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10,
1932	0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d,
1933	0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x43, 0x45, 0x52, 0x54, 0x10, 0x03, 0x22,
1934	0x91, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x49,
1935	0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x1b, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69,
1936	0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
1937	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42,
1938	0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
1939	0x65, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c,
1940	0x64, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c,
1941	0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42,
1942	0x75, 0x69, 0x6c, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75,
1943	0x6c, 0x65, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c,
1944	0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6c, 0x61, 0x70,
1945	0x73, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18,
1946	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69,
1947	0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x72, 0x69, 0x74,
1948	0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d,
1949	0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x63, 0x72, 0x69,
1950	0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63,
1951	0x72, 0x6f, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f,
1952	0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x6f, 0x6f,
1953	0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1954	0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63,
1955	0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x11, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72,
1956	0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
1957	0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f,
1958	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52,
1959	0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73,
1960	0x22, 0x62, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x65,
1961	0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72,
1962	0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65,
1963	0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6a,
1964	0x6f, 0x62, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
1965	0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
1966	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x28, 0x5a, 0x26, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f,
1967	0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x2f, 0x75, 0x69, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1968	0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1969}
1970
1971var (
1972	file_metrics_proto_rawDescOnce sync.Once
1973	file_metrics_proto_rawDescData = file_metrics_proto_rawDesc
1974)
1975
1976func file_metrics_proto_rawDescGZIP() []byte {
1977	file_metrics_proto_rawDescOnce.Do(func() {
1978		file_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_metrics_proto_rawDescData)
1979	})
1980	return file_metrics_proto_rawDescData
1981}
1982
1983var file_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
1984var file_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
1985var file_metrics_proto_goTypes = []interface{}{
1986	(MetricsBase_BuildVariant)(0),          // 0: soong_build_metrics.MetricsBase.BuildVariant
1987	(MetricsBase_Arch)(0),                  // 1: soong_build_metrics.MetricsBase.Arch
1988	(BuildConfig_NinjaWeightListSource)(0), // 2: soong_build_metrics.BuildConfig.NinjaWeightListSource
1989	(ModuleTypeInfo_BuildSystem)(0),        // 3: soong_build_metrics.ModuleTypeInfo.BuildSystem
1990	(ExpConfigFetcher_ConfigStatus)(0),     // 4: soong_build_metrics.ExpConfigFetcher.ConfigStatus
1991	(*MetricsBase)(nil),                    // 5: soong_build_metrics.MetricsBase
1992	(*BuildConfig)(nil),                    // 6: soong_build_metrics.BuildConfig
1993	(*SystemResourceInfo)(nil),             // 7: soong_build_metrics.SystemResourceInfo
1994	(*PerfInfo)(nil),                       // 8: soong_build_metrics.PerfInfo
1995	(*ProcessResourceInfo)(nil),            // 9: soong_build_metrics.ProcessResourceInfo
1996	(*ModuleTypeInfo)(nil),                 // 10: soong_build_metrics.ModuleTypeInfo
1997	(*CriticalUserJourneyMetrics)(nil),     // 11: soong_build_metrics.CriticalUserJourneyMetrics
1998	(*CriticalUserJourneysMetrics)(nil),    // 12: soong_build_metrics.CriticalUserJourneysMetrics
1999	(*SoongBuildMetrics)(nil),              // 13: soong_build_metrics.SoongBuildMetrics
2000	(*ExpConfigFetcher)(nil),               // 14: soong_build_metrics.ExpConfigFetcher
2001	(*MixedBuildsInfo)(nil),                // 15: soong_build_metrics.MixedBuildsInfo
2002	(*CriticalPathInfo)(nil),               // 16: soong_build_metrics.CriticalPathInfo
2003	(*JobInfo)(nil),                        // 17: soong_build_metrics.JobInfo
2004}
2005var file_metrics_proto_depIdxs = []int32{
2006	0,  // 0: soong_build_metrics.MetricsBase.target_build_variant:type_name -> soong_build_metrics.MetricsBase.BuildVariant
2007	1,  // 1: soong_build_metrics.MetricsBase.target_arch:type_name -> soong_build_metrics.MetricsBase.Arch
2008	1,  // 2: soong_build_metrics.MetricsBase.host_arch:type_name -> soong_build_metrics.MetricsBase.Arch
2009	1,  // 3: soong_build_metrics.MetricsBase.host_2nd_arch:type_name -> soong_build_metrics.MetricsBase.Arch
2010	8,  // 4: soong_build_metrics.MetricsBase.setup_tools:type_name -> soong_build_metrics.PerfInfo
2011	8,  // 5: soong_build_metrics.MetricsBase.kati_runs:type_name -> soong_build_metrics.PerfInfo
2012	8,  // 6: soong_build_metrics.MetricsBase.soong_runs:type_name -> soong_build_metrics.PerfInfo
2013	8,  // 7: soong_build_metrics.MetricsBase.ninja_runs:type_name -> soong_build_metrics.PerfInfo
2014	8,  // 8: soong_build_metrics.MetricsBase.total:type_name -> soong_build_metrics.PerfInfo
2015	13, // 9: soong_build_metrics.MetricsBase.soong_build_metrics:type_name -> soong_build_metrics.SoongBuildMetrics
2016	6,  // 10: soong_build_metrics.MetricsBase.build_config:type_name -> soong_build_metrics.BuildConfig
2017	7,  // 11: soong_build_metrics.MetricsBase.system_resource_info:type_name -> soong_build_metrics.SystemResourceInfo
2018	8,  // 12: soong_build_metrics.MetricsBase.bazel_runs:type_name -> soong_build_metrics.PerfInfo
2019	14, // 13: soong_build_metrics.MetricsBase.exp_config_fetcher:type_name -> soong_build_metrics.ExpConfigFetcher
2020	16, // 14: soong_build_metrics.MetricsBase.critical_path_info:type_name -> soong_build_metrics.CriticalPathInfo
2021	2,  // 15: soong_build_metrics.BuildConfig.ninja_weight_list_source:type_name -> soong_build_metrics.BuildConfig.NinjaWeightListSource
2022	9,  // 16: soong_build_metrics.PerfInfo.processes_resource_info:type_name -> soong_build_metrics.ProcessResourceInfo
2023	3,  // 17: soong_build_metrics.ModuleTypeInfo.build_system:type_name -> soong_build_metrics.ModuleTypeInfo.BuildSystem
2024	5,  // 18: soong_build_metrics.CriticalUserJourneyMetrics.metrics:type_name -> soong_build_metrics.MetricsBase
2025	11, // 19: soong_build_metrics.CriticalUserJourneysMetrics.cujs:type_name -> soong_build_metrics.CriticalUserJourneyMetrics
2026	8,  // 20: soong_build_metrics.SoongBuildMetrics.events:type_name -> soong_build_metrics.PerfInfo
2027	15, // 21: soong_build_metrics.SoongBuildMetrics.mixed_builds_info:type_name -> soong_build_metrics.MixedBuildsInfo
2028	4,  // 22: soong_build_metrics.ExpConfigFetcher.status:type_name -> soong_build_metrics.ExpConfigFetcher.ConfigStatus
2029	17, // 23: soong_build_metrics.CriticalPathInfo.critical_path:type_name -> soong_build_metrics.JobInfo
2030	17, // 24: soong_build_metrics.CriticalPathInfo.long_running_jobs:type_name -> soong_build_metrics.JobInfo
2031	25, // [25:25] is the sub-list for method output_type
2032	25, // [25:25] is the sub-list for method input_type
2033	25, // [25:25] is the sub-list for extension type_name
2034	25, // [25:25] is the sub-list for extension extendee
2035	0,  // [0:25] is the sub-list for field type_name
2036}
2037
2038func init() { file_metrics_proto_init() }
2039func file_metrics_proto_init() {
2040	if File_metrics_proto != nil {
2041		return
2042	}
2043	if !protoimpl.UnsafeEnabled {
2044		file_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
2045			switch v := v.(*MetricsBase); i {
2046			case 0:
2047				return &v.state
2048			case 1:
2049				return &v.sizeCache
2050			case 2:
2051				return &v.unknownFields
2052			default:
2053				return nil
2054			}
2055		}
2056		file_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
2057			switch v := v.(*BuildConfig); i {
2058			case 0:
2059				return &v.state
2060			case 1:
2061				return &v.sizeCache
2062			case 2:
2063				return &v.unknownFields
2064			default:
2065				return nil
2066			}
2067		}
2068		file_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
2069			switch v := v.(*SystemResourceInfo); i {
2070			case 0:
2071				return &v.state
2072			case 1:
2073				return &v.sizeCache
2074			case 2:
2075				return &v.unknownFields
2076			default:
2077				return nil
2078			}
2079		}
2080		file_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
2081			switch v := v.(*PerfInfo); i {
2082			case 0:
2083				return &v.state
2084			case 1:
2085				return &v.sizeCache
2086			case 2:
2087				return &v.unknownFields
2088			default:
2089				return nil
2090			}
2091		}
2092		file_metrics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
2093			switch v := v.(*ProcessResourceInfo); i {
2094			case 0:
2095				return &v.state
2096			case 1:
2097				return &v.sizeCache
2098			case 2:
2099				return &v.unknownFields
2100			default:
2101				return nil
2102			}
2103		}
2104		file_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
2105			switch v := v.(*ModuleTypeInfo); i {
2106			case 0:
2107				return &v.state
2108			case 1:
2109				return &v.sizeCache
2110			case 2:
2111				return &v.unknownFields
2112			default:
2113				return nil
2114			}
2115		}
2116		file_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
2117			switch v := v.(*CriticalUserJourneyMetrics); i {
2118			case 0:
2119				return &v.state
2120			case 1:
2121				return &v.sizeCache
2122			case 2:
2123				return &v.unknownFields
2124			default:
2125				return nil
2126			}
2127		}
2128		file_metrics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
2129			switch v := v.(*CriticalUserJourneysMetrics); i {
2130			case 0:
2131				return &v.state
2132			case 1:
2133				return &v.sizeCache
2134			case 2:
2135				return &v.unknownFields
2136			default:
2137				return nil
2138			}
2139		}
2140		file_metrics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
2141			switch v := v.(*SoongBuildMetrics); i {
2142			case 0:
2143				return &v.state
2144			case 1:
2145				return &v.sizeCache
2146			case 2:
2147				return &v.unknownFields
2148			default:
2149				return nil
2150			}
2151		}
2152		file_metrics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
2153			switch v := v.(*ExpConfigFetcher); i {
2154			case 0:
2155				return &v.state
2156			case 1:
2157				return &v.sizeCache
2158			case 2:
2159				return &v.unknownFields
2160			default:
2161				return nil
2162			}
2163		}
2164		file_metrics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
2165			switch v := v.(*MixedBuildsInfo); i {
2166			case 0:
2167				return &v.state
2168			case 1:
2169				return &v.sizeCache
2170			case 2:
2171				return &v.unknownFields
2172			default:
2173				return nil
2174			}
2175		}
2176		file_metrics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
2177			switch v := v.(*CriticalPathInfo); i {
2178			case 0:
2179				return &v.state
2180			case 1:
2181				return &v.sizeCache
2182			case 2:
2183				return &v.unknownFields
2184			default:
2185				return nil
2186			}
2187		}
2188		file_metrics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
2189			switch v := v.(*JobInfo); i {
2190			case 0:
2191				return &v.state
2192			case 1:
2193				return &v.sizeCache
2194			case 2:
2195				return &v.unknownFields
2196			default:
2197				return nil
2198			}
2199		}
2200	}
2201	type x struct{}
2202	out := protoimpl.TypeBuilder{
2203		File: protoimpl.DescBuilder{
2204			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2205			RawDescriptor: file_metrics_proto_rawDesc,
2206			NumEnums:      5,
2207			NumMessages:   13,
2208			NumExtensions: 0,
2209			NumServices:   0,
2210		},
2211		GoTypes:           file_metrics_proto_goTypes,
2212		DependencyIndexes: file_metrics_proto_depIdxs,
2213		EnumInfos:         file_metrics_proto_enumTypes,
2214		MessageInfos:      file_metrics_proto_msgTypes,
2215	}.Build()
2216	File_metrics_proto = out.File
2217	file_metrics_proto_rawDesc = nil
2218	file_metrics_proto_goTypes = nil
2219	file_metrics_proto_depIdxs = nil
2220}
2221