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