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.12
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{8, 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{12, 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	// Environment variables that have changed value since the previous build,
424	// which were responsible for retriggering build analysis.
425	// Note that not all changed environment variables result in analysis retriggering.
426	// If there was no previous build, this list will be empty.
427	ChangedEnvironmentVariable []string `protobuf:"bytes,34,rep,name=changed_environment_variable,json=changedEnvironmentVariable" json:"changed_environment_variable,omitempty"`
428}
429
430// Default values for MetricsBase fields.
431const (
432	Default_MetricsBase_TargetBuildVariant = MetricsBase_ENG
433	Default_MetricsBase_TargetArch         = MetricsBase_UNKNOWN
434	Default_MetricsBase_HostArch           = MetricsBase_UNKNOWN
435	Default_MetricsBase_Host_2NdArch       = MetricsBase_UNKNOWN
436)
437
438func (x *MetricsBase) Reset() {
439	*x = MetricsBase{}
440	if protoimpl.UnsafeEnabled {
441		mi := &file_metrics_proto_msgTypes[0]
442		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
443		ms.StoreMessageInfo(mi)
444	}
445}
446
447func (x *MetricsBase) String() string {
448	return protoimpl.X.MessageStringOf(x)
449}
450
451func (*MetricsBase) ProtoMessage() {}
452
453func (x *MetricsBase) ProtoReflect() protoreflect.Message {
454	mi := &file_metrics_proto_msgTypes[0]
455	if protoimpl.UnsafeEnabled && x != nil {
456		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
457		if ms.LoadMessageInfo() == nil {
458			ms.StoreMessageInfo(mi)
459		}
460		return ms
461	}
462	return mi.MessageOf(x)
463}
464
465// Deprecated: Use MetricsBase.ProtoReflect.Descriptor instead.
466func (*MetricsBase) Descriptor() ([]byte, []int) {
467	return file_metrics_proto_rawDescGZIP(), []int{0}
468}
469
470func (x *MetricsBase) GetBuildDateTimestamp() int64 {
471	if x != nil && x.BuildDateTimestamp != nil {
472		return *x.BuildDateTimestamp
473	}
474	return 0
475}
476
477func (x *MetricsBase) GetBuildId() string {
478	if x != nil && x.BuildId != nil {
479		return *x.BuildId
480	}
481	return ""
482}
483
484func (x *MetricsBase) GetPlatformVersionCodename() string {
485	if x != nil && x.PlatformVersionCodename != nil {
486		return *x.PlatformVersionCodename
487	}
488	return ""
489}
490
491func (x *MetricsBase) GetTargetProduct() string {
492	if x != nil && x.TargetProduct != nil {
493		return *x.TargetProduct
494	}
495	return ""
496}
497
498func (x *MetricsBase) GetTargetBuildVariant() MetricsBase_BuildVariant {
499	if x != nil && x.TargetBuildVariant != nil {
500		return *x.TargetBuildVariant
501	}
502	return Default_MetricsBase_TargetBuildVariant
503}
504
505func (x *MetricsBase) GetTargetArch() MetricsBase_Arch {
506	if x != nil && x.TargetArch != nil {
507		return *x.TargetArch
508	}
509	return Default_MetricsBase_TargetArch
510}
511
512func (x *MetricsBase) GetTargetArchVariant() string {
513	if x != nil && x.TargetArchVariant != nil {
514		return *x.TargetArchVariant
515	}
516	return ""
517}
518
519func (x *MetricsBase) GetTargetCpuVariant() string {
520	if x != nil && x.TargetCpuVariant != nil {
521		return *x.TargetCpuVariant
522	}
523	return ""
524}
525
526func (x *MetricsBase) GetHostArch() MetricsBase_Arch {
527	if x != nil && x.HostArch != nil {
528		return *x.HostArch
529	}
530	return Default_MetricsBase_HostArch
531}
532
533func (x *MetricsBase) GetHost_2NdArch() MetricsBase_Arch {
534	if x != nil && x.Host_2NdArch != nil {
535		return *x.Host_2NdArch
536	}
537	return Default_MetricsBase_Host_2NdArch
538}
539
540func (x *MetricsBase) GetHostOs() string {
541	if x != nil && x.HostOs != nil {
542		return *x.HostOs
543	}
544	return ""
545}
546
547func (x *MetricsBase) GetHostOsExtra() string {
548	if x != nil && x.HostOsExtra != nil {
549		return *x.HostOsExtra
550	}
551	return ""
552}
553
554func (x *MetricsBase) GetHostCrossOs() string {
555	if x != nil && x.HostCrossOs != nil {
556		return *x.HostCrossOs
557	}
558	return ""
559}
560
561func (x *MetricsBase) GetHostCrossArch() string {
562	if x != nil && x.HostCrossArch != nil {
563		return *x.HostCrossArch
564	}
565	return ""
566}
567
568func (x *MetricsBase) GetHostCross_2NdArch() string {
569	if x != nil && x.HostCross_2NdArch != nil {
570		return *x.HostCross_2NdArch
571	}
572	return ""
573}
574
575func (x *MetricsBase) GetOutDir() string {
576	if x != nil && x.OutDir != nil {
577		return *x.OutDir
578	}
579	return ""
580}
581
582func (x *MetricsBase) GetSetupTools() []*PerfInfo {
583	if x != nil {
584		return x.SetupTools
585	}
586	return nil
587}
588
589func (x *MetricsBase) GetKatiRuns() []*PerfInfo {
590	if x != nil {
591		return x.KatiRuns
592	}
593	return nil
594}
595
596func (x *MetricsBase) GetSoongRuns() []*PerfInfo {
597	if x != nil {
598		return x.SoongRuns
599	}
600	return nil
601}
602
603func (x *MetricsBase) GetNinjaRuns() []*PerfInfo {
604	if x != nil {
605		return x.NinjaRuns
606	}
607	return nil
608}
609
610func (x *MetricsBase) GetTotal() *PerfInfo {
611	if x != nil {
612		return x.Total
613	}
614	return nil
615}
616
617// Deprecated: Marked as deprecated in metrics.proto.
618func (x *MetricsBase) GetSoongBuildMetrics() *SoongBuildMetrics {
619	if x != nil {
620		return x.SoongBuildMetrics
621	}
622	return nil
623}
624
625func (x *MetricsBase) GetBuildConfig() *BuildConfig {
626	if x != nil {
627		return x.BuildConfig
628	}
629	return nil
630}
631
632func (x *MetricsBase) GetHostname() string {
633	if x != nil && x.Hostname != nil {
634		return *x.Hostname
635	}
636	return ""
637}
638
639func (x *MetricsBase) GetSystemResourceInfo() *SystemResourceInfo {
640	if x != nil {
641		return x.SystemResourceInfo
642	}
643	return nil
644}
645
646func (x *MetricsBase) GetBuildCommand() string {
647	if x != nil && x.BuildCommand != nil {
648		return *x.BuildCommand
649	}
650	return ""
651}
652
653func (x *MetricsBase) GetBazelRuns() []*PerfInfo {
654	if x != nil {
655		return x.BazelRuns
656	}
657	return nil
658}
659
660func (x *MetricsBase) GetExpConfigFetcher() *ExpConfigFetcher {
661	if x != nil {
662		return x.ExpConfigFetcher
663	}
664	return nil
665}
666
667func (x *MetricsBase) GetNonZeroExit() bool {
668	if x != nil && x.NonZeroExit != nil {
669		return *x.NonZeroExit
670	}
671	return false
672}
673
674func (x *MetricsBase) GetErrorMessage() string {
675	if x != nil && x.ErrorMessage != nil {
676		return *x.ErrorMessage
677	}
678	return ""
679}
680
681func (x *MetricsBase) GetManifestUrl() string {
682	if x != nil && x.ManifestUrl != nil {
683		return *x.ManifestUrl
684	}
685	return ""
686}
687
688func (x *MetricsBase) GetBranch() string {
689	if x != nil && x.Branch != nil {
690		return *x.Branch
691	}
692	return ""
693}
694
695func (x *MetricsBase) GetCriticalPathInfo() *CriticalPathInfo {
696	if x != nil {
697		return x.CriticalPathInfo
698	}
699	return nil
700}
701
702func (x *MetricsBase) GetChangedEnvironmentVariable() []string {
703	if x != nil {
704		return x.ChangedEnvironmentVariable
705	}
706	return nil
707}
708
709type BuildConfig struct {
710	state         protoimpl.MessageState
711	sizeCache     protoimpl.SizeCache
712	unknownFields protoimpl.UnknownFields
713
714	UseGoma      *bool `protobuf:"varint,1,opt,name=use_goma,json=useGoma" json:"use_goma,omitempty"`
715	UseRbe       *bool `protobuf:"varint,2,opt,name=use_rbe,json=useRbe" json:"use_rbe,omitempty"`
716	ForceUseGoma *bool `protobuf:"varint,3,opt,name=force_use_goma,json=forceUseGoma" json:"force_use_goma,omitempty"`
717	// Whether the Bazel is acting as the Ninja executor for this build.
718	BazelAsNinja *bool `protobuf:"varint,4,opt,name=bazel_as_ninja,json=bazelAsNinja" json:"bazel_as_ninja,omitempty"`
719	// Whether build is occurring in a mixed build mode, where Bazel maintains the
720	// definition and build of some modules in cooperation with Soong.
721	BazelMixedBuild *bool `protobuf:"varint,5,opt,name=bazel_mixed_build,json=bazelMixedBuild" json:"bazel_mixed_build,omitempty"`
722	// These are the targets soong passes to ninja, these targets include special
723	// targets such as droid as well as the regular build targets.
724	Targets []string `protobuf:"bytes,6,rep,name=targets" json:"targets,omitempty"`
725	// Whether the user explicitly disabled bazel mixed builds for this build.
726	ForceDisableBazelMixedBuild *bool `protobuf:"varint,7,opt,name=force_disable_bazel_mixed_build,json=forceDisableBazelMixedBuild" json:"force_disable_bazel_mixed_build,omitempty"`
727	// NOT_USED - ninja doesn't use weight list.
728	// NINJA_LOG - ninja uses weight list based on previous builds by ninja log
729	// EVENLY_DISTRIBUTED - ninja thinks every task has the same weight.
730	// EXTERNAL_FILE - ninja uses an external custom weight list
731	// HINT_FROM_SOONG - ninja uses a prioritized module list from Soong
732	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"`
733}
734
735// Default values for BuildConfig fields.
736const (
737	Default_BuildConfig_NinjaWeightListSource = BuildConfig_NOT_USED
738)
739
740func (x *BuildConfig) Reset() {
741	*x = BuildConfig{}
742	if protoimpl.UnsafeEnabled {
743		mi := &file_metrics_proto_msgTypes[1]
744		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
745		ms.StoreMessageInfo(mi)
746	}
747}
748
749func (x *BuildConfig) String() string {
750	return protoimpl.X.MessageStringOf(x)
751}
752
753func (*BuildConfig) ProtoMessage() {}
754
755func (x *BuildConfig) ProtoReflect() protoreflect.Message {
756	mi := &file_metrics_proto_msgTypes[1]
757	if protoimpl.UnsafeEnabled && x != nil {
758		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
759		if ms.LoadMessageInfo() == nil {
760			ms.StoreMessageInfo(mi)
761		}
762		return ms
763	}
764	return mi.MessageOf(x)
765}
766
767// Deprecated: Use BuildConfig.ProtoReflect.Descriptor instead.
768func (*BuildConfig) Descriptor() ([]byte, []int) {
769	return file_metrics_proto_rawDescGZIP(), []int{1}
770}
771
772func (x *BuildConfig) GetUseGoma() bool {
773	if x != nil && x.UseGoma != nil {
774		return *x.UseGoma
775	}
776	return false
777}
778
779func (x *BuildConfig) GetUseRbe() bool {
780	if x != nil && x.UseRbe != nil {
781		return *x.UseRbe
782	}
783	return false
784}
785
786func (x *BuildConfig) GetForceUseGoma() bool {
787	if x != nil && x.ForceUseGoma != nil {
788		return *x.ForceUseGoma
789	}
790	return false
791}
792
793func (x *BuildConfig) GetBazelAsNinja() bool {
794	if x != nil && x.BazelAsNinja != nil {
795		return *x.BazelAsNinja
796	}
797	return false
798}
799
800func (x *BuildConfig) GetBazelMixedBuild() bool {
801	if x != nil && x.BazelMixedBuild != nil {
802		return *x.BazelMixedBuild
803	}
804	return false
805}
806
807func (x *BuildConfig) GetTargets() []string {
808	if x != nil {
809		return x.Targets
810	}
811	return nil
812}
813
814func (x *BuildConfig) GetForceDisableBazelMixedBuild() bool {
815	if x != nil && x.ForceDisableBazelMixedBuild != nil {
816		return *x.ForceDisableBazelMixedBuild
817	}
818	return false
819}
820
821func (x *BuildConfig) GetNinjaWeightListSource() BuildConfig_NinjaWeightListSource {
822	if x != nil && x.NinjaWeightListSource != nil {
823		return *x.NinjaWeightListSource
824	}
825	return Default_BuildConfig_NinjaWeightListSource
826}
827
828type SystemResourceInfo struct {
829	state         protoimpl.MessageState
830	sizeCache     protoimpl.SizeCache
831	unknownFields protoimpl.UnknownFields
832
833	// The total physical memory in bytes.
834	TotalPhysicalMemory *uint64 `protobuf:"varint,1,opt,name=total_physical_memory,json=totalPhysicalMemory" json:"total_physical_memory,omitempty"`
835	// The total of available cores for building
836	AvailableCpus *int32 `protobuf:"varint,2,opt,name=available_cpus,json=availableCpus" json:"available_cpus,omitempty"`
837}
838
839func (x *SystemResourceInfo) Reset() {
840	*x = SystemResourceInfo{}
841	if protoimpl.UnsafeEnabled {
842		mi := &file_metrics_proto_msgTypes[2]
843		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
844		ms.StoreMessageInfo(mi)
845	}
846}
847
848func (x *SystemResourceInfo) String() string {
849	return protoimpl.X.MessageStringOf(x)
850}
851
852func (*SystemResourceInfo) ProtoMessage() {}
853
854func (x *SystemResourceInfo) ProtoReflect() protoreflect.Message {
855	mi := &file_metrics_proto_msgTypes[2]
856	if protoimpl.UnsafeEnabled && x != nil {
857		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
858		if ms.LoadMessageInfo() == nil {
859			ms.StoreMessageInfo(mi)
860		}
861		return ms
862	}
863	return mi.MessageOf(x)
864}
865
866// Deprecated: Use SystemResourceInfo.ProtoReflect.Descriptor instead.
867func (*SystemResourceInfo) Descriptor() ([]byte, []int) {
868	return file_metrics_proto_rawDescGZIP(), []int{2}
869}
870
871func (x *SystemResourceInfo) GetTotalPhysicalMemory() uint64 {
872	if x != nil && x.TotalPhysicalMemory != nil {
873		return *x.TotalPhysicalMemory
874	}
875	return 0
876}
877
878func (x *SystemResourceInfo) GetAvailableCpus() int32 {
879	if x != nil && x.AvailableCpus != nil {
880		return *x.AvailableCpus
881	}
882	return 0
883}
884
885type PerfInfo struct {
886	state         protoimpl.MessageState
887	sizeCache     protoimpl.SizeCache
888	unknownFields protoimpl.UnknownFields
889
890	// The description for the phase/action/part while the tool running.
891	Description *string `protobuf:"bytes,1,opt,name=description" json:"description,omitempty"`
892	// The name for the running phase/action/part.
893	Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
894	// The absolute start time.
895	// The number of nanoseconds elapsed since January 1, 1970 UTC.
896	StartTime *uint64 `protobuf:"varint,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
897	// The real running time.
898	// The number of nanoseconds elapsed since start_time.
899	RealTime *uint64 `protobuf:"varint,4,opt,name=real_time,json=realTime" json:"real_time,omitempty"`
900	// The number of MB for memory use (deprecated as it is too generic).
901	//
902	// Deprecated: Marked as deprecated in metrics.proto.
903	MemoryUse *uint64 `protobuf:"varint,5,opt,name=memory_use,json=memoryUse" json:"memory_use,omitempty"`
904	// The resource information of each executed process.
905	ProcessesResourceInfo []*ProcessResourceInfo `protobuf:"bytes,6,rep,name=processes_resource_info,json=processesResourceInfo" json:"processes_resource_info,omitempty"`
906	// Whether the phase of tool running exited with a panic or non-zero exit
907	// code.
908	NonZeroExit *bool `protobuf:"varint,7,opt,name=non_zero_exit,json=nonZeroExit" json:"non_zero_exit,omitempty"`
909	// The error message, if any, due to a non-zero exit.
910	ErrorMessage *string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
911}
912
913func (x *PerfInfo) Reset() {
914	*x = PerfInfo{}
915	if protoimpl.UnsafeEnabled {
916		mi := &file_metrics_proto_msgTypes[3]
917		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
918		ms.StoreMessageInfo(mi)
919	}
920}
921
922func (x *PerfInfo) String() string {
923	return protoimpl.X.MessageStringOf(x)
924}
925
926func (*PerfInfo) ProtoMessage() {}
927
928func (x *PerfInfo) ProtoReflect() protoreflect.Message {
929	mi := &file_metrics_proto_msgTypes[3]
930	if protoimpl.UnsafeEnabled && x != nil {
931		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
932		if ms.LoadMessageInfo() == nil {
933			ms.StoreMessageInfo(mi)
934		}
935		return ms
936	}
937	return mi.MessageOf(x)
938}
939
940// Deprecated: Use PerfInfo.ProtoReflect.Descriptor instead.
941func (*PerfInfo) Descriptor() ([]byte, []int) {
942	return file_metrics_proto_rawDescGZIP(), []int{3}
943}
944
945func (x *PerfInfo) GetDescription() string {
946	if x != nil && x.Description != nil {
947		return *x.Description
948	}
949	return ""
950}
951
952func (x *PerfInfo) GetName() string {
953	if x != nil && x.Name != nil {
954		return *x.Name
955	}
956	return ""
957}
958
959func (x *PerfInfo) GetStartTime() uint64 {
960	if x != nil && x.StartTime != nil {
961		return *x.StartTime
962	}
963	return 0
964}
965
966func (x *PerfInfo) GetRealTime() uint64 {
967	if x != nil && x.RealTime != nil {
968		return *x.RealTime
969	}
970	return 0
971}
972
973// Deprecated: Marked as deprecated in metrics.proto.
974func (x *PerfInfo) GetMemoryUse() uint64 {
975	if x != nil && x.MemoryUse != nil {
976		return *x.MemoryUse
977	}
978	return 0
979}
980
981func (x *PerfInfo) GetProcessesResourceInfo() []*ProcessResourceInfo {
982	if x != nil {
983		return x.ProcessesResourceInfo
984	}
985	return nil
986}
987
988func (x *PerfInfo) GetNonZeroExit() bool {
989	if x != nil && x.NonZeroExit != nil {
990		return *x.NonZeroExit
991	}
992	return false
993}
994
995func (x *PerfInfo) GetErrorMessage() string {
996	if x != nil && x.ErrorMessage != nil {
997		return *x.ErrorMessage
998	}
999	return ""
1000}
1001
1002type PerfCounters struct {
1003	state         protoimpl.MessageState
1004	sizeCache     protoimpl.SizeCache
1005	unknownFields protoimpl.UnknownFields
1006
1007	// The timestamp of these counters in nanoseconds.
1008	Time *uint64 `protobuf:"varint,1,opt,name=time" json:"time,omitempty"`
1009	// A list of counter names and values.
1010	Groups []*PerfCounterGroup `protobuf:"bytes,2,rep,name=groups" json:"groups,omitempty"`
1011}
1012
1013func (x *PerfCounters) Reset() {
1014	*x = PerfCounters{}
1015	if protoimpl.UnsafeEnabled {
1016		mi := &file_metrics_proto_msgTypes[4]
1017		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1018		ms.StoreMessageInfo(mi)
1019	}
1020}
1021
1022func (x *PerfCounters) String() string {
1023	return protoimpl.X.MessageStringOf(x)
1024}
1025
1026func (*PerfCounters) ProtoMessage() {}
1027
1028func (x *PerfCounters) ProtoReflect() protoreflect.Message {
1029	mi := &file_metrics_proto_msgTypes[4]
1030	if protoimpl.UnsafeEnabled && x != nil {
1031		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1032		if ms.LoadMessageInfo() == nil {
1033			ms.StoreMessageInfo(mi)
1034		}
1035		return ms
1036	}
1037	return mi.MessageOf(x)
1038}
1039
1040// Deprecated: Use PerfCounters.ProtoReflect.Descriptor instead.
1041func (*PerfCounters) Descriptor() ([]byte, []int) {
1042	return file_metrics_proto_rawDescGZIP(), []int{4}
1043}
1044
1045func (x *PerfCounters) GetTime() uint64 {
1046	if x != nil && x.Time != nil {
1047		return *x.Time
1048	}
1049	return 0
1050}
1051
1052func (x *PerfCounters) GetGroups() []*PerfCounterGroup {
1053	if x != nil {
1054		return x.Groups
1055	}
1056	return nil
1057}
1058
1059type PerfCounterGroup struct {
1060	state         protoimpl.MessageState
1061	sizeCache     protoimpl.SizeCache
1062	unknownFields protoimpl.UnknownFields
1063
1064	// The name of this counter group (e.g. "cpu" or "memory")
1065	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
1066	// The counters in this group
1067	Counters []*PerfCounter `protobuf:"bytes,2,rep,name=counters" json:"counters,omitempty"`
1068}
1069
1070func (x *PerfCounterGroup) Reset() {
1071	*x = PerfCounterGroup{}
1072	if protoimpl.UnsafeEnabled {
1073		mi := &file_metrics_proto_msgTypes[5]
1074		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1075		ms.StoreMessageInfo(mi)
1076	}
1077}
1078
1079func (x *PerfCounterGroup) String() string {
1080	return protoimpl.X.MessageStringOf(x)
1081}
1082
1083func (*PerfCounterGroup) ProtoMessage() {}
1084
1085func (x *PerfCounterGroup) ProtoReflect() protoreflect.Message {
1086	mi := &file_metrics_proto_msgTypes[5]
1087	if protoimpl.UnsafeEnabled && x != nil {
1088		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1089		if ms.LoadMessageInfo() == nil {
1090			ms.StoreMessageInfo(mi)
1091		}
1092		return ms
1093	}
1094	return mi.MessageOf(x)
1095}
1096
1097// Deprecated: Use PerfCounterGroup.ProtoReflect.Descriptor instead.
1098func (*PerfCounterGroup) Descriptor() ([]byte, []int) {
1099	return file_metrics_proto_rawDescGZIP(), []int{5}
1100}
1101
1102func (x *PerfCounterGroup) GetName() string {
1103	if x != nil && x.Name != nil {
1104		return *x.Name
1105	}
1106	return ""
1107}
1108
1109func (x *PerfCounterGroup) GetCounters() []*PerfCounter {
1110	if x != nil {
1111		return x.Counters
1112	}
1113	return nil
1114}
1115
1116type PerfCounter struct {
1117	state         protoimpl.MessageState
1118	sizeCache     protoimpl.SizeCache
1119	unknownFields protoimpl.UnknownFields
1120
1121	// The name of this counter.
1122	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
1123	// The value of this counter.
1124	Value *int64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
1125}
1126
1127func (x *PerfCounter) Reset() {
1128	*x = PerfCounter{}
1129	if protoimpl.UnsafeEnabled {
1130		mi := &file_metrics_proto_msgTypes[6]
1131		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1132		ms.StoreMessageInfo(mi)
1133	}
1134}
1135
1136func (x *PerfCounter) String() string {
1137	return protoimpl.X.MessageStringOf(x)
1138}
1139
1140func (*PerfCounter) ProtoMessage() {}
1141
1142func (x *PerfCounter) ProtoReflect() protoreflect.Message {
1143	mi := &file_metrics_proto_msgTypes[6]
1144	if protoimpl.UnsafeEnabled && x != nil {
1145		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1146		if ms.LoadMessageInfo() == nil {
1147			ms.StoreMessageInfo(mi)
1148		}
1149		return ms
1150	}
1151	return mi.MessageOf(x)
1152}
1153
1154// Deprecated: Use PerfCounter.ProtoReflect.Descriptor instead.
1155func (*PerfCounter) Descriptor() ([]byte, []int) {
1156	return file_metrics_proto_rawDescGZIP(), []int{6}
1157}
1158
1159func (x *PerfCounter) GetName() string {
1160	if x != nil && x.Name != nil {
1161		return *x.Name
1162	}
1163	return ""
1164}
1165
1166func (x *PerfCounter) GetValue() int64 {
1167	if x != nil && x.Value != nil {
1168		return *x.Value
1169	}
1170	return 0
1171}
1172
1173type ProcessResourceInfo struct {
1174	state         protoimpl.MessageState
1175	sizeCache     protoimpl.SizeCache
1176	unknownFields protoimpl.UnknownFields
1177
1178	// The name of the process for identification.
1179	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
1180	// The amount of time spent executing in user space in microseconds.
1181	UserTimeMicros *uint64 `protobuf:"varint,2,opt,name=user_time_micros,json=userTimeMicros" json:"user_time_micros,omitempty"`
1182	// The amount of time spent executing in kernel mode in microseconds.
1183	SystemTimeMicros *uint64 `protobuf:"varint,3,opt,name=system_time_micros,json=systemTimeMicros" json:"system_time_micros,omitempty"`
1184	// The maximum resident set size memory used in kilobytes.
1185	MaxRssKb *uint64 `protobuf:"varint,4,opt,name=max_rss_kb,json=maxRssKb" json:"max_rss_kb,omitempty"`
1186	// The number of minor page faults serviced without any I/O activity.
1187	MinorPageFaults *uint64 `protobuf:"varint,5,opt,name=minor_page_faults,json=minorPageFaults" json:"minor_page_faults,omitempty"`
1188	// The number of major page faults serviced that required I/O activity.
1189	MajorPageFaults *uint64 `protobuf:"varint,6,opt,name=major_page_faults,json=majorPageFaults" json:"major_page_faults,omitempty"`
1190	// Total IO input in kilobytes.
1191	IoInputKb *uint64 `protobuf:"varint,7,opt,name=io_input_kb,json=ioInputKb" json:"io_input_kb,omitempty"`
1192	// Total IO output in kilobytes.
1193	IoOutputKb *uint64 `protobuf:"varint,8,opt,name=io_output_kb,json=ioOutputKb" json:"io_output_kb,omitempty"`
1194	// The number of voluntary context switches
1195	VoluntaryContextSwitches *uint64 `protobuf:"varint,9,opt,name=voluntary_context_switches,json=voluntaryContextSwitches" json:"voluntary_context_switches,omitempty"`
1196	// The number of involuntary context switches
1197	InvoluntaryContextSwitches *uint64 `protobuf:"varint,10,opt,name=involuntary_context_switches,json=involuntaryContextSwitches" json:"involuntary_context_switches,omitempty"`
1198}
1199
1200func (x *ProcessResourceInfo) Reset() {
1201	*x = ProcessResourceInfo{}
1202	if protoimpl.UnsafeEnabled {
1203		mi := &file_metrics_proto_msgTypes[7]
1204		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1205		ms.StoreMessageInfo(mi)
1206	}
1207}
1208
1209func (x *ProcessResourceInfo) String() string {
1210	return protoimpl.X.MessageStringOf(x)
1211}
1212
1213func (*ProcessResourceInfo) ProtoMessage() {}
1214
1215func (x *ProcessResourceInfo) ProtoReflect() protoreflect.Message {
1216	mi := &file_metrics_proto_msgTypes[7]
1217	if protoimpl.UnsafeEnabled && x != nil {
1218		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1219		if ms.LoadMessageInfo() == nil {
1220			ms.StoreMessageInfo(mi)
1221		}
1222		return ms
1223	}
1224	return mi.MessageOf(x)
1225}
1226
1227// Deprecated: Use ProcessResourceInfo.ProtoReflect.Descriptor instead.
1228func (*ProcessResourceInfo) Descriptor() ([]byte, []int) {
1229	return file_metrics_proto_rawDescGZIP(), []int{7}
1230}
1231
1232func (x *ProcessResourceInfo) GetName() string {
1233	if x != nil && x.Name != nil {
1234		return *x.Name
1235	}
1236	return ""
1237}
1238
1239func (x *ProcessResourceInfo) GetUserTimeMicros() uint64 {
1240	if x != nil && x.UserTimeMicros != nil {
1241		return *x.UserTimeMicros
1242	}
1243	return 0
1244}
1245
1246func (x *ProcessResourceInfo) GetSystemTimeMicros() uint64 {
1247	if x != nil && x.SystemTimeMicros != nil {
1248		return *x.SystemTimeMicros
1249	}
1250	return 0
1251}
1252
1253func (x *ProcessResourceInfo) GetMaxRssKb() uint64 {
1254	if x != nil && x.MaxRssKb != nil {
1255		return *x.MaxRssKb
1256	}
1257	return 0
1258}
1259
1260func (x *ProcessResourceInfo) GetMinorPageFaults() uint64 {
1261	if x != nil && x.MinorPageFaults != nil {
1262		return *x.MinorPageFaults
1263	}
1264	return 0
1265}
1266
1267func (x *ProcessResourceInfo) GetMajorPageFaults() uint64 {
1268	if x != nil && x.MajorPageFaults != nil {
1269		return *x.MajorPageFaults
1270	}
1271	return 0
1272}
1273
1274func (x *ProcessResourceInfo) GetIoInputKb() uint64 {
1275	if x != nil && x.IoInputKb != nil {
1276		return *x.IoInputKb
1277	}
1278	return 0
1279}
1280
1281func (x *ProcessResourceInfo) GetIoOutputKb() uint64 {
1282	if x != nil && x.IoOutputKb != nil {
1283		return *x.IoOutputKb
1284	}
1285	return 0
1286}
1287
1288func (x *ProcessResourceInfo) GetVoluntaryContextSwitches() uint64 {
1289	if x != nil && x.VoluntaryContextSwitches != nil {
1290		return *x.VoluntaryContextSwitches
1291	}
1292	return 0
1293}
1294
1295func (x *ProcessResourceInfo) GetInvoluntaryContextSwitches() uint64 {
1296	if x != nil && x.InvoluntaryContextSwitches != nil {
1297		return *x.InvoluntaryContextSwitches
1298	}
1299	return 0
1300}
1301
1302type ModuleTypeInfo struct {
1303	state         protoimpl.MessageState
1304	sizeCache     protoimpl.SizeCache
1305	unknownFields protoimpl.UnknownFields
1306
1307	// The build system, e.g. Soong or Make.
1308	BuildSystem *ModuleTypeInfo_BuildSystem `protobuf:"varint,1,opt,name=build_system,json=buildSystem,enum=soong_build_metrics.ModuleTypeInfo_BuildSystem,def=0" json:"build_system,omitempty"`
1309	// The module type, e.g. java_library, cc_binary, and etc.
1310	ModuleType *string `protobuf:"bytes,2,opt,name=module_type,json=moduleType" json:"module_type,omitempty"`
1311	// The number of logical modules.
1312	NumOfModules *uint32 `protobuf:"varint,3,opt,name=num_of_modules,json=numOfModules" json:"num_of_modules,omitempty"`
1313}
1314
1315// Default values for ModuleTypeInfo fields.
1316const (
1317	Default_ModuleTypeInfo_BuildSystem = ModuleTypeInfo_UNKNOWN
1318)
1319
1320func (x *ModuleTypeInfo) Reset() {
1321	*x = ModuleTypeInfo{}
1322	if protoimpl.UnsafeEnabled {
1323		mi := &file_metrics_proto_msgTypes[8]
1324		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1325		ms.StoreMessageInfo(mi)
1326	}
1327}
1328
1329func (x *ModuleTypeInfo) String() string {
1330	return protoimpl.X.MessageStringOf(x)
1331}
1332
1333func (*ModuleTypeInfo) ProtoMessage() {}
1334
1335func (x *ModuleTypeInfo) ProtoReflect() protoreflect.Message {
1336	mi := &file_metrics_proto_msgTypes[8]
1337	if protoimpl.UnsafeEnabled && x != nil {
1338		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1339		if ms.LoadMessageInfo() == nil {
1340			ms.StoreMessageInfo(mi)
1341		}
1342		return ms
1343	}
1344	return mi.MessageOf(x)
1345}
1346
1347// Deprecated: Use ModuleTypeInfo.ProtoReflect.Descriptor instead.
1348func (*ModuleTypeInfo) Descriptor() ([]byte, []int) {
1349	return file_metrics_proto_rawDescGZIP(), []int{8}
1350}
1351
1352func (x *ModuleTypeInfo) GetBuildSystem() ModuleTypeInfo_BuildSystem {
1353	if x != nil && x.BuildSystem != nil {
1354		return *x.BuildSystem
1355	}
1356	return Default_ModuleTypeInfo_BuildSystem
1357}
1358
1359func (x *ModuleTypeInfo) GetModuleType() string {
1360	if x != nil && x.ModuleType != nil {
1361		return *x.ModuleType
1362	}
1363	return ""
1364}
1365
1366func (x *ModuleTypeInfo) GetNumOfModules() uint32 {
1367	if x != nil && x.NumOfModules != nil {
1368		return *x.NumOfModules
1369	}
1370	return 0
1371}
1372
1373type CriticalUserJourneyMetrics struct {
1374	state         protoimpl.MessageState
1375	sizeCache     protoimpl.SizeCache
1376	unknownFields protoimpl.UnknownFields
1377
1378	// The name of a critical user journey test.
1379	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
1380	// The metrics produced when running the critical user journey test.
1381	Metrics *MetricsBase `protobuf:"bytes,2,opt,name=metrics" json:"metrics,omitempty"`
1382}
1383
1384func (x *CriticalUserJourneyMetrics) Reset() {
1385	*x = CriticalUserJourneyMetrics{}
1386	if protoimpl.UnsafeEnabled {
1387		mi := &file_metrics_proto_msgTypes[9]
1388		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1389		ms.StoreMessageInfo(mi)
1390	}
1391}
1392
1393func (x *CriticalUserJourneyMetrics) String() string {
1394	return protoimpl.X.MessageStringOf(x)
1395}
1396
1397func (*CriticalUserJourneyMetrics) ProtoMessage() {}
1398
1399func (x *CriticalUserJourneyMetrics) ProtoReflect() protoreflect.Message {
1400	mi := &file_metrics_proto_msgTypes[9]
1401	if protoimpl.UnsafeEnabled && x != nil {
1402		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1403		if ms.LoadMessageInfo() == nil {
1404			ms.StoreMessageInfo(mi)
1405		}
1406		return ms
1407	}
1408	return mi.MessageOf(x)
1409}
1410
1411// Deprecated: Use CriticalUserJourneyMetrics.ProtoReflect.Descriptor instead.
1412func (*CriticalUserJourneyMetrics) Descriptor() ([]byte, []int) {
1413	return file_metrics_proto_rawDescGZIP(), []int{9}
1414}
1415
1416func (x *CriticalUserJourneyMetrics) GetName() string {
1417	if x != nil && x.Name != nil {
1418		return *x.Name
1419	}
1420	return ""
1421}
1422
1423func (x *CriticalUserJourneyMetrics) GetMetrics() *MetricsBase {
1424	if x != nil {
1425		return x.Metrics
1426	}
1427	return nil
1428}
1429
1430type CriticalUserJourneysMetrics struct {
1431	state         protoimpl.MessageState
1432	sizeCache     protoimpl.SizeCache
1433	unknownFields protoimpl.UnknownFields
1434
1435	// A set of metrics from a run of the critical user journey tests.
1436	Cujs []*CriticalUserJourneyMetrics `protobuf:"bytes,1,rep,name=cujs" json:"cujs,omitempty"`
1437}
1438
1439func (x *CriticalUserJourneysMetrics) Reset() {
1440	*x = CriticalUserJourneysMetrics{}
1441	if protoimpl.UnsafeEnabled {
1442		mi := &file_metrics_proto_msgTypes[10]
1443		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1444		ms.StoreMessageInfo(mi)
1445	}
1446}
1447
1448func (x *CriticalUserJourneysMetrics) String() string {
1449	return protoimpl.X.MessageStringOf(x)
1450}
1451
1452func (*CriticalUserJourneysMetrics) ProtoMessage() {}
1453
1454func (x *CriticalUserJourneysMetrics) ProtoReflect() protoreflect.Message {
1455	mi := &file_metrics_proto_msgTypes[10]
1456	if protoimpl.UnsafeEnabled && x != nil {
1457		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1458		if ms.LoadMessageInfo() == nil {
1459			ms.StoreMessageInfo(mi)
1460		}
1461		return ms
1462	}
1463	return mi.MessageOf(x)
1464}
1465
1466// Deprecated: Use CriticalUserJourneysMetrics.ProtoReflect.Descriptor instead.
1467func (*CriticalUserJourneysMetrics) Descriptor() ([]byte, []int) {
1468	return file_metrics_proto_rawDescGZIP(), []int{10}
1469}
1470
1471func (x *CriticalUserJourneysMetrics) GetCujs() []*CriticalUserJourneyMetrics {
1472	if x != nil {
1473		return x.Cujs
1474	}
1475	return nil
1476}
1477
1478type SoongBuildMetrics struct {
1479	state         protoimpl.MessageState
1480	sizeCache     protoimpl.SizeCache
1481	unknownFields protoimpl.UnknownFields
1482
1483	// The number of modules handled by soong_build.
1484	Modules *uint32 `protobuf:"varint,1,opt,name=modules" json:"modules,omitempty"`
1485	// The total number of variants handled by soong_build.
1486	Variants *uint32 `protobuf:"varint,2,opt,name=variants" json:"variants,omitempty"`
1487	// The total number of allocations in soong_build.
1488	TotalAllocCount *uint64 `protobuf:"varint,3,opt,name=total_alloc_count,json=totalAllocCount" json:"total_alloc_count,omitempty"`
1489	// The total size of allocations in soong_build in bytes.
1490	TotalAllocSize *uint64 `protobuf:"varint,4,opt,name=total_alloc_size,json=totalAllocSize" json:"total_alloc_size,omitempty"`
1491	// The approximate maximum size of the heap in soong_build in bytes.
1492	MaxHeapSize *uint64 `protobuf:"varint,5,opt,name=max_heap_size,json=maxHeapSize" json:"max_heap_size,omitempty"`
1493	// Runtime metrics for soong_build execution.
1494	Events []*PerfInfo `protobuf:"bytes,6,rep,name=events" json:"events,omitempty"`
1495	// Mixed Builds information
1496	MixedBuildsInfo *MixedBuildsInfo `protobuf:"bytes,7,opt,name=mixed_builds_info,json=mixedBuildsInfo" json:"mixed_builds_info,omitempty"`
1497	// Performance during for soong_build execution.
1498	PerfCounters []*PerfCounters `protobuf:"bytes,8,rep,name=perf_counters,json=perfCounters" json:"perf_counters,omitempty"`
1499}
1500
1501func (x *SoongBuildMetrics) Reset() {
1502	*x = SoongBuildMetrics{}
1503	if protoimpl.UnsafeEnabled {
1504		mi := &file_metrics_proto_msgTypes[11]
1505		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1506		ms.StoreMessageInfo(mi)
1507	}
1508}
1509
1510func (x *SoongBuildMetrics) String() string {
1511	return protoimpl.X.MessageStringOf(x)
1512}
1513
1514func (*SoongBuildMetrics) ProtoMessage() {}
1515
1516func (x *SoongBuildMetrics) ProtoReflect() protoreflect.Message {
1517	mi := &file_metrics_proto_msgTypes[11]
1518	if protoimpl.UnsafeEnabled && x != nil {
1519		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1520		if ms.LoadMessageInfo() == nil {
1521			ms.StoreMessageInfo(mi)
1522		}
1523		return ms
1524	}
1525	return mi.MessageOf(x)
1526}
1527
1528// Deprecated: Use SoongBuildMetrics.ProtoReflect.Descriptor instead.
1529func (*SoongBuildMetrics) Descriptor() ([]byte, []int) {
1530	return file_metrics_proto_rawDescGZIP(), []int{11}
1531}
1532
1533func (x *SoongBuildMetrics) GetModules() uint32 {
1534	if x != nil && x.Modules != nil {
1535		return *x.Modules
1536	}
1537	return 0
1538}
1539
1540func (x *SoongBuildMetrics) GetVariants() uint32 {
1541	if x != nil && x.Variants != nil {
1542		return *x.Variants
1543	}
1544	return 0
1545}
1546
1547func (x *SoongBuildMetrics) GetTotalAllocCount() uint64 {
1548	if x != nil && x.TotalAllocCount != nil {
1549		return *x.TotalAllocCount
1550	}
1551	return 0
1552}
1553
1554func (x *SoongBuildMetrics) GetTotalAllocSize() uint64 {
1555	if x != nil && x.TotalAllocSize != nil {
1556		return *x.TotalAllocSize
1557	}
1558	return 0
1559}
1560
1561func (x *SoongBuildMetrics) GetMaxHeapSize() uint64 {
1562	if x != nil && x.MaxHeapSize != nil {
1563		return *x.MaxHeapSize
1564	}
1565	return 0
1566}
1567
1568func (x *SoongBuildMetrics) GetEvents() []*PerfInfo {
1569	if x != nil {
1570		return x.Events
1571	}
1572	return nil
1573}
1574
1575func (x *SoongBuildMetrics) GetMixedBuildsInfo() *MixedBuildsInfo {
1576	if x != nil {
1577		return x.MixedBuildsInfo
1578	}
1579	return nil
1580}
1581
1582func (x *SoongBuildMetrics) GetPerfCounters() []*PerfCounters {
1583	if x != nil {
1584		return x.PerfCounters
1585	}
1586	return nil
1587}
1588
1589type ExpConfigFetcher struct {
1590	state         protoimpl.MessageState
1591	sizeCache     protoimpl.SizeCache
1592	unknownFields protoimpl.UnknownFields
1593
1594	// The result of the call to expconfigfetcher
1595	// NO_CONFIG - Not part of experiment
1596	// CONFIG - Part of experiment, config copied successfully
1597	// ERROR - expconfigfetcher failed
1598	Status *ExpConfigFetcher_ConfigStatus `protobuf:"varint,1,opt,name=status,enum=soong_build_metrics.ExpConfigFetcher_ConfigStatus" json:"status,omitempty"`
1599	// The output config filename
1600	Filename *string `protobuf:"bytes,2,opt,name=filename" json:"filename,omitempty"`
1601	// Time, in microseconds, taken by the expconfigfetcher
1602	Micros *uint64 `protobuf:"varint,3,opt,name=micros" json:"micros,omitempty"`
1603}
1604
1605func (x *ExpConfigFetcher) Reset() {
1606	*x = ExpConfigFetcher{}
1607	if protoimpl.UnsafeEnabled {
1608		mi := &file_metrics_proto_msgTypes[12]
1609		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1610		ms.StoreMessageInfo(mi)
1611	}
1612}
1613
1614func (x *ExpConfigFetcher) String() string {
1615	return protoimpl.X.MessageStringOf(x)
1616}
1617
1618func (*ExpConfigFetcher) ProtoMessage() {}
1619
1620func (x *ExpConfigFetcher) ProtoReflect() protoreflect.Message {
1621	mi := &file_metrics_proto_msgTypes[12]
1622	if protoimpl.UnsafeEnabled && x != nil {
1623		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1624		if ms.LoadMessageInfo() == nil {
1625			ms.StoreMessageInfo(mi)
1626		}
1627		return ms
1628	}
1629	return mi.MessageOf(x)
1630}
1631
1632// Deprecated: Use ExpConfigFetcher.ProtoReflect.Descriptor instead.
1633func (*ExpConfigFetcher) Descriptor() ([]byte, []int) {
1634	return file_metrics_proto_rawDescGZIP(), []int{12}
1635}
1636
1637func (x *ExpConfigFetcher) GetStatus() ExpConfigFetcher_ConfigStatus {
1638	if x != nil && x.Status != nil {
1639		return *x.Status
1640	}
1641	return ExpConfigFetcher_NO_CONFIG
1642}
1643
1644func (x *ExpConfigFetcher) GetFilename() string {
1645	if x != nil && x.Filename != nil {
1646		return *x.Filename
1647	}
1648	return ""
1649}
1650
1651func (x *ExpConfigFetcher) GetMicros() uint64 {
1652	if x != nil && x.Micros != nil {
1653		return *x.Micros
1654	}
1655	return 0
1656}
1657
1658type MixedBuildsInfo struct {
1659	state         protoimpl.MessageState
1660	sizeCache     protoimpl.SizeCache
1661	unknownFields protoimpl.UnknownFields
1662
1663	// Modules that are enabled for Mixed Builds.
1664	MixedBuildEnabledModules []string `protobuf:"bytes,1,rep,name=mixed_build_enabled_modules,json=mixedBuildEnabledModules" json:"mixed_build_enabled_modules,omitempty"`
1665	// Modules that are not enabled for MixedBuilds
1666	MixedBuildDisabledModules []string `protobuf:"bytes,2,rep,name=mixed_build_disabled_modules,json=mixedBuildDisabledModules" json:"mixed_build_disabled_modules,omitempty"`
1667}
1668
1669func (x *MixedBuildsInfo) Reset() {
1670	*x = MixedBuildsInfo{}
1671	if protoimpl.UnsafeEnabled {
1672		mi := &file_metrics_proto_msgTypes[13]
1673		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1674		ms.StoreMessageInfo(mi)
1675	}
1676}
1677
1678func (x *MixedBuildsInfo) String() string {
1679	return protoimpl.X.MessageStringOf(x)
1680}
1681
1682func (*MixedBuildsInfo) ProtoMessage() {}
1683
1684func (x *MixedBuildsInfo) ProtoReflect() protoreflect.Message {
1685	mi := &file_metrics_proto_msgTypes[13]
1686	if protoimpl.UnsafeEnabled && x != nil {
1687		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1688		if ms.LoadMessageInfo() == nil {
1689			ms.StoreMessageInfo(mi)
1690		}
1691		return ms
1692	}
1693	return mi.MessageOf(x)
1694}
1695
1696// Deprecated: Use MixedBuildsInfo.ProtoReflect.Descriptor instead.
1697func (*MixedBuildsInfo) Descriptor() ([]byte, []int) {
1698	return file_metrics_proto_rawDescGZIP(), []int{13}
1699}
1700
1701func (x *MixedBuildsInfo) GetMixedBuildEnabledModules() []string {
1702	if x != nil {
1703		return x.MixedBuildEnabledModules
1704	}
1705	return nil
1706}
1707
1708func (x *MixedBuildsInfo) GetMixedBuildDisabledModules() []string {
1709	if x != nil {
1710		return x.MixedBuildDisabledModules
1711	}
1712	return nil
1713}
1714
1715// CriticalPathInfo contains critical path nodes's information.
1716// A critical path is a path determining the minimum time needed for the whole build given perfect parallelism.
1717type CriticalPathInfo struct {
1718	state         protoimpl.MessageState
1719	sizeCache     protoimpl.SizeCache
1720	unknownFields protoimpl.UnknownFields
1721
1722	// Real time which the build system spent in microseconds
1723	ElapsedTimeMicros *uint64 `protobuf:"varint,1,opt,name=elapsed_time_micros,json=elapsedTimeMicros" json:"elapsed_time_micros,omitempty"`
1724	// The sum of execution time of the longest path from leave to the root in microseconds
1725	CriticalPathTimeMicros *uint64 `protobuf:"varint,2,opt,name=critical_path_time_micros,json=criticalPathTimeMicros" json:"critical_path_time_micros,omitempty"`
1726	// Detailed job information in a critical path.
1727	CriticalPath []*JobInfo `protobuf:"bytes,4,rep,name=critical_path,json=criticalPath" json:"critical_path,omitempty"`
1728	// Detailed job information for long running jobs (>30 seconds). These may or may not also be on a critical path.
1729	LongRunningJobs []*JobInfo `protobuf:"bytes,5,rep,name=long_running_jobs,json=longRunningJobs" json:"long_running_jobs,omitempty"`
1730}
1731
1732func (x *CriticalPathInfo) Reset() {
1733	*x = CriticalPathInfo{}
1734	if protoimpl.UnsafeEnabled {
1735		mi := &file_metrics_proto_msgTypes[14]
1736		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1737		ms.StoreMessageInfo(mi)
1738	}
1739}
1740
1741func (x *CriticalPathInfo) String() string {
1742	return protoimpl.X.MessageStringOf(x)
1743}
1744
1745func (*CriticalPathInfo) ProtoMessage() {}
1746
1747func (x *CriticalPathInfo) ProtoReflect() protoreflect.Message {
1748	mi := &file_metrics_proto_msgTypes[14]
1749	if protoimpl.UnsafeEnabled && x != nil {
1750		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1751		if ms.LoadMessageInfo() == nil {
1752			ms.StoreMessageInfo(mi)
1753		}
1754		return ms
1755	}
1756	return mi.MessageOf(x)
1757}
1758
1759// Deprecated: Use CriticalPathInfo.ProtoReflect.Descriptor instead.
1760func (*CriticalPathInfo) Descriptor() ([]byte, []int) {
1761	return file_metrics_proto_rawDescGZIP(), []int{14}
1762}
1763
1764func (x *CriticalPathInfo) GetElapsedTimeMicros() uint64 {
1765	if x != nil && x.ElapsedTimeMicros != nil {
1766		return *x.ElapsedTimeMicros
1767	}
1768	return 0
1769}
1770
1771func (x *CriticalPathInfo) GetCriticalPathTimeMicros() uint64 {
1772	if x != nil && x.CriticalPathTimeMicros != nil {
1773		return *x.CriticalPathTimeMicros
1774	}
1775	return 0
1776}
1777
1778func (x *CriticalPathInfo) GetCriticalPath() []*JobInfo {
1779	if x != nil {
1780		return x.CriticalPath
1781	}
1782	return nil
1783}
1784
1785func (x *CriticalPathInfo) GetLongRunningJobs() []*JobInfo {
1786	if x != nil {
1787		return x.LongRunningJobs
1788	}
1789	return nil
1790}
1791
1792type JobInfo struct {
1793	state         protoimpl.MessageState
1794	sizeCache     protoimpl.SizeCache
1795	unknownFields protoimpl.UnknownFields
1796
1797	// Real time which a job spent in microseconds
1798	ElapsedTimeMicros *uint64 `protobuf:"varint,1,opt,name=elapsed_time_micros,json=elapsedTimeMicros" json:"elapsed_time_micros,omitempty"`
1799	// Description of a job
1800	JobDescription *string `protobuf:"bytes,2,opt,name=job_description,json=jobDescription" json:"job_description,omitempty"`
1801}
1802
1803func (x *JobInfo) Reset() {
1804	*x = JobInfo{}
1805	if protoimpl.UnsafeEnabled {
1806		mi := &file_metrics_proto_msgTypes[15]
1807		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1808		ms.StoreMessageInfo(mi)
1809	}
1810}
1811
1812func (x *JobInfo) String() string {
1813	return protoimpl.X.MessageStringOf(x)
1814}
1815
1816func (*JobInfo) ProtoMessage() {}
1817
1818func (x *JobInfo) ProtoReflect() protoreflect.Message {
1819	mi := &file_metrics_proto_msgTypes[15]
1820	if protoimpl.UnsafeEnabled && x != nil {
1821		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1822		if ms.LoadMessageInfo() == nil {
1823			ms.StoreMessageInfo(mi)
1824		}
1825		return ms
1826	}
1827	return mi.MessageOf(x)
1828}
1829
1830// Deprecated: Use JobInfo.ProtoReflect.Descriptor instead.
1831func (*JobInfo) Descriptor() ([]byte, []int) {
1832	return file_metrics_proto_rawDescGZIP(), []int{15}
1833}
1834
1835func (x *JobInfo) GetElapsedTimeMicros() uint64 {
1836	if x != nil && x.ElapsedTimeMicros != nil {
1837		return *x.ElapsedTimeMicros
1838	}
1839	return 0
1840}
1841
1842func (x *JobInfo) GetJobDescription() string {
1843	if x != nil && x.JobDescription != nil {
1844		return *x.JobDescription
1845	}
1846	return ""
1847}
1848
1849var File_metrics_proto protoreflect.FileDescriptor
1850
1851var file_metrics_proto_rawDesc = []byte{
1852	0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
1853	0x13, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74,
1854	0x72, 0x69, 0x63, 0x73, 0x22, 0xcc, 0x0f, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1855	0x42, 0x61, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x64, 0x61,
1856	0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01,
1857	0x28, 0x03, 0x52, 0x12, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
1858	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f,
1859	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49,
1860	0x64, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x65,
1861	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
1862	0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x65,
1863	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a,
1864	0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18,
1865	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f,
1866	0x64, 0x75, 0x63, 0x74, 0x12, 0x64, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62,
1867	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
1868	0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
1869	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1870	0x42, 0x61, 0x73, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
1871	0x74, 0x3a, 0x03, 0x45, 0x4e, 0x47, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x75,
1872	0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x61,
1873	0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
1874	0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
1875	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73,
1876	0x65, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52,
1877	0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x72, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x74,
1878	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61,
1879	0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
1880	0x41, 0x72, 0x63, 0x68, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74,
1881	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e,
1882	0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43,
1883	0x70, 0x75, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x68, 0x6f, 0x73,
1884	0x74, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73,
1885	0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
1886	0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41,
1887	0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x08, 0x68, 0x6f,
1888	0x73, 0x74, 0x41, 0x72, 0x63, 0x68, 0x12, 0x52, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x32,
1889	0x6e, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e,
1890	0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
1891	0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73, 0x65, 0x2e,
1892	0x41, 0x72, 0x63, 0x68, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x0b, 0x68,
1893	0x6f, 0x73, 0x74, 0x32, 0x6e, 0x64, 0x41, 0x72, 0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f,
1894	0x73, 0x74, 0x5f, 0x6f, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73,
1895	0x74, 0x4f, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x73, 0x5f, 0x65,
1896	0x78, 0x74, 0x72, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x6f, 0x73, 0x74,
1897	0x4f, 0x73, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f,
1898	0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
1899	0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x4f, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68,
1900	0x6f, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0e,
1901	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x41,
1902	0x72, 0x63, 0x68, 0x12, 0x2d, 0x0a, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x6f, 0x73,
1903	0x73, 0x5f, 0x32, 0x6e, 0x64, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
1904	0x52, 0x10, 0x68, 0x6f, 0x73, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x32, 0x6e, 0x64, 0x41, 0x72,
1905	0x63, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x10, 0x20,
1906	0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x73,
1907	0x65, 0x74, 0x75, 0x70, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b,
1908	0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d,
1909	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52,
1910	0x0a, 0x73, 0x65, 0x74, 0x75, 0x70, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x6b,
1911	0x61, 0x74, 0x69, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
1912	0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74,
1913	0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b,
1914	0x61, 0x74, 0x69, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x6f, 0x6f, 0x6e, 0x67,
1915	0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f,
1916	0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
1917	0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x73, 0x6f, 0x6f, 0x6e,
1918	0x67, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x5f, 0x72,
1919	0x75, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e,
1920	0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
1921	0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x52,
1922	0x75, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x15, 0x20, 0x01,
1923	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
1924	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66,
1925	0x6f, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x5a, 0x0a, 0x13, 0x73, 0x6f, 0x6f, 0x6e,
1926	0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18,
1927	0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75,
1928	0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x6f, 0x6f, 0x6e,
1929	0x67, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18,
1930	0x01, 0x52, 0x11, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74,
1931	0x72, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f,
1932	0x6e, 0x66, 0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6f, 0x6f,
1933	0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
1934	0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x62, 0x75,
1935	0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73,
1936	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
1937	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f,
1938	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20,
1939	0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c,
1940	0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
1941	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x73, 0x79,
1942	0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
1943	0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
1944	0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f,
1945	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x72,
1946	0x75, 0x6e, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6f, 0x6f, 0x6e,
1947	0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
1948	0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x52,
1949	0x75, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
1950	0x67, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32,
1951	0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
1952	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46,
1953	0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x10, 0x65, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69,
1954	0x67, 0x46, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f,
1955	0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52,
1956	0x0b, 0x6e, 0x6f, 0x6e, 0x5a, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d,
1957	0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20,
1958	0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
1959	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x72,
1960	0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
1961	0x74, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x20,
1962	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x53, 0x0a, 0x12,
1963	0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x6e,
1964	0x66, 0x6f, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67,
1965	0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43,
1966	0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52,
1967	0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66,
1968	0x6f, 0x12, 0x40, 0x0a, 0x1c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x76,
1969	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c,
1970	0x65, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
1971	0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61,
1972	0x62, 0x6c, 0x65, 0x22, 0x30, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x61, 0x72, 0x69,
1973	0x61, 0x6e, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a,
1974	0x09, 0x55, 0x53, 0x45, 0x52, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03,
1975	0x45, 0x4e, 0x47, 0x10, 0x02, 0x22, 0x3c, 0x0a, 0x04, 0x41, 0x72, 0x63, 0x68, 0x12, 0x0b, 0x0a,
1976	0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x52,
1977	0x4d, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x52, 0x4d, 0x36, 0x34, 0x10, 0x02, 0x12, 0x07,
1978	0x0a, 0x03, 0x58, 0x38, 0x36, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x58, 0x38, 0x36, 0x5f, 0x36,
1979	0x34, 0x10, 0x04, 0x22, 0x8a, 0x04, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e,
1980	0x66, 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x18,
1981	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x73, 0x65, 0x47, 0x6f, 0x6d, 0x61, 0x12, 0x17,
1982	0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
1983	0x06, 0x75, 0x73, 0x65, 0x52, 0x62, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x63, 0x65,
1984	0x5f, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
1985	0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x55, 0x73, 0x65, 0x47, 0x6f, 0x6d, 0x61, 0x12, 0x24, 0x0a,
1986	0x0e, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x18,
1987	0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x41, 0x73, 0x4e, 0x69,
1988	0x6e, 0x6a, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x61, 0x7a, 0x65, 0x6c, 0x5f, 0x6d, 0x69, 0x78,
1989	0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
1990	0x62, 0x61, 0x7a, 0x65, 0x6c, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12,
1991	0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
1992	0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x66, 0x6f, 0x72,
1993	0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x7a, 0x65, 0x6c,
1994	0x5f, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01,
1995	0x28, 0x08, 0x52, 0x1b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
1996	0x42, 0x61, 0x7a, 0x65, 0x6c, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12,
1997	0x79, 0x0a, 0x18, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f,
1998	0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
1999	0x0e, 0x32, 0x36, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f,
2000	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e,
2001	0x66, 0x69, 0x67, 0x2e, 0x4e, 0x69, 0x6e, 0x6a, 0x61, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c,
2002	0x69, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x08, 0x4e, 0x4f, 0x54, 0x5f, 0x55,
2003	0x53, 0x45, 0x44, 0x52, 0x15, 0x6e, 0x69, 0x6e, 0x6a, 0x61, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74,
2004	0x4c, 0x69, 0x73, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x74, 0x0a, 0x15, 0x4e, 0x69,
2005	0x6e, 0x6a, 0x61, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6f, 0x75,
2006	0x72, 0x63, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10,
2007	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x49, 0x4e, 0x4a, 0x41, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x01,
2008	0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x4c, 0x59, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x52,
2009	0x49, 0x42, 0x55, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x58, 0x54, 0x45,
2010	0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x48,
2011	0x49, 0x4e, 0x54, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x53, 0x4f, 0x4f, 0x4e, 0x47, 0x10, 0x04,
2012	0x22, 0x6f, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
2013	0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
2014	0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18,
2015	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x68, 0x79, 0x73,
2016	0x69, 0x63, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76,
2017	0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01,
2018	0x28, 0x05, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x70, 0x75,
2019	0x73, 0x22, 0xca, 0x02, 0x0a, 0x08, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20,
2020	0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
2021	0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
2022	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
2023	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
2024	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
2025	0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65,
2026	0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65,
2027	0x12, 0x21, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x05,
2028	0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
2029	0x55, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73,
2030	0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06,
2031	0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69,
2032	0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
2033	0x73, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x15,
2034	0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
2035	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f, 0x7a, 0x65, 0x72,
2036	0x6f, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6e, 0x6f,
2037	0x6e, 0x5a, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72,
2038	0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
2039	0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x61,
2040	0x0a, 0x0c, 0x50, 0x65, 0x72, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x12, 0x12,
2041	0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x69,
2042	0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03,
2043	0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
2044	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x43, 0x6f, 0x75,
2045	0x6e, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70,
2046	0x73, 0x22, 0x64, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
2047	0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
2048	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6f, 0x75,
2049	0x6e, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6f,
2050	0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
2051	0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63,
2052	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x66, 0x43,
2053	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
2054	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
2055	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
2056	0x22, 0xb9, 0x03, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x6f,
2057	0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
2058	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10,
2059	0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73,
2060	0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65,
2061	0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d,
2062	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01,
2063	0x28, 0x04, 0x52, 0x10, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69,
2064	0x63, 0x72, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x73, 0x73, 0x5f,
2065	0x6b, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x52, 0x73, 0x73,
2066	0x4b, 0x62, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65,
2067	0x5f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d,
2068	0x69, 0x6e, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2a,
2069	0x0a, 0x11, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x75,
2070	0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x6a, 0x6f, 0x72,
2071	0x50, 0x61, 0x67, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x6f,
2072	0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x6b, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52,
2073	0x09, 0x69, 0x6f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4b, 0x62, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x6f,
2074	0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6b, 0x62, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04,
2075	0x52, 0x0a, 0x69, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x4b, 0x62, 0x12, 0x3c, 0x0a, 0x1a,
2076	0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
2077	0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04,
2078	0x52, 0x18, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65,
2079	0x78, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x69, 0x6e,
2080	0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
2081	0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04,
2082	0x52, 0x1a, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e,
2083	0x74, 0x65, 0x78, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x22, 0xe5, 0x01, 0x0a,
2084	0x0e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
2085	0x5b, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18,
2086	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75,
2087	0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x75,
2088	0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64,
2089	0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52,
2090	0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x0a, 0x0b,
2091	0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
2092	0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a,
2093	0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18,
2094	0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x4d, 0x6f, 0x64, 0x75,
2095	0x6c, 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x79, 0x73, 0x74,
2096	0x65, 0x6d, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
2097	0x09, 0x0a, 0x05, 0x53, 0x4f, 0x4f, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x41,
2098	0x4b, 0x45, 0x10, 0x02, 0x22, 0x6c, 0x0a, 0x1a, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c,
2099	0x55, 0x73, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69,
2100	0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
2101	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
2102	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f,
2103	0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x65,
2104	0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69,
2105	0x63, 0x73, 0x22, 0x62, 0x0a, 0x1b, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73,
2106	0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
2107	0x73, 0x12, 0x43, 0x0a, 0x04, 0x63, 0x75, 0x6a, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
2108	0x2f, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65,
2109	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x73,
2110	0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
2111	0x52, 0x04, 0x63, 0x75, 0x6a, 0x73, 0x22, 0x94, 0x03, 0x0a, 0x11, 0x53, 0x6f, 0x6f, 0x6e, 0x67,
2112	0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07,
2113	0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d,
2114	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e,
2115	0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e,
2116	0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x6f,
2117	0x63, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74,
2118	0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28,
2119	0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x73, 0x69,
2120	0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41,
2121	0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f,
2122	0x68, 0x65, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52,
2123	0x0b, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x35, 0x0a, 0x06,
2124	0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73,
2125	0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
2126	0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x76, 0x65,
2127	0x6e, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x11, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69,
2128	0x6c, 0x64, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
2129	0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74,
2130	0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73,
2131	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64,
2132	0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x66, 0x5f, 0x63, 0x6f,
2133	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73,
2134	0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
2135	0x63, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52,
2136	0x0c, 0x70, 0x65, 0x72, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x22, 0xdb, 0x01,
2137	0x0a, 0x10, 0x45, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x65, 0x74, 0x63, 0x68,
2138	0x65, 0x72, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
2139	0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64,
2140	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x6f, 0x6e, 0x66,
2141	0x69, 0x67, 0x46, 0x65, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
2142	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a,
2143	0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
2144	0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69,
2145	0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x63, 0x72,
2146	0x6f, 0x73, 0x22, 0x47, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74,
2147	0x75, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10,
2148	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a,
2149	0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x49, 0x53, 0x53,
2150	0x49, 0x4e, 0x47, 0x5f, 0x47, 0x43, 0x45, 0x52, 0x54, 0x10, 0x03, 0x22, 0x91, 0x01, 0x0a, 0x0f,
2151	0x4d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12,
2152	0x3d, 0x0a, 0x1b, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x65,
2153	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01,
2154	0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64,
2155	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x3f,
2156	0x0a, 0x1c, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x64, 0x69,
2157	0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02,
2158	0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64,
2159	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22,
2160	0x8a, 0x02, 0x0a, 0x10, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68,
2161	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f,
2162	0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
2163	0x04, 0x52, 0x11, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69,
2164	0x63, 0x72, 0x6f, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c,
2165	0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f,
2166	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61,
2167	0x6c, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12,
2168	0x41, 0x0a, 0x0d, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68,
2169	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62,
2170	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4a, 0x6f, 0x62,
2171	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x61,
2172	0x74, 0x68, 0x12, 0x48, 0x0a, 0x11, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69,
2173	0x6e, 0x67, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
2174	0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
2175	0x69, 0x63, 0x73, 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6c, 0x6f, 0x6e,
2176	0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0x62, 0x0a, 0x07,
2177	0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6c, 0x61, 0x70, 0x73,
2178	0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x01,
2179	0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d,
2180	0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x64,
2181	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
2182	0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
2183	0x42, 0x28, 0x5a, 0x26, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f, 0x73, 0x6f, 0x6f, 0x6e,
2184	0x67, 0x2f, 0x75, 0x69, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x6d, 0x65, 0x74,
2185	0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
2186}
2187
2188var (
2189	file_metrics_proto_rawDescOnce sync.Once
2190	file_metrics_proto_rawDescData = file_metrics_proto_rawDesc
2191)
2192
2193func file_metrics_proto_rawDescGZIP() []byte {
2194	file_metrics_proto_rawDescOnce.Do(func() {
2195		file_metrics_proto_rawDescData = protoimpl.X.CompressGZIP(file_metrics_proto_rawDescData)
2196	})
2197	return file_metrics_proto_rawDescData
2198}
2199
2200var file_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
2201var file_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
2202var file_metrics_proto_goTypes = []interface{}{
2203	(MetricsBase_BuildVariant)(0),          // 0: soong_build_metrics.MetricsBase.BuildVariant
2204	(MetricsBase_Arch)(0),                  // 1: soong_build_metrics.MetricsBase.Arch
2205	(BuildConfig_NinjaWeightListSource)(0), // 2: soong_build_metrics.BuildConfig.NinjaWeightListSource
2206	(ModuleTypeInfo_BuildSystem)(0),        // 3: soong_build_metrics.ModuleTypeInfo.BuildSystem
2207	(ExpConfigFetcher_ConfigStatus)(0),     // 4: soong_build_metrics.ExpConfigFetcher.ConfigStatus
2208	(*MetricsBase)(nil),                    // 5: soong_build_metrics.MetricsBase
2209	(*BuildConfig)(nil),                    // 6: soong_build_metrics.BuildConfig
2210	(*SystemResourceInfo)(nil),             // 7: soong_build_metrics.SystemResourceInfo
2211	(*PerfInfo)(nil),                       // 8: soong_build_metrics.PerfInfo
2212	(*PerfCounters)(nil),                   // 9: soong_build_metrics.PerfCounters
2213	(*PerfCounterGroup)(nil),               // 10: soong_build_metrics.PerfCounterGroup
2214	(*PerfCounter)(nil),                    // 11: soong_build_metrics.PerfCounter
2215	(*ProcessResourceInfo)(nil),            // 12: soong_build_metrics.ProcessResourceInfo
2216	(*ModuleTypeInfo)(nil),                 // 13: soong_build_metrics.ModuleTypeInfo
2217	(*CriticalUserJourneyMetrics)(nil),     // 14: soong_build_metrics.CriticalUserJourneyMetrics
2218	(*CriticalUserJourneysMetrics)(nil),    // 15: soong_build_metrics.CriticalUserJourneysMetrics
2219	(*SoongBuildMetrics)(nil),              // 16: soong_build_metrics.SoongBuildMetrics
2220	(*ExpConfigFetcher)(nil),               // 17: soong_build_metrics.ExpConfigFetcher
2221	(*MixedBuildsInfo)(nil),                // 18: soong_build_metrics.MixedBuildsInfo
2222	(*CriticalPathInfo)(nil),               // 19: soong_build_metrics.CriticalPathInfo
2223	(*JobInfo)(nil),                        // 20: soong_build_metrics.JobInfo
2224}
2225var file_metrics_proto_depIdxs = []int32{
2226	0,  // 0: soong_build_metrics.MetricsBase.target_build_variant:type_name -> soong_build_metrics.MetricsBase.BuildVariant
2227	1,  // 1: soong_build_metrics.MetricsBase.target_arch:type_name -> soong_build_metrics.MetricsBase.Arch
2228	1,  // 2: soong_build_metrics.MetricsBase.host_arch:type_name -> soong_build_metrics.MetricsBase.Arch
2229	1,  // 3: soong_build_metrics.MetricsBase.host_2nd_arch:type_name -> soong_build_metrics.MetricsBase.Arch
2230	8,  // 4: soong_build_metrics.MetricsBase.setup_tools:type_name -> soong_build_metrics.PerfInfo
2231	8,  // 5: soong_build_metrics.MetricsBase.kati_runs:type_name -> soong_build_metrics.PerfInfo
2232	8,  // 6: soong_build_metrics.MetricsBase.soong_runs:type_name -> soong_build_metrics.PerfInfo
2233	8,  // 7: soong_build_metrics.MetricsBase.ninja_runs:type_name -> soong_build_metrics.PerfInfo
2234	8,  // 8: soong_build_metrics.MetricsBase.total:type_name -> soong_build_metrics.PerfInfo
2235	16, // 9: soong_build_metrics.MetricsBase.soong_build_metrics:type_name -> soong_build_metrics.SoongBuildMetrics
2236	6,  // 10: soong_build_metrics.MetricsBase.build_config:type_name -> soong_build_metrics.BuildConfig
2237	7,  // 11: soong_build_metrics.MetricsBase.system_resource_info:type_name -> soong_build_metrics.SystemResourceInfo
2238	8,  // 12: soong_build_metrics.MetricsBase.bazel_runs:type_name -> soong_build_metrics.PerfInfo
2239	17, // 13: soong_build_metrics.MetricsBase.exp_config_fetcher:type_name -> soong_build_metrics.ExpConfigFetcher
2240	19, // 14: soong_build_metrics.MetricsBase.critical_path_info:type_name -> soong_build_metrics.CriticalPathInfo
2241	2,  // 15: soong_build_metrics.BuildConfig.ninja_weight_list_source:type_name -> soong_build_metrics.BuildConfig.NinjaWeightListSource
2242	12, // 16: soong_build_metrics.PerfInfo.processes_resource_info:type_name -> soong_build_metrics.ProcessResourceInfo
2243	10, // 17: soong_build_metrics.PerfCounters.groups:type_name -> soong_build_metrics.PerfCounterGroup
2244	11, // 18: soong_build_metrics.PerfCounterGroup.counters:type_name -> soong_build_metrics.PerfCounter
2245	3,  // 19: soong_build_metrics.ModuleTypeInfo.build_system:type_name -> soong_build_metrics.ModuleTypeInfo.BuildSystem
2246	5,  // 20: soong_build_metrics.CriticalUserJourneyMetrics.metrics:type_name -> soong_build_metrics.MetricsBase
2247	14, // 21: soong_build_metrics.CriticalUserJourneysMetrics.cujs:type_name -> soong_build_metrics.CriticalUserJourneyMetrics
2248	8,  // 22: soong_build_metrics.SoongBuildMetrics.events:type_name -> soong_build_metrics.PerfInfo
2249	18, // 23: soong_build_metrics.SoongBuildMetrics.mixed_builds_info:type_name -> soong_build_metrics.MixedBuildsInfo
2250	9,  // 24: soong_build_metrics.SoongBuildMetrics.perf_counters:type_name -> soong_build_metrics.PerfCounters
2251	4,  // 25: soong_build_metrics.ExpConfigFetcher.status:type_name -> soong_build_metrics.ExpConfigFetcher.ConfigStatus
2252	20, // 26: soong_build_metrics.CriticalPathInfo.critical_path:type_name -> soong_build_metrics.JobInfo
2253	20, // 27: soong_build_metrics.CriticalPathInfo.long_running_jobs:type_name -> soong_build_metrics.JobInfo
2254	28, // [28:28] is the sub-list for method output_type
2255	28, // [28:28] is the sub-list for method input_type
2256	28, // [28:28] is the sub-list for extension type_name
2257	28, // [28:28] is the sub-list for extension extendee
2258	0,  // [0:28] is the sub-list for field type_name
2259}
2260
2261func init() { file_metrics_proto_init() }
2262func file_metrics_proto_init() {
2263	if File_metrics_proto != nil {
2264		return
2265	}
2266	if !protoimpl.UnsafeEnabled {
2267		file_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
2268			switch v := v.(*MetricsBase); i {
2269			case 0:
2270				return &v.state
2271			case 1:
2272				return &v.sizeCache
2273			case 2:
2274				return &v.unknownFields
2275			default:
2276				return nil
2277			}
2278		}
2279		file_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
2280			switch v := v.(*BuildConfig); i {
2281			case 0:
2282				return &v.state
2283			case 1:
2284				return &v.sizeCache
2285			case 2:
2286				return &v.unknownFields
2287			default:
2288				return nil
2289			}
2290		}
2291		file_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
2292			switch v := v.(*SystemResourceInfo); i {
2293			case 0:
2294				return &v.state
2295			case 1:
2296				return &v.sizeCache
2297			case 2:
2298				return &v.unknownFields
2299			default:
2300				return nil
2301			}
2302		}
2303		file_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
2304			switch v := v.(*PerfInfo); i {
2305			case 0:
2306				return &v.state
2307			case 1:
2308				return &v.sizeCache
2309			case 2:
2310				return &v.unknownFields
2311			default:
2312				return nil
2313			}
2314		}
2315		file_metrics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
2316			switch v := v.(*PerfCounters); i {
2317			case 0:
2318				return &v.state
2319			case 1:
2320				return &v.sizeCache
2321			case 2:
2322				return &v.unknownFields
2323			default:
2324				return nil
2325			}
2326		}
2327		file_metrics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
2328			switch v := v.(*PerfCounterGroup); i {
2329			case 0:
2330				return &v.state
2331			case 1:
2332				return &v.sizeCache
2333			case 2:
2334				return &v.unknownFields
2335			default:
2336				return nil
2337			}
2338		}
2339		file_metrics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
2340			switch v := v.(*PerfCounter); i {
2341			case 0:
2342				return &v.state
2343			case 1:
2344				return &v.sizeCache
2345			case 2:
2346				return &v.unknownFields
2347			default:
2348				return nil
2349			}
2350		}
2351		file_metrics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
2352			switch v := v.(*ProcessResourceInfo); i {
2353			case 0:
2354				return &v.state
2355			case 1:
2356				return &v.sizeCache
2357			case 2:
2358				return &v.unknownFields
2359			default:
2360				return nil
2361			}
2362		}
2363		file_metrics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
2364			switch v := v.(*ModuleTypeInfo); i {
2365			case 0:
2366				return &v.state
2367			case 1:
2368				return &v.sizeCache
2369			case 2:
2370				return &v.unknownFields
2371			default:
2372				return nil
2373			}
2374		}
2375		file_metrics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
2376			switch v := v.(*CriticalUserJourneyMetrics); i {
2377			case 0:
2378				return &v.state
2379			case 1:
2380				return &v.sizeCache
2381			case 2:
2382				return &v.unknownFields
2383			default:
2384				return nil
2385			}
2386		}
2387		file_metrics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
2388			switch v := v.(*CriticalUserJourneysMetrics); i {
2389			case 0:
2390				return &v.state
2391			case 1:
2392				return &v.sizeCache
2393			case 2:
2394				return &v.unknownFields
2395			default:
2396				return nil
2397			}
2398		}
2399		file_metrics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
2400			switch v := v.(*SoongBuildMetrics); i {
2401			case 0:
2402				return &v.state
2403			case 1:
2404				return &v.sizeCache
2405			case 2:
2406				return &v.unknownFields
2407			default:
2408				return nil
2409			}
2410		}
2411		file_metrics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
2412			switch v := v.(*ExpConfigFetcher); i {
2413			case 0:
2414				return &v.state
2415			case 1:
2416				return &v.sizeCache
2417			case 2:
2418				return &v.unknownFields
2419			default:
2420				return nil
2421			}
2422		}
2423		file_metrics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
2424			switch v := v.(*MixedBuildsInfo); i {
2425			case 0:
2426				return &v.state
2427			case 1:
2428				return &v.sizeCache
2429			case 2:
2430				return &v.unknownFields
2431			default:
2432				return nil
2433			}
2434		}
2435		file_metrics_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
2436			switch v := v.(*CriticalPathInfo); i {
2437			case 0:
2438				return &v.state
2439			case 1:
2440				return &v.sizeCache
2441			case 2:
2442				return &v.unknownFields
2443			default:
2444				return nil
2445			}
2446		}
2447		file_metrics_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
2448			switch v := v.(*JobInfo); i {
2449			case 0:
2450				return &v.state
2451			case 1:
2452				return &v.sizeCache
2453			case 2:
2454				return &v.unknownFields
2455			default:
2456				return nil
2457			}
2458		}
2459	}
2460	type x struct{}
2461	out := protoimpl.TypeBuilder{
2462		File: protoimpl.DescBuilder{
2463			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2464			RawDescriptor: file_metrics_proto_rawDesc,
2465			NumEnums:      5,
2466			NumMessages:   16,
2467			NumExtensions: 0,
2468			NumServices:   0,
2469		},
2470		GoTypes:           file_metrics_proto_goTypes,
2471		DependencyIndexes: file_metrics_proto_depIdxs,
2472		EnumInfos:         file_metrics_proto_enumTypes,
2473		MessageInfos:      file_metrics_proto_msgTypes,
2474	}.Build()
2475	File_metrics_proto = out.File
2476	file_metrics_proto_rawDesc = nil
2477	file_metrics_proto_goTypes = nil
2478	file_metrics_proto_depIdxs = nil
2479}
2480