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