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