go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/buildbucket/proto/common.pb.go (about) 1 // Copyright 2018 The LUCI Authors. 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.32.0 18 // protoc v3.21.7 19 // source: go.chromium.org/luci/buildbucket/proto/common.proto 20 21 package buildbucketpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 26 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 27 durationpb "google.golang.org/protobuf/types/known/durationpb" 28 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 29 reflect "reflect" 30 sync "sync" 31 ) 32 33 const ( 34 // Verify that this generated code is sufficiently up-to-date. 35 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 36 // Verify that runtime/protoimpl is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 38 ) 39 40 // Status of a build or a step. 41 type Status int32 42 43 const ( 44 // Unspecified state. Meaning depends on the context. 45 Status_STATUS_UNSPECIFIED Status = 0 46 // Build was scheduled, but did not start or end yet. 47 Status_SCHEDULED Status = 1 48 // Build/step has started. 49 Status_STARTED Status = 2 50 // A union of all terminal statuses. 51 // Can be used in BuildPredicate.status. 52 // A concrete build/step cannot have this status. 53 // Can be used as a bitmask to check that a build/step ended. 54 Status_ENDED_MASK Status = 4 55 // A build/step ended successfully. 56 // This is a terminal status. It may not transition to another status. 57 Status_SUCCESS Status = 12 // 8 | ENDED 58 // A build/step ended unsuccessfully due to its Build.Input, 59 // e.g. tests failed, and NOT due to a build infrastructure failure. 60 // This is a terminal status. It may not transition to another status. 61 Status_FAILURE Status = 20 // 16 | ENDED 62 // A build/step ended unsuccessfully due to a failure independent of the 63 // input, e.g. swarming failed, not enough capacity or the recipe was unable 64 // to read the patch from gerrit. 65 // start_time is not required for this status. 66 // This is a terminal status. It may not transition to another status. 67 Status_INFRA_FAILURE Status = 36 // 32 | ENDED 68 // A build was cancelled explicitly, e.g. via an RPC. 69 // This is a terminal status. It may not transition to another status. 70 Status_CANCELED Status = 68 // 64 | ENDED 71 ) 72 73 // Enum value maps for Status. 74 var ( 75 Status_name = map[int32]string{ 76 0: "STATUS_UNSPECIFIED", 77 1: "SCHEDULED", 78 2: "STARTED", 79 4: "ENDED_MASK", 80 12: "SUCCESS", 81 20: "FAILURE", 82 36: "INFRA_FAILURE", 83 68: "CANCELED", 84 } 85 Status_value = map[string]int32{ 86 "STATUS_UNSPECIFIED": 0, 87 "SCHEDULED": 1, 88 "STARTED": 2, 89 "ENDED_MASK": 4, 90 "SUCCESS": 12, 91 "FAILURE": 20, 92 "INFRA_FAILURE": 36, 93 "CANCELED": 68, 94 } 95 ) 96 97 func (x Status) Enum() *Status { 98 p := new(Status) 99 *p = x 100 return p 101 } 102 103 func (x Status) String() string { 104 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 105 } 106 107 func (Status) Descriptor() protoreflect.EnumDescriptor { 108 return file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[0].Descriptor() 109 } 110 111 func (Status) Type() protoreflect.EnumType { 112 return &file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[0] 113 } 114 115 func (x Status) Number() protoreflect.EnumNumber { 116 return protoreflect.EnumNumber(x) 117 } 118 119 // Deprecated: Use Status.Descriptor instead. 120 func (Status) EnumDescriptor() ([]byte, []int) { 121 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{0} 122 } 123 124 // A boolean with an undefined value. 125 type Trinary int32 126 127 const ( 128 Trinary_UNSET Trinary = 0 129 Trinary_YES Trinary = 1 130 Trinary_NO Trinary = 2 131 ) 132 133 // Enum value maps for Trinary. 134 var ( 135 Trinary_name = map[int32]string{ 136 0: "UNSET", 137 1: "YES", 138 2: "NO", 139 } 140 Trinary_value = map[string]int32{ 141 "UNSET": 0, 142 "YES": 1, 143 "NO": 2, 144 } 145 ) 146 147 func (x Trinary) Enum() *Trinary { 148 p := new(Trinary) 149 *p = x 150 return p 151 } 152 153 func (x Trinary) String() string { 154 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 155 } 156 157 func (Trinary) Descriptor() protoreflect.EnumDescriptor { 158 return file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[1].Descriptor() 159 } 160 161 func (Trinary) Type() protoreflect.EnumType { 162 return &file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[1] 163 } 164 165 func (x Trinary) Number() protoreflect.EnumNumber { 166 return protoreflect.EnumNumber(x) 167 } 168 169 // Deprecated: Use Trinary.Descriptor instead. 170 func (Trinary) EnumDescriptor() ([]byte, []int) { 171 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1} 172 } 173 174 // Compression method used in the corresponding data. 175 type Compression int32 176 177 const ( 178 Compression_ZLIB Compression = 0 179 Compression_ZSTD Compression = 1 180 ) 181 182 // Enum value maps for Compression. 183 var ( 184 Compression_name = map[int32]string{ 185 0: "ZLIB", 186 1: "ZSTD", 187 } 188 Compression_value = map[string]int32{ 189 "ZLIB": 0, 190 "ZSTD": 1, 191 } 192 ) 193 194 func (x Compression) Enum() *Compression { 195 p := new(Compression) 196 *p = x 197 return p 198 } 199 200 func (x Compression) String() string { 201 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 202 } 203 204 func (Compression) Descriptor() protoreflect.EnumDescriptor { 205 return file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[2].Descriptor() 206 } 207 208 func (Compression) Type() protoreflect.EnumType { 209 return &file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[2] 210 } 211 212 func (x Compression) Number() protoreflect.EnumNumber { 213 return protoreflect.EnumNumber(x) 214 } 215 216 // Deprecated: Use Compression.Descriptor instead. 217 func (Compression) EnumDescriptor() ([]byte, []int) { 218 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{2} 219 } 220 221 // An executable to run when the build is ready to start. 222 // 223 // Please refer to go.chromium.org/luci/luciexe for the protocol this executable 224 // is expected to implement. 225 // 226 // In addition to the "Host Application" responsibilities listed there, 227 // buildbucket will also ensure that $CWD points to an empty directory when it 228 // starts the build. 229 type Executable struct { 230 state protoimpl.MessageState 231 sizeCache protoimpl.SizeCache 232 unknownFields protoimpl.UnknownFields 233 234 // The CIPD package containing the executable. 235 // 236 // See the `cmd` field below for how the executable will be located within the 237 // package. 238 CipdPackage string `protobuf:"bytes,1,opt,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"` 239 // The CIPD version to fetch. 240 // 241 // Optional. If omitted, this defaults to `latest`. 242 CipdVersion string `protobuf:"bytes,2,opt,name=cipd_version,json=cipdVersion,proto3" json:"cipd_version,omitempty"` 243 // The command to invoke within the package. 244 // 245 // The 0th argument is taken as relative to the cipd_package root (a.k.a. 246 // BBAgentArgs.payload_path), so "foo" would invoke the binary called "foo" in 247 // the root of the package. On Windows, this will automatically look 248 // first for ".exe" and ".bat" variants. Similarly, "subdir/foo" would 249 // look for "foo" in "subdir" of the CIPD package. 250 // 251 // The other arguments are passed verbatim to the executable. 252 // 253 // The 'build.proto' binary message will always be passed to stdin, even when 254 // this command has arguments (see go.chromium.org/luci/luciexe). 255 // 256 // RECOMMENDATION: It's advised to rely on the build.proto's Input.Properties 257 // field for passing task-specific data. Properties are JSON-typed and can be 258 // modeled with a protobuf (using JSONPB). However, supplying additional args 259 // can be useful to, e.g., increase logging verbosity, or similar 260 // 'system level' settings within the binary. 261 // 262 // Optional. If omitted, defaults to `['luciexe']`. 263 Cmd []string `protobuf:"bytes,3,rep,name=cmd,proto3" json:"cmd,omitempty"` 264 // Wrapper is a command and its args which will be used to 'wrap' the 265 // execution of `cmd`. 266 // Given: 267 // 268 // wrapper = ['/some/exe', '--arg'] 269 // cmd = ['my_exe', '--other-arg'] 270 // 271 // Buildbucket's agent will invoke 272 // 273 // /some/exe --arg -- /path/to/task/root/dir/my_exe --other-arg 274 // 275 // Note that '--' is always inserted between the wrapper and the target 276 // cmd 277 // 278 // The wrapper program MUST maintain all the invariants specified in 279 // go.chromium.org/luci/luciexe (likely by passing-through 280 // most of this responsibility to `cmd`). 281 // 282 // wrapper[0] MAY be an absolute path. If https://pkg.go.dev/path/filepath#IsAbs 283 // returns `true` for wrapper[0], it will be interpreted as an absolute 284 // path. In this case, it is your responsibility to ensure that the target 285 // binary is correctly deployed an any machine where the Build might run 286 // (by whatever means you use to prepare/adjust your system image). Failure to do 287 // so will cause the build to terminate with INFRA_FAILURE. 288 // 289 // If wrapper[0] is non-absolute, but does not contain a path separator, 290 // it will be looked for in $PATH (and the same rules apply for 291 // pre-distribution as in the absolute path case). 292 // 293 // If wrapper[0] begins with a "./" (or ".\") or contains a path separator 294 // anywhere, it will be considered relative to the task root. 295 // 296 // Example wrapper[0]: 297 // 298 // Absolute path (*nix): /some/prog 299 // Absolute path (Windows): C:\some\prog.exe 300 // $PATH or %PATH% lookup: prog 301 // task-relative (*nix): ./prog ($taskRoot/prog) 302 // task-relative (*nix): dir/prog ($taskRoot/dir/prog) 303 // task-relative (Windows): .\prog.exe ($taskRoot\\prog.exe) 304 // task-relative (Windows): dir\prog.exe ($taskRoot\\dir\\prog.exe) 305 Wrapper []string `protobuf:"bytes,4,rep,name=wrapper,proto3" json:"wrapper,omitempty"` 306 } 307 308 func (x *Executable) Reset() { 309 *x = Executable{} 310 if protoimpl.UnsafeEnabled { 311 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[0] 312 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 313 ms.StoreMessageInfo(mi) 314 } 315 } 316 317 func (x *Executable) String() string { 318 return protoimpl.X.MessageStringOf(x) 319 } 320 321 func (*Executable) ProtoMessage() {} 322 323 func (x *Executable) ProtoReflect() protoreflect.Message { 324 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[0] 325 if protoimpl.UnsafeEnabled && x != nil { 326 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 327 if ms.LoadMessageInfo() == nil { 328 ms.StoreMessageInfo(mi) 329 } 330 return ms 331 } 332 return mi.MessageOf(x) 333 } 334 335 // Deprecated: Use Executable.ProtoReflect.Descriptor instead. 336 func (*Executable) Descriptor() ([]byte, []int) { 337 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{0} 338 } 339 340 func (x *Executable) GetCipdPackage() string { 341 if x != nil { 342 return x.CipdPackage 343 } 344 return "" 345 } 346 347 func (x *Executable) GetCipdVersion() string { 348 if x != nil { 349 return x.CipdVersion 350 } 351 return "" 352 } 353 354 func (x *Executable) GetCmd() []string { 355 if x != nil { 356 return x.Cmd 357 } 358 return nil 359 } 360 361 func (x *Executable) GetWrapper() []string { 362 if x != nil { 363 return x.Wrapper 364 } 365 return nil 366 } 367 368 // Machine-readable details of a status. 369 // Human-readble details are present in a sibling summary_markdown field. 370 type StatusDetails struct { 371 state protoimpl.MessageState 372 sizeCache protoimpl.SizeCache 373 unknownFields protoimpl.UnknownFields 374 375 // If set, indicates that the failure was due to a resource exhaustion / quota 376 // denial. 377 // Applicable in FAILURE and INFRA_FAILURE statuses. 378 ResourceExhaustion *StatusDetails_ResourceExhaustion `protobuf:"bytes,3,opt,name=resource_exhaustion,json=resourceExhaustion,proto3" json:"resource_exhaustion,omitempty"` 379 // If set, indicates that the build ended due to the expiration_timeout or 380 // scheduling_timeout set for the build. 381 // 382 // Applicable in all final statuses. 383 // 384 // SUCCESS+timeout would indicate a successful recovery from a timeout signal 385 // during the build's grace_period. 386 Timeout *StatusDetails_Timeout `protobuf:"bytes,4,opt,name=timeout,proto3" json:"timeout,omitempty"` 387 } 388 389 func (x *StatusDetails) Reset() { 390 *x = StatusDetails{} 391 if protoimpl.UnsafeEnabled { 392 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[1] 393 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 394 ms.StoreMessageInfo(mi) 395 } 396 } 397 398 func (x *StatusDetails) String() string { 399 return protoimpl.X.MessageStringOf(x) 400 } 401 402 func (*StatusDetails) ProtoMessage() {} 403 404 func (x *StatusDetails) ProtoReflect() protoreflect.Message { 405 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[1] 406 if protoimpl.UnsafeEnabled && x != nil { 407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 408 if ms.LoadMessageInfo() == nil { 409 ms.StoreMessageInfo(mi) 410 } 411 return ms 412 } 413 return mi.MessageOf(x) 414 } 415 416 // Deprecated: Use StatusDetails.ProtoReflect.Descriptor instead. 417 func (*StatusDetails) Descriptor() ([]byte, []int) { 418 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1} 419 } 420 421 func (x *StatusDetails) GetResourceExhaustion() *StatusDetails_ResourceExhaustion { 422 if x != nil { 423 return x.ResourceExhaustion 424 } 425 return nil 426 } 427 428 func (x *StatusDetails) GetTimeout() *StatusDetails_Timeout { 429 if x != nil { 430 return x.Timeout 431 } 432 return nil 433 } 434 435 // A named log of a step or build. 436 type Log struct { 437 state protoimpl.MessageState 438 sizeCache protoimpl.SizeCache 439 unknownFields protoimpl.UnknownFields 440 441 // Log name, standard ("stdout", "stderr") or custom (e.g. "json.output"). 442 // Unique within the containing message (step or build). 443 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 444 // URL of a Human-readable page that displays log contents. 445 ViewUrl string `protobuf:"bytes,2,opt,name=view_url,json=viewUrl,proto3" json:"view_url,omitempty"` 446 // URL of the log content. 447 // As of 2018-09-06, the only supported scheme is "logdog". 448 // Typically it has form 449 // "logdog://<host>/<project>/<prefix>/+/<stream_name>". 450 // See also 451 // https://godoc.org/go.chromium.org/luci/logdog/common/types#ParseURL 452 Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` 453 } 454 455 func (x *Log) Reset() { 456 *x = Log{} 457 if protoimpl.UnsafeEnabled { 458 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[2] 459 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 460 ms.StoreMessageInfo(mi) 461 } 462 } 463 464 func (x *Log) String() string { 465 return protoimpl.X.MessageStringOf(x) 466 } 467 468 func (*Log) ProtoMessage() {} 469 470 func (x *Log) ProtoReflect() protoreflect.Message { 471 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[2] 472 if protoimpl.UnsafeEnabled && x != nil { 473 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 474 if ms.LoadMessageInfo() == nil { 475 ms.StoreMessageInfo(mi) 476 } 477 return ms 478 } 479 return mi.MessageOf(x) 480 } 481 482 // Deprecated: Use Log.ProtoReflect.Descriptor instead. 483 func (*Log) Descriptor() ([]byte, []int) { 484 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{2} 485 } 486 487 func (x *Log) GetName() string { 488 if x != nil { 489 return x.Name 490 } 491 return "" 492 } 493 494 func (x *Log) GetViewUrl() string { 495 if x != nil { 496 return x.ViewUrl 497 } 498 return "" 499 } 500 501 func (x *Log) GetUrl() string { 502 if x != nil { 503 return x.Url 504 } 505 return "" 506 } 507 508 // A Gerrit patchset. 509 type GerritChange struct { 510 state protoimpl.MessageState 511 sizeCache protoimpl.SizeCache 512 unknownFields protoimpl.UnknownFields 513 514 // Gerrit hostname, e.g. "chromium-review.googlesource.com". 515 Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` 516 // Gerrit project, e.g. "chromium/src". 517 Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` 518 // Change number, e.g. 12345. 519 Change int64 `protobuf:"varint,3,opt,name=change,proto3" json:"change,omitempty"` 520 // Patch set number, e.g. 1. 521 Patchset int64 `protobuf:"varint,4,opt,name=patchset,proto3" json:"patchset,omitempty"` 522 } 523 524 func (x *GerritChange) Reset() { 525 *x = GerritChange{} 526 if protoimpl.UnsafeEnabled { 527 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[3] 528 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 529 ms.StoreMessageInfo(mi) 530 } 531 } 532 533 func (x *GerritChange) String() string { 534 return protoimpl.X.MessageStringOf(x) 535 } 536 537 func (*GerritChange) ProtoMessage() {} 538 539 func (x *GerritChange) ProtoReflect() protoreflect.Message { 540 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[3] 541 if protoimpl.UnsafeEnabled && x != nil { 542 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 543 if ms.LoadMessageInfo() == nil { 544 ms.StoreMessageInfo(mi) 545 } 546 return ms 547 } 548 return mi.MessageOf(x) 549 } 550 551 // Deprecated: Use GerritChange.ProtoReflect.Descriptor instead. 552 func (*GerritChange) Descriptor() ([]byte, []int) { 553 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{3} 554 } 555 556 func (x *GerritChange) GetHost() string { 557 if x != nil { 558 return x.Host 559 } 560 return "" 561 } 562 563 func (x *GerritChange) GetProject() string { 564 if x != nil { 565 return x.Project 566 } 567 return "" 568 } 569 570 func (x *GerritChange) GetChange() int64 { 571 if x != nil { 572 return x.Change 573 } 574 return 0 575 } 576 577 func (x *GerritChange) GetPatchset() int64 { 578 if x != nil { 579 return x.Patchset 580 } 581 return 0 582 } 583 584 // A landed Git commit hosted on Gitiles. 585 type GitilesCommit struct { 586 state protoimpl.MessageState 587 sizeCache protoimpl.SizeCache 588 unknownFields protoimpl.UnknownFields 589 590 // Gitiles hostname, e.g. "chromium.googlesource.com". 591 Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` 592 // Repository name on the host, e.g. "chromium/src". 593 Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` 594 // Commit HEX SHA1. 595 Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` 596 // Commit ref, e.g. "refs/heads/master". 597 // NOT a branch name: if specified, must start with "refs/". 598 // If id is set, ref SHOULD also be set, so that git clients can 599 // know how to obtain the commit by id. 600 Ref string `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"` 601 // Defines a total order of commits on the ref. Requires ref field. 602 // Typically 1-based, monotonically increasing, contiguous integer 603 // defined by a Gerrit plugin, goto.google.com/git-numberer. 604 // TODO(tandrii): make it a public doc. 605 Position uint32 `protobuf:"varint,5,opt,name=position,proto3" json:"position,omitempty"` 606 } 607 608 func (x *GitilesCommit) Reset() { 609 *x = GitilesCommit{} 610 if protoimpl.UnsafeEnabled { 611 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[4] 612 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 613 ms.StoreMessageInfo(mi) 614 } 615 } 616 617 func (x *GitilesCommit) String() string { 618 return protoimpl.X.MessageStringOf(x) 619 } 620 621 func (*GitilesCommit) ProtoMessage() {} 622 623 func (x *GitilesCommit) ProtoReflect() protoreflect.Message { 624 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[4] 625 if protoimpl.UnsafeEnabled && x != nil { 626 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 627 if ms.LoadMessageInfo() == nil { 628 ms.StoreMessageInfo(mi) 629 } 630 return ms 631 } 632 return mi.MessageOf(x) 633 } 634 635 // Deprecated: Use GitilesCommit.ProtoReflect.Descriptor instead. 636 func (*GitilesCommit) Descriptor() ([]byte, []int) { 637 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{4} 638 } 639 640 func (x *GitilesCommit) GetHost() string { 641 if x != nil { 642 return x.Host 643 } 644 return "" 645 } 646 647 func (x *GitilesCommit) GetProject() string { 648 if x != nil { 649 return x.Project 650 } 651 return "" 652 } 653 654 func (x *GitilesCommit) GetId() string { 655 if x != nil { 656 return x.Id 657 } 658 return "" 659 } 660 661 func (x *GitilesCommit) GetRef() string { 662 if x != nil { 663 return x.Ref 664 } 665 return "" 666 } 667 668 func (x *GitilesCommit) GetPosition() uint32 { 669 if x != nil { 670 return x.Position 671 } 672 return 0 673 } 674 675 // A key-value pair of strings. 676 type StringPair struct { 677 state protoimpl.MessageState 678 sizeCache protoimpl.SizeCache 679 unknownFields protoimpl.UnknownFields 680 681 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 682 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 683 } 684 685 func (x *StringPair) Reset() { 686 *x = StringPair{} 687 if protoimpl.UnsafeEnabled { 688 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[5] 689 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 690 ms.StoreMessageInfo(mi) 691 } 692 } 693 694 func (x *StringPair) String() string { 695 return protoimpl.X.MessageStringOf(x) 696 } 697 698 func (*StringPair) ProtoMessage() {} 699 700 func (x *StringPair) ProtoReflect() protoreflect.Message { 701 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[5] 702 if protoimpl.UnsafeEnabled && x != nil { 703 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 704 if ms.LoadMessageInfo() == nil { 705 ms.StoreMessageInfo(mi) 706 } 707 return ms 708 } 709 return mi.MessageOf(x) 710 } 711 712 // Deprecated: Use StringPair.ProtoReflect.Descriptor instead. 713 func (*StringPair) Descriptor() ([]byte, []int) { 714 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{5} 715 } 716 717 func (x *StringPair) GetKey() string { 718 if x != nil { 719 return x.Key 720 } 721 return "" 722 } 723 724 func (x *StringPair) GetValue() string { 725 if x != nil { 726 return x.Value 727 } 728 return "" 729 } 730 731 // Half-open time range. 732 type TimeRange struct { 733 state protoimpl.MessageState 734 sizeCache protoimpl.SizeCache 735 unknownFields protoimpl.UnknownFields 736 737 // Inclusive lower boundary. Optional. 738 StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 739 // Exclusive upper boundary. Optional. 740 EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 741 } 742 743 func (x *TimeRange) Reset() { 744 *x = TimeRange{} 745 if protoimpl.UnsafeEnabled { 746 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[6] 747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 748 ms.StoreMessageInfo(mi) 749 } 750 } 751 752 func (x *TimeRange) String() string { 753 return protoimpl.X.MessageStringOf(x) 754 } 755 756 func (*TimeRange) ProtoMessage() {} 757 758 func (x *TimeRange) ProtoReflect() protoreflect.Message { 759 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[6] 760 if protoimpl.UnsafeEnabled && x != nil { 761 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 762 if ms.LoadMessageInfo() == nil { 763 ms.StoreMessageInfo(mi) 764 } 765 return ms 766 } 767 return mi.MessageOf(x) 768 } 769 770 // Deprecated: Use TimeRange.ProtoReflect.Descriptor instead. 771 func (*TimeRange) Descriptor() ([]byte, []int) { 772 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{6} 773 } 774 775 func (x *TimeRange) GetStartTime() *timestamppb.Timestamp { 776 if x != nil { 777 return x.StartTime 778 } 779 return nil 780 } 781 782 func (x *TimeRange) GetEndTime() *timestamppb.Timestamp { 783 if x != nil { 784 return x.EndTime 785 } 786 return nil 787 } 788 789 // A requested dimension. Looks like StringPair, but also has an expiration. 790 type RequestedDimension struct { 791 state protoimpl.MessageState 792 sizeCache protoimpl.SizeCache 793 unknownFields protoimpl.UnknownFields 794 795 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 796 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 797 // If set, ignore this dimension after this duration. 798 Expiration *durationpb.Duration `protobuf:"bytes,3,opt,name=expiration,proto3" json:"expiration,omitempty"` 799 } 800 801 func (x *RequestedDimension) Reset() { 802 *x = RequestedDimension{} 803 if protoimpl.UnsafeEnabled { 804 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[7] 805 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 806 ms.StoreMessageInfo(mi) 807 } 808 } 809 810 func (x *RequestedDimension) String() string { 811 return protoimpl.X.MessageStringOf(x) 812 } 813 814 func (*RequestedDimension) ProtoMessage() {} 815 816 func (x *RequestedDimension) ProtoReflect() protoreflect.Message { 817 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[7] 818 if protoimpl.UnsafeEnabled && x != nil { 819 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 820 if ms.LoadMessageInfo() == nil { 821 ms.StoreMessageInfo(mi) 822 } 823 return ms 824 } 825 return mi.MessageOf(x) 826 } 827 828 // Deprecated: Use RequestedDimension.ProtoReflect.Descriptor instead. 829 func (*RequestedDimension) Descriptor() ([]byte, []int) { 830 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{7} 831 } 832 833 func (x *RequestedDimension) GetKey() string { 834 if x != nil { 835 return x.Key 836 } 837 return "" 838 } 839 840 func (x *RequestedDimension) GetValue() string { 841 if x != nil { 842 return x.Value 843 } 844 return "" 845 } 846 847 func (x *RequestedDimension) GetExpiration() *durationpb.Duration { 848 if x != nil { 849 return x.Expiration 850 } 851 return nil 852 } 853 854 // This message is a duplicate of Build.Infra.Swarming.CacheEntry, 855 // however we will be moving from hardcoded swarming -> task backends. 856 // This message will remain as the desired CacheEntry and eventually 857 // Build.Infra.Swarming will be deprecated, so this will remain. 858 // 859 // Describes a cache directory persisted on a bot. 860 // 861 // If a build requested a cache, the cache directory is available on build 862 // startup. If the cache was present on the bot, the directory contains 863 // files from the previous run on that bot. 864 // The build can read/write to the cache directory while it runs. 865 // After build completes, the cache directory is persisted. 866 // The next time another build requests the same cache and runs on the same 867 // bot, the files will still be there (unless the cache was evicted, 868 // perhaps due to disk space reasons). 869 // 870 // One bot can keep multiple caches at the same time and one build can request 871 // multiple different caches. 872 // A cache is identified by its name and mapped to a path. 873 // 874 // If the bot is running out of space, caches are evicted in LRU manner 875 // before the next build on this bot starts. 876 // 877 // Buildbucket implicitly declares cache 878 // 879 // {"name": "<hash(project/bucket/builder)>", "path": "builder"}. 880 // 881 // This means that any LUCI builder has a "personal disk space" on the bot. 882 // Builder cache is often a good start before customizing caching. 883 // In recipes, it is available at api.buildbucket.builder_cache_path. 884 // 885 // To share a builder cache among multiple builders, it can be overridden: 886 // 887 // builders { 888 // name: "a" 889 // caches { 890 // path: "builder" 891 // name: "my_shared_cache" 892 // } 893 // } 894 // builders { 895 // name: "b" 896 // caches { 897 // path: "builder" 898 // name: "my_shared_cache" 899 // } 900 // } 901 // 902 // Builders "a" and "b" share their builder cache. If an "a" build ran on a 903 // bot and left some files in the builder cache and then a "b" build runs on 904 // the same bot, the same files will be available in the builder cache. 905 type CacheEntry struct { 906 state protoimpl.MessageState 907 sizeCache protoimpl.SizeCache 908 unknownFields protoimpl.UnknownFields 909 910 // Identifier of the cache. Required. Length is limited to 128. 911 // Must be unique in the build. 912 // 913 // If the pool of swarming bots is shared among multiple LUCI projects and 914 // projects use same cache name, the cache will be shared across projects. 915 // To avoid affecting and being affected by other projects, prefix the 916 // cache name with something project-specific, e.g. "v8-". 917 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 918 // Relative path where the cache in mapped into. Required. 919 // 920 // Must use POSIX format (forward slashes). 921 // In most cases, it does not need slashes at all. 922 // 923 // In recipes, use api.path['cache'].join(path) to get absolute path. 924 // 925 // Must be unique in the build. 926 Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` 927 // Duration to wait for a bot with a warm cache to pick up the 928 // task, before falling back to a bot with a cold (non-existent) cache. 929 // 930 // The default is 0, which means that no preference will be chosen for a 931 // bot with this or without this cache, and a bot without this cache may 932 // be chosen instead. 933 // 934 // If no bot has this cache warm, the task will skip this wait and will 935 // immediately fallback to a cold cache request. 936 // 937 // The value must be multiples of 60 seconds. 938 WaitForWarmCache *durationpb.Duration `protobuf:"bytes,3,opt,name=wait_for_warm_cache,json=waitForWarmCache,proto3" json:"wait_for_warm_cache,omitempty"` 939 // Environment variable with this name will be set to the path to the cache 940 // directory. 941 EnvVar string `protobuf:"bytes,4,opt,name=env_var,json=envVar,proto3" json:"env_var,omitempty"` 942 } 943 944 func (x *CacheEntry) Reset() { 945 *x = CacheEntry{} 946 if protoimpl.UnsafeEnabled { 947 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[8] 948 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 949 ms.StoreMessageInfo(mi) 950 } 951 } 952 953 func (x *CacheEntry) String() string { 954 return protoimpl.X.MessageStringOf(x) 955 } 956 957 func (*CacheEntry) ProtoMessage() {} 958 959 func (x *CacheEntry) ProtoReflect() protoreflect.Message { 960 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[8] 961 if protoimpl.UnsafeEnabled && x != nil { 962 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 963 if ms.LoadMessageInfo() == nil { 964 ms.StoreMessageInfo(mi) 965 } 966 return ms 967 } 968 return mi.MessageOf(x) 969 } 970 971 // Deprecated: Use CacheEntry.ProtoReflect.Descriptor instead. 972 func (*CacheEntry) Descriptor() ([]byte, []int) { 973 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{8} 974 } 975 976 func (x *CacheEntry) GetName() string { 977 if x != nil { 978 return x.Name 979 } 980 return "" 981 } 982 983 func (x *CacheEntry) GetPath() string { 984 if x != nil { 985 return x.Path 986 } 987 return "" 988 } 989 990 func (x *CacheEntry) GetWaitForWarmCache() *durationpb.Duration { 991 if x != nil { 992 return x.WaitForWarmCache 993 } 994 return nil 995 } 996 997 func (x *CacheEntry) GetEnvVar() string { 998 if x != nil { 999 return x.EnvVar 1000 } 1001 return "" 1002 } 1003 1004 type HealthStatus struct { 1005 state protoimpl.MessageState 1006 sizeCache protoimpl.SizeCache 1007 unknownFields protoimpl.UnknownFields 1008 1009 // A numeric score for a builder's health. 1010 // The scores must respect the following: 1011 // - 0: Unknown status 1012 // - 1: The worst possible health 1013 // e.g. 1014 // - all bots are dead. 1015 // - every single build has ended in INFRA_FAILURE in the configured 1016 // time period. 1017 // - 10: Completely healthy. 1018 // e.g. Every single build has ended in SUCCESS or CANCELLED in the 1019 // configured time period. 1020 // 1021 // Reasoning for scores from 2 to 9 are to be configured by the builder owner. 1022 // Since each set of metrics used to calculate the health score can vary, the 1023 // builder owners must provide the score and reasoning (using the description 1024 // field). This allows for complicated metric calculation while preserving a 1025 // binary solution for less complex forms of metric calculation. 1026 HealthScore int64 `protobuf:"varint,1,opt,name=health_score,json=healthScore,proto3" json:"health_score,omitempty"` 1027 // A map of metric label to value. This will allow milo to display the metrics 1028 // used to construct the health score. There is no generic set of metrics for 1029 // this since each set of metrics can vary from team to team. 1030 // 1031 // Buildbucket will not use this information to calculate the health score. 1032 // These metrics are for display only. 1033 HealthMetrics map[string]float32 `protobuf:"bytes,2,rep,name=health_metrics,json=healthMetrics,proto3" json:"health_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` 1034 // A human readable summary of why the health is the way it is, without 1035 // the user having to go to the dashboard to find it themselves. 1036 // 1037 // E.g. 1038 // 1039 // "the p90 pending time has been greater than 50 minutes for at least 3 1040 // of the last 7 days" 1041 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1042 // Mapping of username domain to clickable link for documentation on the health 1043 // metrics and how they were calculated. 1044 // 1045 // The empty domain value will be used as a fallback for anonymous users, or 1046 // if the user identity domain doesn't have a matching entry in this map. 1047 // 1048 // If linking an internal google link (say g3doc), use a go-link instead of a 1049 // raw url. 1050 DocLinks map[string]string `protobuf:"bytes,4,rep,name=doc_links,json=docLinks,proto3" json:"doc_links,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1051 // Mapping of username domain to clickable link for data visualization or 1052 // dashboards for the health metrics. 1053 // 1054 // Similar to doc_links, the empty domain value will be used as a fallback for 1055 // anonymous users, or if the user identity domain doesn't have a matching 1056 // entry in this map. 1057 // 1058 // If linking an internal google link (say g3doc), use a go-link instead of a 1059 // raw url. 1060 DataLinks map[string]string `protobuf:"bytes,5,rep,name=data_links,json=dataLinks,proto3" json:"data_links,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1061 // Entity that reported the health status, A luci-auth identity. 1062 // E.g. 1063 // 1064 // anonymous:anonymous, user:someuser@example.com, project:chromeos 1065 // 1066 // Set by Buildbucket. Output only. 1067 Reporter string `protobuf:"bytes,6,opt,name=reporter,proto3" json:"reporter,omitempty"` 1068 // Set by Buildbucket. Output only. 1069 ReportedTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=reported_time,json=reportedTime,proto3" json:"reported_time,omitempty"` 1070 // A contact email for the builder's owning team, for the purpose of fixing builder health issues 1071 // See contact_team_email field in project_config.BuilderConfig 1072 ContactTeamEmail string `protobuf:"bytes,8,opt,name=contact_team_email,json=contactTeamEmail,proto3" json:"contact_team_email,omitempty"` 1073 } 1074 1075 func (x *HealthStatus) Reset() { 1076 *x = HealthStatus{} 1077 if protoimpl.UnsafeEnabled { 1078 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[9] 1079 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1080 ms.StoreMessageInfo(mi) 1081 } 1082 } 1083 1084 func (x *HealthStatus) String() string { 1085 return protoimpl.X.MessageStringOf(x) 1086 } 1087 1088 func (*HealthStatus) ProtoMessage() {} 1089 1090 func (x *HealthStatus) ProtoReflect() protoreflect.Message { 1091 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[9] 1092 if protoimpl.UnsafeEnabled && x != nil { 1093 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1094 if ms.LoadMessageInfo() == nil { 1095 ms.StoreMessageInfo(mi) 1096 } 1097 return ms 1098 } 1099 return mi.MessageOf(x) 1100 } 1101 1102 // Deprecated: Use HealthStatus.ProtoReflect.Descriptor instead. 1103 func (*HealthStatus) Descriptor() ([]byte, []int) { 1104 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{9} 1105 } 1106 1107 func (x *HealthStatus) GetHealthScore() int64 { 1108 if x != nil { 1109 return x.HealthScore 1110 } 1111 return 0 1112 } 1113 1114 func (x *HealthStatus) GetHealthMetrics() map[string]float32 { 1115 if x != nil { 1116 return x.HealthMetrics 1117 } 1118 return nil 1119 } 1120 1121 func (x *HealthStatus) GetDescription() string { 1122 if x != nil { 1123 return x.Description 1124 } 1125 return "" 1126 } 1127 1128 func (x *HealthStatus) GetDocLinks() map[string]string { 1129 if x != nil { 1130 return x.DocLinks 1131 } 1132 return nil 1133 } 1134 1135 func (x *HealthStatus) GetDataLinks() map[string]string { 1136 if x != nil { 1137 return x.DataLinks 1138 } 1139 return nil 1140 } 1141 1142 func (x *HealthStatus) GetReporter() string { 1143 if x != nil { 1144 return x.Reporter 1145 } 1146 return "" 1147 } 1148 1149 func (x *HealthStatus) GetReportedTime() *timestamppb.Timestamp { 1150 if x != nil { 1151 return x.ReportedTime 1152 } 1153 return nil 1154 } 1155 1156 func (x *HealthStatus) GetContactTeamEmail() string { 1157 if x != nil { 1158 return x.ContactTeamEmail 1159 } 1160 return "" 1161 } 1162 1163 type StatusDetails_ResourceExhaustion struct { 1164 state protoimpl.MessageState 1165 sizeCache protoimpl.SizeCache 1166 unknownFields protoimpl.UnknownFields 1167 } 1168 1169 func (x *StatusDetails_ResourceExhaustion) Reset() { 1170 *x = StatusDetails_ResourceExhaustion{} 1171 if protoimpl.UnsafeEnabled { 1172 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[10] 1173 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1174 ms.StoreMessageInfo(mi) 1175 } 1176 } 1177 1178 func (x *StatusDetails_ResourceExhaustion) String() string { 1179 return protoimpl.X.MessageStringOf(x) 1180 } 1181 1182 func (*StatusDetails_ResourceExhaustion) ProtoMessage() {} 1183 1184 func (x *StatusDetails_ResourceExhaustion) ProtoReflect() protoreflect.Message { 1185 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[10] 1186 if protoimpl.UnsafeEnabled && x != nil { 1187 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1188 if ms.LoadMessageInfo() == nil { 1189 ms.StoreMessageInfo(mi) 1190 } 1191 return ms 1192 } 1193 return mi.MessageOf(x) 1194 } 1195 1196 // Deprecated: Use StatusDetails_ResourceExhaustion.ProtoReflect.Descriptor instead. 1197 func (*StatusDetails_ResourceExhaustion) Descriptor() ([]byte, []int) { 1198 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1, 0} 1199 } 1200 1201 type StatusDetails_Timeout struct { 1202 state protoimpl.MessageState 1203 sizeCache protoimpl.SizeCache 1204 unknownFields protoimpl.UnknownFields 1205 } 1206 1207 func (x *StatusDetails_Timeout) Reset() { 1208 *x = StatusDetails_Timeout{} 1209 if protoimpl.UnsafeEnabled { 1210 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[11] 1211 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1212 ms.StoreMessageInfo(mi) 1213 } 1214 } 1215 1216 func (x *StatusDetails_Timeout) String() string { 1217 return protoimpl.X.MessageStringOf(x) 1218 } 1219 1220 func (*StatusDetails_Timeout) ProtoMessage() {} 1221 1222 func (x *StatusDetails_Timeout) ProtoReflect() protoreflect.Message { 1223 mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[11] 1224 if protoimpl.UnsafeEnabled && x != nil { 1225 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1226 if ms.LoadMessageInfo() == nil { 1227 ms.StoreMessageInfo(mi) 1228 } 1229 return ms 1230 } 1231 return mi.MessageOf(x) 1232 } 1233 1234 // Deprecated: Use StatusDetails_Timeout.ProtoReflect.Descriptor instead. 1235 func (*StatusDetails_Timeout) Descriptor() ([]byte, []int) { 1236 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1, 1} 1237 } 1238 1239 var File_go_chromium_org_luci_buildbucket_proto_common_proto protoreflect.FileDescriptor 1240 1241 var file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc = []byte{ 1242 0x0a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 1243 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 1244 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 1245 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 1246 0x65, 0x74, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 1247 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 1248 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 1249 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1250 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 1251 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 1252 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7e, 0x0a, 0x0a, 0x45, 0x78, 0x65, 0x63, 0x75, 1253 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x70, 0x61, 1254 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x69, 0x70, 1255 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 1256 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 1257 0x63, 0x69, 0x70, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x63, 1258 0x6d, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x18, 0x0a, 1259 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 1260 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 1261 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x61, 0x0a, 0x13, 0x72, 0x65, 0x73, 1262 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, 1263 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 1264 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 1265 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, 1266 0x68, 0x61, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 1267 0x63, 0x65, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x07, 1268 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 1269 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 1270 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x54, 0x69, 0x6d, 1271 0x65, 0x6f, 0x75, 0x74, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x14, 0x0a, 1272 0x12, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 1273 0x69, 0x6f, 0x6e, 0x1a, 0x09, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x04, 1274 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x46, 0x0a, 0x03, 0x4c, 0x6f, 1275 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1276 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x75, 0x72, 1277 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 1278 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 1279 0x72, 0x6c, 0x22, 0x70, 0x0a, 0x0c, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 1280 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1281 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 1282 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 1283 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 1284 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x63, 1285 0x68, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x74, 0x63, 1286 0x68, 0x73, 0x65, 0x74, 0x22, 0x7b, 0x0a, 0x0d, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 1287 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 1288 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 1289 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 1290 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 1291 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 1292 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 1293 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 1294 0x6e, 0x22, 0x34, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 1295 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 1296 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 1297 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7d, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x52, 1298 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 1299 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1300 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 1301 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 1302 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 1303 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1304 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 1305 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x77, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 1306 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 1307 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 1308 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 1309 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 1310 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1311 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 1312 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 1313 0x97, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 1314 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 1315 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 1316 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x13, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 1317 0x6f, 0x72, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x03, 0x20, 1318 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1319 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 1320 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x57, 0x61, 0x72, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 1321 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 1322 0x09, 0x52, 0x06, 0x65, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x22, 0x92, 0x05, 0x0a, 0x0c, 0x48, 0x65, 1323 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 1324 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 1325 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x56, 0x0a, 1326 0x0e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 1327 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 1328 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 1329 0x74, 0x75, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 1330 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d, 0x65, 1331 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 1332 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 1333 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x5f, 0x6c, 1334 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x69, 1335 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x6c, 1336 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x44, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 1337 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 1338 0x12, 0x4a, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x05, 1339 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 1340 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 1341 0x75, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 1342 0x79, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x08, 1343 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 1344 0xe0, 0x41, 0x03, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x44, 0x0a, 1345 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 1346 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1347 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 1348 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x54, 1349 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x74, 1350 0x65, 0x61, 0x6d, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 1351 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x45, 0x6d, 0x61, 0x69, 1352 0x6c, 0x1a, 0x40, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 1353 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 1354 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 1355 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 1356 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 1357 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 1358 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 1359 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 1360 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 1361 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1362 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 1363 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x87, 1364 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 1365 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 1366 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, 1367 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 1368 0x0a, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x04, 0x12, 0x0b, 0x0a, 1369 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 1370 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x14, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x46, 0x52, 0x41, 1371 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x24, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 1372 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x44, 0x2a, 0x25, 0x0a, 0x07, 0x54, 0x72, 0x69, 0x6e, 1373 0x61, 0x72, 0x79, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x07, 1374 0x0a, 0x03, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x4f, 0x10, 0x02, 0x2a, 1375 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x08, 1376 0x0a, 0x04, 0x5a, 0x4c, 0x49, 0x42, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x53, 0x54, 0x44, 1377 0x10, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 1378 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 1379 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x62, 0x75, 0x69, 1380 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 1381 0x6f, 0x33, 1382 } 1383 1384 var ( 1385 file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescOnce sync.Once 1386 file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc 1387 ) 1388 1389 func file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP() []byte { 1390 file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescOnce.Do(func() { 1391 file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData) 1392 }) 1393 return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData 1394 } 1395 1396 var file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 1397 var file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes = make([]protoimpl.MessageInfo, 15) 1398 var file_go_chromium_org_luci_buildbucket_proto_common_proto_goTypes = []interface{}{ 1399 (Status)(0), // 0: buildbucket.v2.Status 1400 (Trinary)(0), // 1: buildbucket.v2.Trinary 1401 (Compression)(0), // 2: buildbucket.v2.Compression 1402 (*Executable)(nil), // 3: buildbucket.v2.Executable 1403 (*StatusDetails)(nil), // 4: buildbucket.v2.StatusDetails 1404 (*Log)(nil), // 5: buildbucket.v2.Log 1405 (*GerritChange)(nil), // 6: buildbucket.v2.GerritChange 1406 (*GitilesCommit)(nil), // 7: buildbucket.v2.GitilesCommit 1407 (*StringPair)(nil), // 8: buildbucket.v2.StringPair 1408 (*TimeRange)(nil), // 9: buildbucket.v2.TimeRange 1409 (*RequestedDimension)(nil), // 10: buildbucket.v2.RequestedDimension 1410 (*CacheEntry)(nil), // 11: buildbucket.v2.CacheEntry 1411 (*HealthStatus)(nil), // 12: buildbucket.v2.HealthStatus 1412 (*StatusDetails_ResourceExhaustion)(nil), // 13: buildbucket.v2.StatusDetails.ResourceExhaustion 1413 (*StatusDetails_Timeout)(nil), // 14: buildbucket.v2.StatusDetails.Timeout 1414 nil, // 15: buildbucket.v2.HealthStatus.HealthMetricsEntry 1415 nil, // 16: buildbucket.v2.HealthStatus.DocLinksEntry 1416 nil, // 17: buildbucket.v2.HealthStatus.DataLinksEntry 1417 (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp 1418 (*durationpb.Duration)(nil), // 19: google.protobuf.Duration 1419 } 1420 var file_go_chromium_org_luci_buildbucket_proto_common_proto_depIdxs = []int32{ 1421 13, // 0: buildbucket.v2.StatusDetails.resource_exhaustion:type_name -> buildbucket.v2.StatusDetails.ResourceExhaustion 1422 14, // 1: buildbucket.v2.StatusDetails.timeout:type_name -> buildbucket.v2.StatusDetails.Timeout 1423 18, // 2: buildbucket.v2.TimeRange.start_time:type_name -> google.protobuf.Timestamp 1424 18, // 3: buildbucket.v2.TimeRange.end_time:type_name -> google.protobuf.Timestamp 1425 19, // 4: buildbucket.v2.RequestedDimension.expiration:type_name -> google.protobuf.Duration 1426 19, // 5: buildbucket.v2.CacheEntry.wait_for_warm_cache:type_name -> google.protobuf.Duration 1427 15, // 6: buildbucket.v2.HealthStatus.health_metrics:type_name -> buildbucket.v2.HealthStatus.HealthMetricsEntry 1428 16, // 7: buildbucket.v2.HealthStatus.doc_links:type_name -> buildbucket.v2.HealthStatus.DocLinksEntry 1429 17, // 8: buildbucket.v2.HealthStatus.data_links:type_name -> buildbucket.v2.HealthStatus.DataLinksEntry 1430 18, // 9: buildbucket.v2.HealthStatus.reported_time:type_name -> google.protobuf.Timestamp 1431 10, // [10:10] is the sub-list for method output_type 1432 10, // [10:10] is the sub-list for method input_type 1433 10, // [10:10] is the sub-list for extension type_name 1434 10, // [10:10] is the sub-list for extension extendee 1435 0, // [0:10] is the sub-list for field type_name 1436 } 1437 1438 func init() { file_go_chromium_org_luci_buildbucket_proto_common_proto_init() } 1439 func file_go_chromium_org_luci_buildbucket_proto_common_proto_init() { 1440 if File_go_chromium_org_luci_buildbucket_proto_common_proto != nil { 1441 return 1442 } 1443 if !protoimpl.UnsafeEnabled { 1444 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1445 switch v := v.(*Executable); i { 1446 case 0: 1447 return &v.state 1448 case 1: 1449 return &v.sizeCache 1450 case 2: 1451 return &v.unknownFields 1452 default: 1453 return nil 1454 } 1455 } 1456 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1457 switch v := v.(*StatusDetails); i { 1458 case 0: 1459 return &v.state 1460 case 1: 1461 return &v.sizeCache 1462 case 2: 1463 return &v.unknownFields 1464 default: 1465 return nil 1466 } 1467 } 1468 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1469 switch v := v.(*Log); i { 1470 case 0: 1471 return &v.state 1472 case 1: 1473 return &v.sizeCache 1474 case 2: 1475 return &v.unknownFields 1476 default: 1477 return nil 1478 } 1479 } 1480 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1481 switch v := v.(*GerritChange); i { 1482 case 0: 1483 return &v.state 1484 case 1: 1485 return &v.sizeCache 1486 case 2: 1487 return &v.unknownFields 1488 default: 1489 return nil 1490 } 1491 } 1492 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1493 switch v := v.(*GitilesCommit); i { 1494 case 0: 1495 return &v.state 1496 case 1: 1497 return &v.sizeCache 1498 case 2: 1499 return &v.unknownFields 1500 default: 1501 return nil 1502 } 1503 } 1504 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1505 switch v := v.(*StringPair); i { 1506 case 0: 1507 return &v.state 1508 case 1: 1509 return &v.sizeCache 1510 case 2: 1511 return &v.unknownFields 1512 default: 1513 return nil 1514 } 1515 } 1516 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1517 switch v := v.(*TimeRange); i { 1518 case 0: 1519 return &v.state 1520 case 1: 1521 return &v.sizeCache 1522 case 2: 1523 return &v.unknownFields 1524 default: 1525 return nil 1526 } 1527 } 1528 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1529 switch v := v.(*RequestedDimension); i { 1530 case 0: 1531 return &v.state 1532 case 1: 1533 return &v.sizeCache 1534 case 2: 1535 return &v.unknownFields 1536 default: 1537 return nil 1538 } 1539 } 1540 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1541 switch v := v.(*CacheEntry); i { 1542 case 0: 1543 return &v.state 1544 case 1: 1545 return &v.sizeCache 1546 case 2: 1547 return &v.unknownFields 1548 default: 1549 return nil 1550 } 1551 } 1552 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1553 switch v := v.(*HealthStatus); i { 1554 case 0: 1555 return &v.state 1556 case 1: 1557 return &v.sizeCache 1558 case 2: 1559 return &v.unknownFields 1560 default: 1561 return nil 1562 } 1563 } 1564 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 1565 switch v := v.(*StatusDetails_ResourceExhaustion); i { 1566 case 0: 1567 return &v.state 1568 case 1: 1569 return &v.sizeCache 1570 case 2: 1571 return &v.unknownFields 1572 default: 1573 return nil 1574 } 1575 } 1576 file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 1577 switch v := v.(*StatusDetails_Timeout); i { 1578 case 0: 1579 return &v.state 1580 case 1: 1581 return &v.sizeCache 1582 case 2: 1583 return &v.unknownFields 1584 default: 1585 return nil 1586 } 1587 } 1588 } 1589 type x struct{} 1590 out := protoimpl.TypeBuilder{ 1591 File: protoimpl.DescBuilder{ 1592 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1593 RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc, 1594 NumEnums: 3, 1595 NumMessages: 15, 1596 NumExtensions: 0, 1597 NumServices: 0, 1598 }, 1599 GoTypes: file_go_chromium_org_luci_buildbucket_proto_common_proto_goTypes, 1600 DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_common_proto_depIdxs, 1601 EnumInfos: file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes, 1602 MessageInfos: file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes, 1603 }.Build() 1604 File_go_chromium_org_luci_buildbucket_proto_common_proto = out.File 1605 file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc = nil 1606 file_go_chromium_org_luci_buildbucket_proto_common_proto_goTypes = nil 1607 file_go_chromium_org_luci_buildbucket_proto_common_proto_depIdxs = nil 1608 }