go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/buildbucket/proto/build.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/build.proto 20 21 package buildbucketpb 22 23 import ( 24 v1 "go.chromium.org/luci/resultdb/proto/v1" 25 _ "google.golang.org/genproto/googleapis/api/annotations" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 28 durationpb "google.golang.org/protobuf/types/known/durationpb" 29 structpb "google.golang.org/protobuf/types/known/structpb" 30 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 31 reflect "reflect" 32 sync "sync" 33 ) 34 35 const ( 36 // Verify that this generated code is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 38 // Verify that runtime/protoimpl is sufficiently up-to-date. 39 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 40 ) 41 42 type BuildInfra_Buildbucket_ExperimentReason int32 43 44 const ( 45 // This value is unused (i.e. if you see this, it's a bug). 46 BuildInfra_Buildbucket_EXPERIMENT_REASON_UNSET BuildInfra_Buildbucket_ExperimentReason = 0 47 // This experiment was configured from the 'default_value' of a global 48 // experiment. 49 // 50 // See go/buildbucket-settings.cfg for the list of global experiments. 51 BuildInfra_Buildbucket_EXPERIMENT_REASON_GLOBAL_DEFAULT BuildInfra_Buildbucket_ExperimentReason = 1 52 // This experiment was configured from the Builder configuration. 53 BuildInfra_Buildbucket_EXPERIMENT_REASON_BUILDER_CONFIG BuildInfra_Buildbucket_ExperimentReason = 2 54 // This experiment was configured from the 'minimum_value' of a global 55 // experiment. 56 // 57 // See go/buildbucket-settings.cfg for the list of global experiments. 58 BuildInfra_Buildbucket_EXPERIMENT_REASON_GLOBAL_MINIMUM BuildInfra_Buildbucket_ExperimentReason = 3 59 // This experiment was explicitly set from the ScheduleBuildRequest. 60 BuildInfra_Buildbucket_EXPERIMENT_REASON_REQUESTED BuildInfra_Buildbucket_ExperimentReason = 4 61 // This experiment is inactive and so was removed from the Build. 62 // 63 // See go/buildbucket-settings.cfg for the list of global experiments. 64 BuildInfra_Buildbucket_EXPERIMENT_REASON_GLOBAL_INACTIVE BuildInfra_Buildbucket_ExperimentReason = 5 65 ) 66 67 // Enum value maps for BuildInfra_Buildbucket_ExperimentReason. 68 var ( 69 BuildInfra_Buildbucket_ExperimentReason_name = map[int32]string{ 70 0: "EXPERIMENT_REASON_UNSET", 71 1: "EXPERIMENT_REASON_GLOBAL_DEFAULT", 72 2: "EXPERIMENT_REASON_BUILDER_CONFIG", 73 3: "EXPERIMENT_REASON_GLOBAL_MINIMUM", 74 4: "EXPERIMENT_REASON_REQUESTED", 75 5: "EXPERIMENT_REASON_GLOBAL_INACTIVE", 76 } 77 BuildInfra_Buildbucket_ExperimentReason_value = map[string]int32{ 78 "EXPERIMENT_REASON_UNSET": 0, 79 "EXPERIMENT_REASON_GLOBAL_DEFAULT": 1, 80 "EXPERIMENT_REASON_BUILDER_CONFIG": 2, 81 "EXPERIMENT_REASON_GLOBAL_MINIMUM": 3, 82 "EXPERIMENT_REASON_REQUESTED": 4, 83 "EXPERIMENT_REASON_GLOBAL_INACTIVE": 5, 84 } 85 ) 86 87 func (x BuildInfra_Buildbucket_ExperimentReason) Enum() *BuildInfra_Buildbucket_ExperimentReason { 88 p := new(BuildInfra_Buildbucket_ExperimentReason) 89 *p = x 90 return p 91 } 92 93 func (x BuildInfra_Buildbucket_ExperimentReason) String() string { 94 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 95 } 96 97 func (BuildInfra_Buildbucket_ExperimentReason) Descriptor() protoreflect.EnumDescriptor { 98 return file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[0].Descriptor() 99 } 100 101 func (BuildInfra_Buildbucket_ExperimentReason) Type() protoreflect.EnumType { 102 return &file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[0] 103 } 104 105 func (x BuildInfra_Buildbucket_ExperimentReason) Number() protoreflect.EnumNumber { 106 return protoreflect.EnumNumber(x) 107 } 108 109 // Deprecated: Use BuildInfra_Buildbucket_ExperimentReason.Descriptor instead. 110 func (BuildInfra_Buildbucket_ExperimentReason) EnumDescriptor() ([]byte, []int) { 111 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0} 112 } 113 114 type BuildInfra_Buildbucket_Agent_Purpose int32 115 116 const ( 117 // No categorized/known purpose. 118 BuildInfra_Buildbucket_Agent_PURPOSE_UNSPECIFIED BuildInfra_Buildbucket_Agent_Purpose = 0 119 // This path contains the contents of the build's `exe.cipd_package`. 120 BuildInfra_Buildbucket_Agent_PURPOSE_EXE_PAYLOAD BuildInfra_Buildbucket_Agent_Purpose = 1 121 // This path contains data specifically for bbagent's own use. 122 // 123 // There's a proposal currently to add `nsjail` support to bbagent, and it 124 // would need to bring a copy of `nsjail` in order to run the user binary 125 // but we wouldn't necessarily want to expose it to the user binary. 126 BuildInfra_Buildbucket_Agent_PURPOSE_BBAGENT_UTILITY BuildInfra_Buildbucket_Agent_Purpose = 2 127 ) 128 129 // Enum value maps for BuildInfra_Buildbucket_Agent_Purpose. 130 var ( 131 BuildInfra_Buildbucket_Agent_Purpose_name = map[int32]string{ 132 0: "PURPOSE_UNSPECIFIED", 133 1: "PURPOSE_EXE_PAYLOAD", 134 2: "PURPOSE_BBAGENT_UTILITY", 135 } 136 BuildInfra_Buildbucket_Agent_Purpose_value = map[string]int32{ 137 "PURPOSE_UNSPECIFIED": 0, 138 "PURPOSE_EXE_PAYLOAD": 1, 139 "PURPOSE_BBAGENT_UTILITY": 2, 140 } 141 ) 142 143 func (x BuildInfra_Buildbucket_Agent_Purpose) Enum() *BuildInfra_Buildbucket_Agent_Purpose { 144 p := new(BuildInfra_Buildbucket_Agent_Purpose) 145 *p = x 146 return p 147 } 148 149 func (x BuildInfra_Buildbucket_Agent_Purpose) String() string { 150 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 151 } 152 153 func (BuildInfra_Buildbucket_Agent_Purpose) Descriptor() protoreflect.EnumDescriptor { 154 return file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[1].Descriptor() 155 } 156 157 func (BuildInfra_Buildbucket_Agent_Purpose) Type() protoreflect.EnumType { 158 return &file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[1] 159 } 160 161 func (x BuildInfra_Buildbucket_Agent_Purpose) Number() protoreflect.EnumNumber { 162 return protoreflect.EnumNumber(x) 163 } 164 165 // Deprecated: Use BuildInfra_Buildbucket_Agent_Purpose.Descriptor instead. 166 func (BuildInfra_Buildbucket_Agent_Purpose) EnumDescriptor() ([]byte, []int) { 167 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 0} 168 } 169 170 // A single build, identified by an int64 ID. 171 // Belongs to a builder. 172 // 173 // RPC: see Builds service for build creation and retrieval. 174 // Some Build fields are marked as excluded from responses by default. 175 // Use "mask" request field to specify that a field must be included. 176 // 177 // BigQuery: this message also defines schema of a BigQuery table of completed 178 // builds. A BigQuery row is inserted soon after build ends, i.e. a row 179 // represents a state of a build at completion time and does not change after 180 // that. All fields are included. 181 // 182 // Next id: 36. 183 type Build struct { 184 state protoimpl.MessageState 185 sizeCache protoimpl.SizeCache 186 unknownFields protoimpl.UnknownFields 187 188 // Identifier of the build, unique per LUCI deployment. 189 // IDs are monotonically decreasing. 190 Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 191 // Required. The builder this build belongs to. 192 // 193 // Tuple (builder.project, builder.bucket) defines build ACL 194 // which may change after build has ended. 195 Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` 196 BuilderInfo *Build_BuilderInfo `protobuf:"bytes,34,opt,name=builder_info,json=builderInfo,proto3" json:"builder_info,omitempty"` 197 // Human-readable identifier of the build with the following properties: 198 // - unique within the builder 199 // - a monotonically increasing number 200 // - mostly contiguous 201 // - much shorter than id 202 // 203 // Caution: populated (positive number) iff build numbers were enabled 204 // in the builder configuration at the time of build creation. 205 // 206 // Caution: Build numbers are not guaranteed to be contiguous. 207 // There may be gaps during outages. 208 // 209 // Caution: Build numbers, while monotonically increasing, do not 210 // necessarily reflect source-code order. For example, force builds 211 // or rebuilds can allocate new, higher, numbers, but build an older- 212 // than-HEAD version of the source. 213 Number int32 `protobuf:"varint,3,opt,name=number,proto3" json:"number,omitempty"` 214 // Verified LUCI identity that created this build. 215 CreatedBy string `protobuf:"bytes,4,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` 216 // Redirect url for the build. 217 ViewUrl string `protobuf:"bytes,5,opt,name=view_url,json=viewUrl,proto3" json:"view_url,omitempty"` 218 // Verified LUCI identity that canceled this build. 219 // 220 // Special values: 221 // * buildbucket: The build is canceled by buildbucket. This can happen if the 222 // build's parent has ended, and the build cannot outlive its parent. 223 // * backend: The build's backend task is canceled. For example the build's 224 // Swarming task is killed. 225 CanceledBy string `protobuf:"bytes,23,opt,name=canceled_by,json=canceledBy,proto3" json:"canceled_by,omitempty"` 226 // When the build was created. 227 CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 228 // When the build started. 229 // Required iff status is STARTED, SUCCESS or FAILURE. 230 StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 231 // When the build ended. 232 // Present iff status is terminal. 233 // MUST NOT be before start_time. 234 EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 235 // When the build was most recently updated. 236 // 237 // RPC: can be > end_time if, e.g. new tags were attached to a completed 238 // build. 239 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 240 // When the cancel process of the build started. 241 // Note it's not the time that the cancellation completed, which would be 242 // tracked by end_time. 243 // 244 // During the cancel process, the build still accepts updates. 245 // 246 // bbagent checks this field at the frequency of 247 // buildbucket.MinUpdateBuildInterval. When bbagent sees the build is in 248 // cancel process, there are two states: 249 // - it has NOT yet started the exe payload, 250 // - it HAS started the exe payload. 251 // 252 // In the first state, bbagent will immediately terminate the build without 253 // invoking the exe payload at all. 254 // 255 // In the second state, bbagent will send SIGTERM/CTRL-BREAK to the exe 256 // (according to the deadline protocol described in 257 // https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md). 258 // After grace_period it will then try to kill the exe. 259 // 260 // NOTE: There is a race condition here; If bbagent starts the luciexe and 261 // then immediately notices that the build is canceled, it's possible that 262 // bbagent can send SIGTERM/CTRL-BREAK to the exe before that exe sets up 263 // interrupt handlers. There is a bug on file (crbug.com/1311821) 264 // which we plan to implement at some point as a mitigation for this. 265 // 266 // Additionally, the Buildbucket service itself will launch an asynchronous 267 // task to terminate the build via the backend API (e.g. Swarming cancellation) 268 // if bbagent cannot successfully terminate the exe in time. 269 CancelTime *timestamppb.Timestamp `protobuf:"bytes,32,opt,name=cancel_time,json=cancelTime,proto3" json:"cancel_time,omitempty"` 270 // Status of the build. 271 // Must be specified, i.e. not STATUS_UNSPECIFIED. 272 // 273 // RPC: Responses have most current status. 274 // 275 // BigQuery: Final status of the build. Cannot be SCHEDULED or STARTED. 276 Status Status `protobuf:"varint,12,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"` 277 // Human-readable summary of the build in Markdown format 278 // (https://spec.commonmark.org/0.28/). 279 // Explains status. 280 // Up to 4 KB. 281 SummaryMarkdown string `protobuf:"bytes,20,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"` 282 // Markdown reasoning for cancelling the build. 283 // Human readable and should be following https://spec.commonmark.org/0.28/. 284 CancellationMarkdown string `protobuf:"bytes,33,opt,name=cancellation_markdown,json=cancellationMarkdown,proto3" json:"cancellation_markdown,omitempty"` 285 // If NO, then the build status SHOULD NOT be used to assess correctness of 286 // the input gitiles_commit or gerrit_changes. 287 // For example, if a pre-submit build has failed, CQ MAY still land the CL. 288 // For example, if a post-submit build has failed, CLs MAY continue landing. 289 Critical Trinary `protobuf:"varint,21,opt,name=critical,proto3,enum=buildbucket.v2.Trinary" json:"critical,omitempty"` 290 // Machine-readable details of the current status. 291 // Human-readable status reason is available in summary_markdown. 292 StatusDetails *StatusDetails `protobuf:"bytes,22,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"` 293 // Input to the build executable. 294 Input *Build_Input `protobuf:"bytes,15,opt,name=input,proto3" json:"input,omitempty"` 295 // Output of the build executable. 296 // SHOULD depend only on input field and NOT other fields. 297 // MUST be unset if build status is SCHEDULED. 298 // 299 // RPC: By default, this field is excluded from responses. 300 // Updated while the build is running and finalized when the build ends. 301 Output *Build_Output `protobuf:"bytes,16,opt,name=output,proto3" json:"output,omitempty"` 302 // Current list of build steps. 303 // Updated as build runs. 304 // 305 // May take up to 1MB after zlib compression. 306 // MUST be unset if build status is SCHEDULED. 307 // 308 // RPC: By default, this field is excluded from responses. 309 Steps []*Step `protobuf:"bytes,17,rep,name=steps,proto3" json:"steps,omitempty"` 310 // Build infrastructure used by the build. 311 // 312 // RPC: By default, this field is excluded from responses. 313 Infra *BuildInfra `protobuf:"bytes,18,opt,name=infra,proto3" json:"infra,omitempty"` 314 // Arbitrary annotations for the build. 315 // One key may have multiple values, which is why this is not a map<string,string>. 316 // Indexed by the server, see also BuildPredicate.tags. 317 Tags []*StringPair `protobuf:"bytes,19,rep,name=tags,proto3" json:"tags,omitempty"` 318 // What to run when the build is ready to start. 319 Exe *Executable `protobuf:"bytes,24,opt,name=exe,proto3" json:"exe,omitempty"` 320 // DEPRECATED 321 // 322 // Equivalent to `"luci.buildbucket.canary_software" in input.experiments`. 323 // 324 // See `Builder.experiments` for well-known experiments. 325 Canary bool `protobuf:"varint,25,opt,name=canary,proto3" json:"canary,omitempty"` 326 // Maximum build pending time. 327 // If the timeout is reached, the build is marked as INFRA_FAILURE status 328 // and both status_details.{timeout, resource_exhaustion} are set. 329 SchedulingTimeout *durationpb.Duration `protobuf:"bytes,26,opt,name=scheduling_timeout,json=schedulingTimeout,proto3" json:"scheduling_timeout,omitempty"` 330 // Maximum build execution time. 331 // 332 // Not to be confused with scheduling_timeout. 333 // 334 // If the timeout is reached, the task will be signaled according to the 335 // `deadline` section of 336 // https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md 337 // and status_details.timeout is set. 338 // 339 // The task will have `grace_period` amount of time to handle cleanup 340 // before being forcefully terminated. 341 ExecutionTimeout *durationpb.Duration `protobuf:"bytes,27,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"` 342 // Amount of cleanup time after execution_timeout. 343 // 344 // After being signaled according to execution_timeout, the task will 345 // have this duration to clean up before being forcefully terminated. 346 // 347 // The signalling process is explained in the `deadline` section of 348 // https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md. 349 GracePeriod *durationpb.Duration `protobuf:"bytes,29,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"` 350 // If set, swarming was requested to wait until it sees at least one bot 351 // report a superset of the build's requested dimensions. 352 WaitForCapacity bool `protobuf:"varint,28,opt,name=wait_for_capacity,json=waitForCapacity,proto3" json:"wait_for_capacity,omitempty"` 353 // Flag to control if the build can outlive its parent. 354 // 355 // This field is only meaningful if the build has ancestors. 356 // If the build has ancestors and the value is false, it means that the build 357 // SHOULD reach a terminal status (SUCCESS, FAILURE, INFRA_FAILURE or 358 // CANCELED) before its parent. If the child fails to do so, Buildbucket will 359 // cancel it some time after the parent build reaches a terminal status. 360 // 361 // A build that can outlive its parent can also outlive its parent's ancestors. 362 CanOutliveParent bool `protobuf:"varint,30,opt,name=can_outlive_parent,json=canOutliveParent,proto3" json:"can_outlive_parent,omitempty"` 363 // IDs of the build's ancestors. This includes all parents/grandparents/etc. 364 // This is ordered from top-to-bottom so `ancestor_ids[0]` is the root of 365 // the builds tree, and `ancestor_ids[-1]` is this build's immediate parent. 366 // This does not include any "siblings" at higher levels of the tree, just 367 // the direct chain of ancestors from root to this build. 368 AncestorIds []int64 `protobuf:"varint,31,rep,packed,name=ancestor_ids,json=ancestorIds,proto3" json:"ancestor_ids,omitempty"` 369 // If UNSET, retrying the build is implicitly allowed; 370 // If YES, retrying the build is explicitly allowed; 371 // If NO, retrying the build is explicitly disallowed, 372 // - any UI displaying the build should remove "retry" button(s), 373 // - ScheduleBuild using the build as template should fail, 374 // - but the build can still be synthesized by SynthesizeBuild. 375 Retriable Trinary `protobuf:"varint,35,opt,name=retriable,proto3,enum=buildbucket.v2.Trinary" json:"retriable,omitempty"` 376 } 377 378 func (x *Build) Reset() { 379 *x = Build{} 380 if protoimpl.UnsafeEnabled { 381 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[0] 382 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 383 ms.StoreMessageInfo(mi) 384 } 385 } 386 387 func (x *Build) String() string { 388 return protoimpl.X.MessageStringOf(x) 389 } 390 391 func (*Build) ProtoMessage() {} 392 393 func (x *Build) ProtoReflect() protoreflect.Message { 394 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[0] 395 if protoimpl.UnsafeEnabled && x != nil { 396 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 397 if ms.LoadMessageInfo() == nil { 398 ms.StoreMessageInfo(mi) 399 } 400 return ms 401 } 402 return mi.MessageOf(x) 403 } 404 405 // Deprecated: Use Build.ProtoReflect.Descriptor instead. 406 func (*Build) Descriptor() ([]byte, []int) { 407 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0} 408 } 409 410 func (x *Build) GetId() int64 { 411 if x != nil { 412 return x.Id 413 } 414 return 0 415 } 416 417 func (x *Build) GetBuilder() *BuilderID { 418 if x != nil { 419 return x.Builder 420 } 421 return nil 422 } 423 424 func (x *Build) GetBuilderInfo() *Build_BuilderInfo { 425 if x != nil { 426 return x.BuilderInfo 427 } 428 return nil 429 } 430 431 func (x *Build) GetNumber() int32 { 432 if x != nil { 433 return x.Number 434 } 435 return 0 436 } 437 438 func (x *Build) GetCreatedBy() string { 439 if x != nil { 440 return x.CreatedBy 441 } 442 return "" 443 } 444 445 func (x *Build) GetViewUrl() string { 446 if x != nil { 447 return x.ViewUrl 448 } 449 return "" 450 } 451 452 func (x *Build) GetCanceledBy() string { 453 if x != nil { 454 return x.CanceledBy 455 } 456 return "" 457 } 458 459 func (x *Build) GetCreateTime() *timestamppb.Timestamp { 460 if x != nil { 461 return x.CreateTime 462 } 463 return nil 464 } 465 466 func (x *Build) GetStartTime() *timestamppb.Timestamp { 467 if x != nil { 468 return x.StartTime 469 } 470 return nil 471 } 472 473 func (x *Build) GetEndTime() *timestamppb.Timestamp { 474 if x != nil { 475 return x.EndTime 476 } 477 return nil 478 } 479 480 func (x *Build) GetUpdateTime() *timestamppb.Timestamp { 481 if x != nil { 482 return x.UpdateTime 483 } 484 return nil 485 } 486 487 func (x *Build) GetCancelTime() *timestamppb.Timestamp { 488 if x != nil { 489 return x.CancelTime 490 } 491 return nil 492 } 493 494 func (x *Build) GetStatus() Status { 495 if x != nil { 496 return x.Status 497 } 498 return Status_STATUS_UNSPECIFIED 499 } 500 501 func (x *Build) GetSummaryMarkdown() string { 502 if x != nil { 503 return x.SummaryMarkdown 504 } 505 return "" 506 } 507 508 func (x *Build) GetCancellationMarkdown() string { 509 if x != nil { 510 return x.CancellationMarkdown 511 } 512 return "" 513 } 514 515 func (x *Build) GetCritical() Trinary { 516 if x != nil { 517 return x.Critical 518 } 519 return Trinary_UNSET 520 } 521 522 func (x *Build) GetStatusDetails() *StatusDetails { 523 if x != nil { 524 return x.StatusDetails 525 } 526 return nil 527 } 528 529 func (x *Build) GetInput() *Build_Input { 530 if x != nil { 531 return x.Input 532 } 533 return nil 534 } 535 536 func (x *Build) GetOutput() *Build_Output { 537 if x != nil { 538 return x.Output 539 } 540 return nil 541 } 542 543 func (x *Build) GetSteps() []*Step { 544 if x != nil { 545 return x.Steps 546 } 547 return nil 548 } 549 550 func (x *Build) GetInfra() *BuildInfra { 551 if x != nil { 552 return x.Infra 553 } 554 return nil 555 } 556 557 func (x *Build) GetTags() []*StringPair { 558 if x != nil { 559 return x.Tags 560 } 561 return nil 562 } 563 564 func (x *Build) GetExe() *Executable { 565 if x != nil { 566 return x.Exe 567 } 568 return nil 569 } 570 571 func (x *Build) GetCanary() bool { 572 if x != nil { 573 return x.Canary 574 } 575 return false 576 } 577 578 func (x *Build) GetSchedulingTimeout() *durationpb.Duration { 579 if x != nil { 580 return x.SchedulingTimeout 581 } 582 return nil 583 } 584 585 func (x *Build) GetExecutionTimeout() *durationpb.Duration { 586 if x != nil { 587 return x.ExecutionTimeout 588 } 589 return nil 590 } 591 592 func (x *Build) GetGracePeriod() *durationpb.Duration { 593 if x != nil { 594 return x.GracePeriod 595 } 596 return nil 597 } 598 599 func (x *Build) GetWaitForCapacity() bool { 600 if x != nil { 601 return x.WaitForCapacity 602 } 603 return false 604 } 605 606 func (x *Build) GetCanOutliveParent() bool { 607 if x != nil { 608 return x.CanOutliveParent 609 } 610 return false 611 } 612 613 func (x *Build) GetAncestorIds() []int64 { 614 if x != nil { 615 return x.AncestorIds 616 } 617 return nil 618 } 619 620 func (x *Build) GetRetriable() Trinary { 621 if x != nil { 622 return x.Retriable 623 } 624 return Trinary_UNSET 625 } 626 627 type InputDataRef struct { 628 state protoimpl.MessageState 629 sizeCache protoimpl.SizeCache 630 unknownFields protoimpl.UnknownFields 631 632 // Types that are assignable to DataType: 633 // 634 // *InputDataRef_Cas 635 // *InputDataRef_Cipd 636 DataType isInputDataRef_DataType `protobuf_oneof:"data_type"` 637 // TODO(crbug.com/1266060): TBD. `on_path` may need to move out to be incorporated into a field which captures other envvars. 638 // Subdirectories relative to the root of `ref` which should be set as a prefix to 639 // the $PATH variable. 640 // 641 // A substitute of `env_prefixes` in SwarmingRpcsTaskProperties field - 642 // https://chromium.googlesource.com/infra/luci/luci-go/+/0048a84944e872776fba3542aa96d5943ae64bab/common/api/swarming/swarming/v1/swarming-gen.go#1495 643 OnPath []string `protobuf:"bytes,3,rep,name=on_path,json=onPath,proto3" json:"on_path,omitempty"` 644 } 645 646 func (x *InputDataRef) Reset() { 647 *x = InputDataRef{} 648 if protoimpl.UnsafeEnabled { 649 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[1] 650 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 651 ms.StoreMessageInfo(mi) 652 } 653 } 654 655 func (x *InputDataRef) String() string { 656 return protoimpl.X.MessageStringOf(x) 657 } 658 659 func (*InputDataRef) ProtoMessage() {} 660 661 func (x *InputDataRef) ProtoReflect() protoreflect.Message { 662 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[1] 663 if protoimpl.UnsafeEnabled && x != nil { 664 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 665 if ms.LoadMessageInfo() == nil { 666 ms.StoreMessageInfo(mi) 667 } 668 return ms 669 } 670 return mi.MessageOf(x) 671 } 672 673 // Deprecated: Use InputDataRef.ProtoReflect.Descriptor instead. 674 func (*InputDataRef) Descriptor() ([]byte, []int) { 675 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1} 676 } 677 678 func (m *InputDataRef) GetDataType() isInputDataRef_DataType { 679 if m != nil { 680 return m.DataType 681 } 682 return nil 683 } 684 685 func (x *InputDataRef) GetCas() *InputDataRef_CAS { 686 if x, ok := x.GetDataType().(*InputDataRef_Cas); ok { 687 return x.Cas 688 } 689 return nil 690 } 691 692 func (x *InputDataRef) GetCipd() *InputDataRef_CIPD { 693 if x, ok := x.GetDataType().(*InputDataRef_Cipd); ok { 694 return x.Cipd 695 } 696 return nil 697 } 698 699 func (x *InputDataRef) GetOnPath() []string { 700 if x != nil { 701 return x.OnPath 702 } 703 return nil 704 } 705 706 type isInputDataRef_DataType interface { 707 isInputDataRef_DataType() 708 } 709 710 type InputDataRef_Cas struct { 711 Cas *InputDataRef_CAS `protobuf:"bytes,1,opt,name=cas,proto3,oneof"` 712 } 713 714 type InputDataRef_Cipd struct { 715 Cipd *InputDataRef_CIPD `protobuf:"bytes,2,opt,name=cipd,proto3,oneof"` 716 } 717 718 func (*InputDataRef_Cas) isInputDataRef_DataType() {} 719 720 func (*InputDataRef_Cipd) isInputDataRef_DataType() {} 721 722 type ResolvedDataRef struct { 723 state protoimpl.MessageState 724 sizeCache protoimpl.SizeCache 725 unknownFields protoimpl.UnknownFields 726 727 // Types that are assignable to DataType: 728 // 729 // *ResolvedDataRef_Cas 730 // *ResolvedDataRef_Cipd 731 DataType isResolvedDataRef_DataType `protobuf_oneof:"data_type"` 732 } 733 734 func (x *ResolvedDataRef) Reset() { 735 *x = ResolvedDataRef{} 736 if protoimpl.UnsafeEnabled { 737 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2] 738 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 739 ms.StoreMessageInfo(mi) 740 } 741 } 742 743 func (x *ResolvedDataRef) String() string { 744 return protoimpl.X.MessageStringOf(x) 745 } 746 747 func (*ResolvedDataRef) ProtoMessage() {} 748 749 func (x *ResolvedDataRef) ProtoReflect() protoreflect.Message { 750 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2] 751 if protoimpl.UnsafeEnabled && x != nil { 752 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 753 if ms.LoadMessageInfo() == nil { 754 ms.StoreMessageInfo(mi) 755 } 756 return ms 757 } 758 return mi.MessageOf(x) 759 } 760 761 // Deprecated: Use ResolvedDataRef.ProtoReflect.Descriptor instead. 762 func (*ResolvedDataRef) Descriptor() ([]byte, []int) { 763 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2} 764 } 765 766 func (m *ResolvedDataRef) GetDataType() isResolvedDataRef_DataType { 767 if m != nil { 768 return m.DataType 769 } 770 return nil 771 } 772 773 func (x *ResolvedDataRef) GetCas() *ResolvedDataRef_CAS { 774 if x, ok := x.GetDataType().(*ResolvedDataRef_Cas); ok { 775 return x.Cas 776 } 777 return nil 778 } 779 780 func (x *ResolvedDataRef) GetCipd() *ResolvedDataRef_CIPD { 781 if x, ok := x.GetDataType().(*ResolvedDataRef_Cipd); ok { 782 return x.Cipd 783 } 784 return nil 785 } 786 787 type isResolvedDataRef_DataType interface { 788 isResolvedDataRef_DataType() 789 } 790 791 type ResolvedDataRef_Cas struct { 792 Cas *ResolvedDataRef_CAS `protobuf:"bytes,1,opt,name=cas,proto3,oneof"` 793 } 794 795 type ResolvedDataRef_Cipd struct { 796 Cipd *ResolvedDataRef_CIPD `protobuf:"bytes,2,opt,name=cipd,proto3,oneof"` 797 } 798 799 func (*ResolvedDataRef_Cas) isResolvedDataRef_DataType() {} 800 801 func (*ResolvedDataRef_Cipd) isResolvedDataRef_DataType() {} 802 803 // Build infrastructure that was used for a particular build. 804 type BuildInfra struct { 805 state protoimpl.MessageState 806 sizeCache protoimpl.SizeCache 807 unknownFields protoimpl.UnknownFields 808 809 Buildbucket *BuildInfra_Buildbucket `protobuf:"bytes,1,opt,name=buildbucket,proto3" json:"buildbucket,omitempty"` 810 Swarming *BuildInfra_Swarming `protobuf:"bytes,2,opt,name=swarming,proto3" json:"swarming,omitempty"` 811 Logdog *BuildInfra_LogDog `protobuf:"bytes,3,opt,name=logdog,proto3" json:"logdog,omitempty"` 812 Recipe *BuildInfra_Recipe `protobuf:"bytes,4,opt,name=recipe,proto3" json:"recipe,omitempty"` 813 Resultdb *BuildInfra_ResultDB `protobuf:"bytes,5,opt,name=resultdb,proto3" json:"resultdb,omitempty"` 814 Bbagent *BuildInfra_BBAgent `protobuf:"bytes,6,opt,name=bbagent,proto3" json:"bbagent,omitempty"` 815 Backend *BuildInfra_Backend `protobuf:"bytes,7,opt,name=backend,proto3" json:"backend,omitempty"` 816 // It should only be set for led builds. 817 Led *BuildInfra_Led `protobuf:"bytes,8,opt,name=led,proto3" json:"led,omitempty"` 818 } 819 820 func (x *BuildInfra) Reset() { 821 *x = BuildInfra{} 822 if protoimpl.UnsafeEnabled { 823 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[3] 824 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 825 ms.StoreMessageInfo(mi) 826 } 827 } 828 829 func (x *BuildInfra) String() string { 830 return protoimpl.X.MessageStringOf(x) 831 } 832 833 func (*BuildInfra) ProtoMessage() {} 834 835 func (x *BuildInfra) ProtoReflect() protoreflect.Message { 836 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[3] 837 if protoimpl.UnsafeEnabled && x != nil { 838 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 839 if ms.LoadMessageInfo() == nil { 840 ms.StoreMessageInfo(mi) 841 } 842 return ms 843 } 844 return mi.MessageOf(x) 845 } 846 847 // Deprecated: Use BuildInfra.ProtoReflect.Descriptor instead. 848 func (*BuildInfra) Descriptor() ([]byte, []int) { 849 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3} 850 } 851 852 func (x *BuildInfra) GetBuildbucket() *BuildInfra_Buildbucket { 853 if x != nil { 854 return x.Buildbucket 855 } 856 return nil 857 } 858 859 func (x *BuildInfra) GetSwarming() *BuildInfra_Swarming { 860 if x != nil { 861 return x.Swarming 862 } 863 return nil 864 } 865 866 func (x *BuildInfra) GetLogdog() *BuildInfra_LogDog { 867 if x != nil { 868 return x.Logdog 869 } 870 return nil 871 } 872 873 func (x *BuildInfra) GetRecipe() *BuildInfra_Recipe { 874 if x != nil { 875 return x.Recipe 876 } 877 return nil 878 } 879 880 func (x *BuildInfra) GetResultdb() *BuildInfra_ResultDB { 881 if x != nil { 882 return x.Resultdb 883 } 884 return nil 885 } 886 887 func (x *BuildInfra) GetBbagent() *BuildInfra_BBAgent { 888 if x != nil { 889 return x.Bbagent 890 } 891 return nil 892 } 893 894 func (x *BuildInfra) GetBackend() *BuildInfra_Backend { 895 if x != nil { 896 return x.Backend 897 } 898 return nil 899 } 900 901 func (x *BuildInfra) GetLed() *BuildInfra_Led { 902 if x != nil { 903 return x.Led 904 } 905 return nil 906 } 907 908 // Defines what to build/test. 909 // 910 // Behavior of a build executable MAY depend on Input. 911 // It MAY NOT modify its behavior based on anything outside of Input. 912 // It MAY read non-Input fields to display for debugging or to pass-through to 913 // triggered builds. For example the "tags" field may be passed to triggered 914 // builds, or the "infra" field may be printed for debugging purposes. 915 type Build_Input struct { 916 state protoimpl.MessageState 917 sizeCache protoimpl.SizeCache 918 unknownFields protoimpl.UnknownFields 919 920 // Arbitrary JSON object. Available at build run time. 921 // 922 // RPC: By default, this field is excluded from responses. 923 // 924 // V1 equivalent: corresponds to "properties" key in "parameters_json". 925 Properties *structpb.Struct `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` 926 // The Gitiles commit to run against. 927 // Usually present in CI builds, set by LUCI Scheduler. 928 // If not present, the build may checkout "refs/heads/master". 929 // NOT a blamelist. 930 // 931 // V1 equivalent: supersedes "revision" property and "buildset" 932 // tag that starts with "commit/gitiles/". 933 GitilesCommit *GitilesCommit `protobuf:"bytes,2,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"` 934 // Gerrit patchsets to run against. 935 // Usually present in tryjobs, set by CQ, Gerrit, git-cl-try. 936 // Applied on top of gitiles_commit if specified, otherwise tip of the tree. 937 // 938 // V1 equivalent: supersedes patch_* properties and "buildset" 939 // tag that starts with "patch/gerrit/". 940 GerritChanges []*GerritChange `protobuf:"bytes,3,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"` 941 // DEPRECATED 942 // 943 // Equivalent to `"luci.non_production" in experiments`. 944 // 945 // See `Builder.experiments` for well-known experiments. 946 Experimental bool `protobuf:"varint,5,opt,name=experimental,proto3" json:"experimental,omitempty"` 947 // The sorted list of experiments enabled on this build. 948 // 949 // See `Builder.experiments` for a detailed breakdown on how experiments 950 // work, and go/buildbucket-settings.cfg for the current state of global 951 // experiments. 952 Experiments []string `protobuf:"bytes,6,rep,name=experiments,proto3" json:"experiments,omitempty"` 953 } 954 955 func (x *Build_Input) Reset() { 956 *x = Build_Input{} 957 if protoimpl.UnsafeEnabled { 958 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[4] 959 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 960 ms.StoreMessageInfo(mi) 961 } 962 } 963 964 func (x *Build_Input) String() string { 965 return protoimpl.X.MessageStringOf(x) 966 } 967 968 func (*Build_Input) ProtoMessage() {} 969 970 func (x *Build_Input) ProtoReflect() protoreflect.Message { 971 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[4] 972 if protoimpl.UnsafeEnabled && x != nil { 973 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 974 if ms.LoadMessageInfo() == nil { 975 ms.StoreMessageInfo(mi) 976 } 977 return ms 978 } 979 return mi.MessageOf(x) 980 } 981 982 // Deprecated: Use Build_Input.ProtoReflect.Descriptor instead. 983 func (*Build_Input) Descriptor() ([]byte, []int) { 984 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0, 0} 985 } 986 987 func (x *Build_Input) GetProperties() *structpb.Struct { 988 if x != nil { 989 return x.Properties 990 } 991 return nil 992 } 993 994 func (x *Build_Input) GetGitilesCommit() *GitilesCommit { 995 if x != nil { 996 return x.GitilesCommit 997 } 998 return nil 999 } 1000 1001 func (x *Build_Input) GetGerritChanges() []*GerritChange { 1002 if x != nil { 1003 return x.GerritChanges 1004 } 1005 return nil 1006 } 1007 1008 func (x *Build_Input) GetExperimental() bool { 1009 if x != nil { 1010 return x.Experimental 1011 } 1012 return false 1013 } 1014 1015 func (x *Build_Input) GetExperiments() []string { 1016 if x != nil { 1017 return x.Experiments 1018 } 1019 return nil 1020 } 1021 1022 // Result of the build executable. 1023 type Build_Output struct { 1024 state protoimpl.MessageState 1025 sizeCache protoimpl.SizeCache 1026 unknownFields protoimpl.UnknownFields 1027 1028 // Arbitrary JSON object produced by the build. 1029 // 1030 // In recipes, use step_result.presentation.properties to set these, 1031 // for example 1032 // 1033 // step_result = api.step(['echo']) 1034 // step_result.presentation.properties['foo'] = 'bar' 1035 // 1036 // More docs: https://chromium.googlesource.com/infra/luci/recipes-py/+/HEAD/doc/old_user_guide.md#Setting-properties 1037 // 1038 // V1 equivalent: corresponds to "properties" key in 1039 // "result_details_json". 1040 // In V1 output properties are not populated until build ends. 1041 Properties *structpb.Struct `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` 1042 // Build checked out and executed on this commit. 1043 // 1044 // Should correspond to Build.Input.gitiles_commit. 1045 // May be present even if Build.Input.gitiles_commit is not set, for example 1046 // in cron builders. 1047 // 1048 // V1 equivalent: this supersedes all got_revision output property. 1049 GitilesCommit *GitilesCommit `protobuf:"bytes,3,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"` 1050 // Logs produced by the build script, typically "stdout" and "stderr". 1051 Logs []*Log `protobuf:"bytes,5,rep,name=logs,proto3" json:"logs,omitempty"` 1052 // Build status which is reported by the client via StartBuild or UpdateBuild. 1053 Status Status `protobuf:"varint,6,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"` 1054 StatusDetails *StatusDetails `protobuf:"bytes,7,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"` 1055 // Deprecated. Use summary_markdown instead. 1056 // 1057 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 1058 SummaryHtml string `protobuf:"bytes,8,opt,name=summary_html,json=summaryHtml,proto3" json:"summary_html,omitempty"` 1059 SummaryMarkdown string `protobuf:"bytes,2,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"` 1060 } 1061 1062 func (x *Build_Output) Reset() { 1063 *x = Build_Output{} 1064 if protoimpl.UnsafeEnabled { 1065 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[5] 1066 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1067 ms.StoreMessageInfo(mi) 1068 } 1069 } 1070 1071 func (x *Build_Output) String() string { 1072 return protoimpl.X.MessageStringOf(x) 1073 } 1074 1075 func (*Build_Output) ProtoMessage() {} 1076 1077 func (x *Build_Output) ProtoReflect() protoreflect.Message { 1078 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[5] 1079 if protoimpl.UnsafeEnabled && x != nil { 1080 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1081 if ms.LoadMessageInfo() == nil { 1082 ms.StoreMessageInfo(mi) 1083 } 1084 return ms 1085 } 1086 return mi.MessageOf(x) 1087 } 1088 1089 // Deprecated: Use Build_Output.ProtoReflect.Descriptor instead. 1090 func (*Build_Output) Descriptor() ([]byte, []int) { 1091 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0, 1} 1092 } 1093 1094 func (x *Build_Output) GetProperties() *structpb.Struct { 1095 if x != nil { 1096 return x.Properties 1097 } 1098 return nil 1099 } 1100 1101 func (x *Build_Output) GetGitilesCommit() *GitilesCommit { 1102 if x != nil { 1103 return x.GitilesCommit 1104 } 1105 return nil 1106 } 1107 1108 func (x *Build_Output) GetLogs() []*Log { 1109 if x != nil { 1110 return x.Logs 1111 } 1112 return nil 1113 } 1114 1115 func (x *Build_Output) GetStatus() Status { 1116 if x != nil { 1117 return x.Status 1118 } 1119 return Status_STATUS_UNSPECIFIED 1120 } 1121 1122 func (x *Build_Output) GetStatusDetails() *StatusDetails { 1123 if x != nil { 1124 return x.StatusDetails 1125 } 1126 return nil 1127 } 1128 1129 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 1130 func (x *Build_Output) GetSummaryHtml() string { 1131 if x != nil { 1132 return x.SummaryHtml 1133 } 1134 return "" 1135 } 1136 1137 func (x *Build_Output) GetSummaryMarkdown() string { 1138 if x != nil { 1139 return x.SummaryMarkdown 1140 } 1141 return "" 1142 } 1143 1144 // Information of the builder, propagated from builder config. 1145 // 1146 // The info captures the state of the builder at creation time. 1147 // If any information is updated, all future builds will have the new 1148 // information, while the historical builds persist the old information. 1149 type Build_BuilderInfo struct { 1150 state protoimpl.MessageState 1151 sizeCache protoimpl.SizeCache 1152 unknownFields protoimpl.UnknownFields 1153 1154 Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` 1155 } 1156 1157 func (x *Build_BuilderInfo) Reset() { 1158 *x = Build_BuilderInfo{} 1159 if protoimpl.UnsafeEnabled { 1160 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[6] 1161 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1162 ms.StoreMessageInfo(mi) 1163 } 1164 } 1165 1166 func (x *Build_BuilderInfo) String() string { 1167 return protoimpl.X.MessageStringOf(x) 1168 } 1169 1170 func (*Build_BuilderInfo) ProtoMessage() {} 1171 1172 func (x *Build_BuilderInfo) ProtoReflect() protoreflect.Message { 1173 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[6] 1174 if protoimpl.UnsafeEnabled && x != nil { 1175 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1176 if ms.LoadMessageInfo() == nil { 1177 ms.StoreMessageInfo(mi) 1178 } 1179 return ms 1180 } 1181 return mi.MessageOf(x) 1182 } 1183 1184 // Deprecated: Use Build_BuilderInfo.ProtoReflect.Descriptor instead. 1185 func (*Build_BuilderInfo) Descriptor() ([]byte, []int) { 1186 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0, 2} 1187 } 1188 1189 func (x *Build_BuilderInfo) GetDescription() string { 1190 if x != nil { 1191 return x.Description 1192 } 1193 return "" 1194 } 1195 1196 type InputDataRef_CAS struct { 1197 state protoimpl.MessageState 1198 sizeCache protoimpl.SizeCache 1199 unknownFields protoimpl.UnknownFields 1200 1201 // Full name of RBE-CAS instance. `projects/{project_id}/instances/{instance}`. 1202 // e.g. projects/chromium-swarm/instances/default_instance 1203 CasInstance string `protobuf:"bytes,1,opt,name=cas_instance,json=casInstance,proto3" json:"cas_instance,omitempty"` 1204 Digest *InputDataRef_CAS_Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"` 1205 } 1206 1207 func (x *InputDataRef_CAS) Reset() { 1208 *x = InputDataRef_CAS{} 1209 if protoimpl.UnsafeEnabled { 1210 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[7] 1211 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1212 ms.StoreMessageInfo(mi) 1213 } 1214 } 1215 1216 func (x *InputDataRef_CAS) String() string { 1217 return protoimpl.X.MessageStringOf(x) 1218 } 1219 1220 func (*InputDataRef_CAS) ProtoMessage() {} 1221 1222 func (x *InputDataRef_CAS) ProtoReflect() protoreflect.Message { 1223 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[7] 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 InputDataRef_CAS.ProtoReflect.Descriptor instead. 1235 func (*InputDataRef_CAS) Descriptor() ([]byte, []int) { 1236 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 0} 1237 } 1238 1239 func (x *InputDataRef_CAS) GetCasInstance() string { 1240 if x != nil { 1241 return x.CasInstance 1242 } 1243 return "" 1244 } 1245 1246 func (x *InputDataRef_CAS) GetDigest() *InputDataRef_CAS_Digest { 1247 if x != nil { 1248 return x.Digest 1249 } 1250 return nil 1251 } 1252 1253 type InputDataRef_CIPD struct { 1254 state protoimpl.MessageState 1255 sizeCache protoimpl.SizeCache 1256 unknownFields protoimpl.UnknownFields 1257 1258 Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` 1259 Specs []*InputDataRef_CIPD_PkgSpec `protobuf:"bytes,2,rep,name=specs,proto3" json:"specs,omitempty"` 1260 } 1261 1262 func (x *InputDataRef_CIPD) Reset() { 1263 *x = InputDataRef_CIPD{} 1264 if protoimpl.UnsafeEnabled { 1265 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[8] 1266 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1267 ms.StoreMessageInfo(mi) 1268 } 1269 } 1270 1271 func (x *InputDataRef_CIPD) String() string { 1272 return protoimpl.X.MessageStringOf(x) 1273 } 1274 1275 func (*InputDataRef_CIPD) ProtoMessage() {} 1276 1277 func (x *InputDataRef_CIPD) ProtoReflect() protoreflect.Message { 1278 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[8] 1279 if protoimpl.UnsafeEnabled && x != nil { 1280 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1281 if ms.LoadMessageInfo() == nil { 1282 ms.StoreMessageInfo(mi) 1283 } 1284 return ms 1285 } 1286 return mi.MessageOf(x) 1287 } 1288 1289 // Deprecated: Use InputDataRef_CIPD.ProtoReflect.Descriptor instead. 1290 func (*InputDataRef_CIPD) Descriptor() ([]byte, []int) { 1291 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 1} 1292 } 1293 1294 func (x *InputDataRef_CIPD) GetServer() string { 1295 if x != nil { 1296 return x.Server 1297 } 1298 return "" 1299 } 1300 1301 func (x *InputDataRef_CIPD) GetSpecs() []*InputDataRef_CIPD_PkgSpec { 1302 if x != nil { 1303 return x.Specs 1304 } 1305 return nil 1306 } 1307 1308 // This is a [Digest][build.bazel.remote.execution.v2.Digest] of a blob on 1309 // RBE-CAS. See the explanations at the original definition. 1310 // https://github.com/bazelbuild/remote-apis/blob/77cfb44a88577a7ade5dd2400425f6d50469ec6d/build/bazel/remote/execution/v2/remote_execution.proto#L753-L791 1311 type InputDataRef_CAS_Digest struct { 1312 state protoimpl.MessageState 1313 sizeCache protoimpl.SizeCache 1314 unknownFields protoimpl.UnknownFields 1315 1316 Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` 1317 SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` 1318 } 1319 1320 func (x *InputDataRef_CAS_Digest) Reset() { 1321 *x = InputDataRef_CAS_Digest{} 1322 if protoimpl.UnsafeEnabled { 1323 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[9] 1324 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1325 ms.StoreMessageInfo(mi) 1326 } 1327 } 1328 1329 func (x *InputDataRef_CAS_Digest) String() string { 1330 return protoimpl.X.MessageStringOf(x) 1331 } 1332 1333 func (*InputDataRef_CAS_Digest) ProtoMessage() {} 1334 1335 func (x *InputDataRef_CAS_Digest) ProtoReflect() protoreflect.Message { 1336 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[9] 1337 if protoimpl.UnsafeEnabled && x != nil { 1338 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1339 if ms.LoadMessageInfo() == nil { 1340 ms.StoreMessageInfo(mi) 1341 } 1342 return ms 1343 } 1344 return mi.MessageOf(x) 1345 } 1346 1347 // Deprecated: Use InputDataRef_CAS_Digest.ProtoReflect.Descriptor instead. 1348 func (*InputDataRef_CAS_Digest) Descriptor() ([]byte, []int) { 1349 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 0, 0} 1350 } 1351 1352 func (x *InputDataRef_CAS_Digest) GetHash() string { 1353 if x != nil { 1354 return x.Hash 1355 } 1356 return "" 1357 } 1358 1359 func (x *InputDataRef_CAS_Digest) GetSizeBytes() int64 { 1360 if x != nil { 1361 return x.SizeBytes 1362 } 1363 return 0 1364 } 1365 1366 type InputDataRef_CIPD_PkgSpec struct { 1367 state protoimpl.MessageState 1368 sizeCache protoimpl.SizeCache 1369 unknownFields protoimpl.UnknownFields 1370 1371 // Package MAY include CIPD variables, including conditional variables like 1372 // `${os=windows}`. Additionally, version may be a ref or a tag. 1373 Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"` 1374 Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` 1375 } 1376 1377 func (x *InputDataRef_CIPD_PkgSpec) Reset() { 1378 *x = InputDataRef_CIPD_PkgSpec{} 1379 if protoimpl.UnsafeEnabled { 1380 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[10] 1381 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1382 ms.StoreMessageInfo(mi) 1383 } 1384 } 1385 1386 func (x *InputDataRef_CIPD_PkgSpec) String() string { 1387 return protoimpl.X.MessageStringOf(x) 1388 } 1389 1390 func (*InputDataRef_CIPD_PkgSpec) ProtoMessage() {} 1391 1392 func (x *InputDataRef_CIPD_PkgSpec) ProtoReflect() protoreflect.Message { 1393 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[10] 1394 if protoimpl.UnsafeEnabled && x != nil { 1395 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1396 if ms.LoadMessageInfo() == nil { 1397 ms.StoreMessageInfo(mi) 1398 } 1399 return ms 1400 } 1401 return mi.MessageOf(x) 1402 } 1403 1404 // Deprecated: Use InputDataRef_CIPD_PkgSpec.ProtoReflect.Descriptor instead. 1405 func (*InputDataRef_CIPD_PkgSpec) Descriptor() ([]byte, []int) { 1406 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 1, 0} 1407 } 1408 1409 func (x *InputDataRef_CIPD_PkgSpec) GetPackage() string { 1410 if x != nil { 1411 return x.Package 1412 } 1413 return "" 1414 } 1415 1416 func (x *InputDataRef_CIPD_PkgSpec) GetVersion() string { 1417 if x != nil { 1418 return x.Version 1419 } 1420 return "" 1421 } 1422 1423 type ResolvedDataRef_Timing struct { 1424 state protoimpl.MessageState 1425 sizeCache protoimpl.SizeCache 1426 unknownFields protoimpl.UnknownFields 1427 1428 FetchDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=fetch_duration,json=fetchDuration,proto3" json:"fetch_duration,omitempty"` 1429 InstallDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=install_duration,json=installDuration,proto3" json:"install_duration,omitempty"` 1430 } 1431 1432 func (x *ResolvedDataRef_Timing) Reset() { 1433 *x = ResolvedDataRef_Timing{} 1434 if protoimpl.UnsafeEnabled { 1435 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[11] 1436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1437 ms.StoreMessageInfo(mi) 1438 } 1439 } 1440 1441 func (x *ResolvedDataRef_Timing) String() string { 1442 return protoimpl.X.MessageStringOf(x) 1443 } 1444 1445 func (*ResolvedDataRef_Timing) ProtoMessage() {} 1446 1447 func (x *ResolvedDataRef_Timing) ProtoReflect() protoreflect.Message { 1448 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[11] 1449 if protoimpl.UnsafeEnabled && x != nil { 1450 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1451 if ms.LoadMessageInfo() == nil { 1452 ms.StoreMessageInfo(mi) 1453 } 1454 return ms 1455 } 1456 return mi.MessageOf(x) 1457 } 1458 1459 // Deprecated: Use ResolvedDataRef_Timing.ProtoReflect.Descriptor instead. 1460 func (*ResolvedDataRef_Timing) Descriptor() ([]byte, []int) { 1461 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 0} 1462 } 1463 1464 func (x *ResolvedDataRef_Timing) GetFetchDuration() *durationpb.Duration { 1465 if x != nil { 1466 return x.FetchDuration 1467 } 1468 return nil 1469 } 1470 1471 func (x *ResolvedDataRef_Timing) GetInstallDuration() *durationpb.Duration { 1472 if x != nil { 1473 return x.InstallDuration 1474 } 1475 return nil 1476 } 1477 1478 type ResolvedDataRef_CAS struct { 1479 state protoimpl.MessageState 1480 sizeCache protoimpl.SizeCache 1481 unknownFields protoimpl.UnknownFields 1482 1483 // TODO(crbug.com/1266060): potential fields can be 1484 // int64 cache_hits = ?; 1485 // int64 cache_hit_size = ?: 1486 // int64 cache_misses = ?; 1487 // int64 cache_miss_size = ?; 1488 // need more thinking and better to determine when starting writing code 1489 // to download binaries in bbagent. 1490 Timing *ResolvedDataRef_Timing `protobuf:"bytes,1,opt,name=timing,proto3" json:"timing,omitempty"` 1491 } 1492 1493 func (x *ResolvedDataRef_CAS) Reset() { 1494 *x = ResolvedDataRef_CAS{} 1495 if protoimpl.UnsafeEnabled { 1496 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[12] 1497 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1498 ms.StoreMessageInfo(mi) 1499 } 1500 } 1501 1502 func (x *ResolvedDataRef_CAS) String() string { 1503 return protoimpl.X.MessageStringOf(x) 1504 } 1505 1506 func (*ResolvedDataRef_CAS) ProtoMessage() {} 1507 1508 func (x *ResolvedDataRef_CAS) ProtoReflect() protoreflect.Message { 1509 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[12] 1510 if protoimpl.UnsafeEnabled && x != nil { 1511 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1512 if ms.LoadMessageInfo() == nil { 1513 ms.StoreMessageInfo(mi) 1514 } 1515 return ms 1516 } 1517 return mi.MessageOf(x) 1518 } 1519 1520 // Deprecated: Use ResolvedDataRef_CAS.ProtoReflect.Descriptor instead. 1521 func (*ResolvedDataRef_CAS) Descriptor() ([]byte, []int) { 1522 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 1} 1523 } 1524 1525 func (x *ResolvedDataRef_CAS) GetTiming() *ResolvedDataRef_Timing { 1526 if x != nil { 1527 return x.Timing 1528 } 1529 return nil 1530 } 1531 1532 type ResolvedDataRef_CIPD struct { 1533 state protoimpl.MessageState 1534 sizeCache protoimpl.SizeCache 1535 unknownFields protoimpl.UnknownFields 1536 1537 Specs []*ResolvedDataRef_CIPD_PkgSpec `protobuf:"bytes,2,rep,name=specs,proto3" json:"specs,omitempty"` 1538 } 1539 1540 func (x *ResolvedDataRef_CIPD) Reset() { 1541 *x = ResolvedDataRef_CIPD{} 1542 if protoimpl.UnsafeEnabled { 1543 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[13] 1544 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1545 ms.StoreMessageInfo(mi) 1546 } 1547 } 1548 1549 func (x *ResolvedDataRef_CIPD) String() string { 1550 return protoimpl.X.MessageStringOf(x) 1551 } 1552 1553 func (*ResolvedDataRef_CIPD) ProtoMessage() {} 1554 1555 func (x *ResolvedDataRef_CIPD) ProtoReflect() protoreflect.Message { 1556 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[13] 1557 if protoimpl.UnsafeEnabled && x != nil { 1558 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1559 if ms.LoadMessageInfo() == nil { 1560 ms.StoreMessageInfo(mi) 1561 } 1562 return ms 1563 } 1564 return mi.MessageOf(x) 1565 } 1566 1567 // Deprecated: Use ResolvedDataRef_CIPD.ProtoReflect.Descriptor instead. 1568 func (*ResolvedDataRef_CIPD) Descriptor() ([]byte, []int) { 1569 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 2} 1570 } 1571 1572 func (x *ResolvedDataRef_CIPD) GetSpecs() []*ResolvedDataRef_CIPD_PkgSpec { 1573 if x != nil { 1574 return x.Specs 1575 } 1576 return nil 1577 } 1578 1579 type ResolvedDataRef_CIPD_PkgSpec struct { 1580 state protoimpl.MessageState 1581 sizeCache protoimpl.SizeCache 1582 unknownFields protoimpl.UnknownFields 1583 1584 // True if this package wasn't installed because `package` contained a 1585 // non-applicable conditional (e.g. ${os=windows} on a mac machine). 1586 Skipped bool `protobuf:"varint,1,opt,name=skipped,proto3" json:"skipped,omitempty"` 1587 Package string `protobuf:"bytes,2,opt,name=package,proto3" json:"package,omitempty"` // fully resolved 1588 Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` // fully resolved 1589 WasCached Trinary `protobuf:"varint,4,opt,name=was_cached,json=wasCached,proto3,enum=buildbucket.v2.Trinary" json:"was_cached,omitempty"` 1590 Timing *ResolvedDataRef_Timing `protobuf:"bytes,5,opt,name=timing,proto3" json:"timing,omitempty"` // optional 1591 } 1592 1593 func (x *ResolvedDataRef_CIPD_PkgSpec) Reset() { 1594 *x = ResolvedDataRef_CIPD_PkgSpec{} 1595 if protoimpl.UnsafeEnabled { 1596 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[14] 1597 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1598 ms.StoreMessageInfo(mi) 1599 } 1600 } 1601 1602 func (x *ResolvedDataRef_CIPD_PkgSpec) String() string { 1603 return protoimpl.X.MessageStringOf(x) 1604 } 1605 1606 func (*ResolvedDataRef_CIPD_PkgSpec) ProtoMessage() {} 1607 1608 func (x *ResolvedDataRef_CIPD_PkgSpec) ProtoReflect() protoreflect.Message { 1609 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[14] 1610 if protoimpl.UnsafeEnabled && x != nil { 1611 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1612 if ms.LoadMessageInfo() == nil { 1613 ms.StoreMessageInfo(mi) 1614 } 1615 return ms 1616 } 1617 return mi.MessageOf(x) 1618 } 1619 1620 // Deprecated: Use ResolvedDataRef_CIPD_PkgSpec.ProtoReflect.Descriptor instead. 1621 func (*ResolvedDataRef_CIPD_PkgSpec) Descriptor() ([]byte, []int) { 1622 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 2, 0} 1623 } 1624 1625 func (x *ResolvedDataRef_CIPD_PkgSpec) GetSkipped() bool { 1626 if x != nil { 1627 return x.Skipped 1628 } 1629 return false 1630 } 1631 1632 func (x *ResolvedDataRef_CIPD_PkgSpec) GetPackage() string { 1633 if x != nil { 1634 return x.Package 1635 } 1636 return "" 1637 } 1638 1639 func (x *ResolvedDataRef_CIPD_PkgSpec) GetVersion() string { 1640 if x != nil { 1641 return x.Version 1642 } 1643 return "" 1644 } 1645 1646 func (x *ResolvedDataRef_CIPD_PkgSpec) GetWasCached() Trinary { 1647 if x != nil { 1648 return x.WasCached 1649 } 1650 return Trinary_UNSET 1651 } 1652 1653 func (x *ResolvedDataRef_CIPD_PkgSpec) GetTiming() *ResolvedDataRef_Timing { 1654 if x != nil { 1655 return x.Timing 1656 } 1657 return nil 1658 } 1659 1660 // Buildbucket-specific information, captured at the build creation time. 1661 type BuildInfra_Buildbucket struct { 1662 state protoimpl.MessageState 1663 sizeCache protoimpl.SizeCache 1664 unknownFields protoimpl.UnknownFields 1665 1666 // Version of swarming task template. Defines 1667 // versions of kitchen, git, git wrapper, python, vpython, etc. 1668 ServiceConfigRevision string `protobuf:"bytes,2,opt,name=service_config_revision,json=serviceConfigRevision,proto3" json:"service_config_revision,omitempty"` 1669 // Properties that were specified in ScheduleBuildRequest to create this 1670 // build. 1671 // 1672 // In particular, CQ uses this to decide whether the build created by 1673 // someone else is appropriate for CQ, e.g. it was created with the same 1674 // properties that CQ would use. 1675 RequestedProperties *structpb.Struct `protobuf:"bytes,5,opt,name=requested_properties,json=requestedProperties,proto3" json:"requested_properties,omitempty"` 1676 // Dimensions that were specified in ScheduleBuildRequest to create this 1677 // build. 1678 RequestedDimensions []*RequestedDimension `protobuf:"bytes,6,rep,name=requested_dimensions,json=requestedDimensions,proto3" json:"requested_dimensions,omitempty"` 1679 // Buildbucket hostname, e.g. "cr-buildbucket.appspot.com". 1680 Hostname string `protobuf:"bytes,7,opt,name=hostname,proto3" json:"hostname,omitempty"` 1681 // This contains a map of all the experiments involved for this build, as 1682 // well as which bit of configuration lead to them being set (or unset). 1683 // 1684 // Note that if the reason here is EXPERIMENT_REASON_GLOBAL_INACTIVE, 1685 // then that means that the experiment is completely disabled and has no 1686 // effect, but your builder or ScheduleBuildRequest still indicated that 1687 // the experiment should be set. If you see this, then please remove it 1688 // from your configuration and/or requests. 1689 ExperimentReasons map[string]BuildInfra_Buildbucket_ExperimentReason `protobuf:"bytes,8,rep,name=experiment_reasons,json=experimentReasons,proto3" json:"experiment_reasons,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=buildbucket.v2.BuildInfra_Buildbucket_ExperimentReason"` 1690 // The agent binary (bbagent or kitchen) resolutions Buildbucket made for this build. 1691 // This includes all agent_executable references supplied to 1692 // the TaskBackend in "original" (CIPD) form, to facilitate debugging. 1693 // DEPRECATED: Use agent.source instead. 1694 // 1695 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 1696 AgentExecutable map[string]*ResolvedDataRef `protobuf:"bytes,9,rep,name=agent_executable,json=agentExecutable,proto3" json:"agent_executable,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1697 Agent *BuildInfra_Buildbucket_Agent `protobuf:"bytes,10,opt,name=agent,proto3" json:"agent,omitempty"` 1698 KnownPublicGerritHosts []string `protobuf:"bytes,11,rep,name=known_public_gerrit_hosts,json=knownPublicGerritHosts,proto3" json:"known_public_gerrit_hosts,omitempty"` 1699 // Flag for if the build should have a build number. 1700 BuildNumber bool `protobuf:"varint,12,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` 1701 } 1702 1703 func (x *BuildInfra_Buildbucket) Reset() { 1704 *x = BuildInfra_Buildbucket{} 1705 if protoimpl.UnsafeEnabled { 1706 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[15] 1707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1708 ms.StoreMessageInfo(mi) 1709 } 1710 } 1711 1712 func (x *BuildInfra_Buildbucket) String() string { 1713 return protoimpl.X.MessageStringOf(x) 1714 } 1715 1716 func (*BuildInfra_Buildbucket) ProtoMessage() {} 1717 1718 func (x *BuildInfra_Buildbucket) ProtoReflect() protoreflect.Message { 1719 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[15] 1720 if protoimpl.UnsafeEnabled && x != nil { 1721 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1722 if ms.LoadMessageInfo() == nil { 1723 ms.StoreMessageInfo(mi) 1724 } 1725 return ms 1726 } 1727 return mi.MessageOf(x) 1728 } 1729 1730 // Deprecated: Use BuildInfra_Buildbucket.ProtoReflect.Descriptor instead. 1731 func (*BuildInfra_Buildbucket) Descriptor() ([]byte, []int) { 1732 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0} 1733 } 1734 1735 func (x *BuildInfra_Buildbucket) GetServiceConfigRevision() string { 1736 if x != nil { 1737 return x.ServiceConfigRevision 1738 } 1739 return "" 1740 } 1741 1742 func (x *BuildInfra_Buildbucket) GetRequestedProperties() *structpb.Struct { 1743 if x != nil { 1744 return x.RequestedProperties 1745 } 1746 return nil 1747 } 1748 1749 func (x *BuildInfra_Buildbucket) GetRequestedDimensions() []*RequestedDimension { 1750 if x != nil { 1751 return x.RequestedDimensions 1752 } 1753 return nil 1754 } 1755 1756 func (x *BuildInfra_Buildbucket) GetHostname() string { 1757 if x != nil { 1758 return x.Hostname 1759 } 1760 return "" 1761 } 1762 1763 func (x *BuildInfra_Buildbucket) GetExperimentReasons() map[string]BuildInfra_Buildbucket_ExperimentReason { 1764 if x != nil { 1765 return x.ExperimentReasons 1766 } 1767 return nil 1768 } 1769 1770 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 1771 func (x *BuildInfra_Buildbucket) GetAgentExecutable() map[string]*ResolvedDataRef { 1772 if x != nil { 1773 return x.AgentExecutable 1774 } 1775 return nil 1776 } 1777 1778 func (x *BuildInfra_Buildbucket) GetAgent() *BuildInfra_Buildbucket_Agent { 1779 if x != nil { 1780 return x.Agent 1781 } 1782 return nil 1783 } 1784 1785 func (x *BuildInfra_Buildbucket) GetKnownPublicGerritHosts() []string { 1786 if x != nil { 1787 return x.KnownPublicGerritHosts 1788 } 1789 return nil 1790 } 1791 1792 func (x *BuildInfra_Buildbucket) GetBuildNumber() bool { 1793 if x != nil { 1794 return x.BuildNumber 1795 } 1796 return false 1797 } 1798 1799 // Swarming-specific information. 1800 // 1801 // Next ID: 10. 1802 type BuildInfra_Swarming struct { 1803 state protoimpl.MessageState 1804 sizeCache protoimpl.SizeCache 1805 unknownFields protoimpl.UnknownFields 1806 1807 // Swarming hostname, e.g. "chromium-swarm.appspot.com". 1808 // Populated at the build creation time. 1809 Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"` 1810 // Swarming task id. 1811 // Not guaranteed to be populated at the build creation time. 1812 TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 1813 // Swarming run id of the parent task from which this build is triggered. 1814 // If set, swarming promises to ensure this build won't outlive its parent 1815 // swarming task (which may or may not itself be a Buildbucket build). 1816 // Populated at the build creation time. 1817 ParentRunId string `protobuf:"bytes,9,opt,name=parent_run_id,json=parentRunId,proto3" json:"parent_run_id,omitempty"` 1818 // Task service account email address. 1819 // This is the service account used for all authenticated requests by the 1820 // build. 1821 TaskServiceAccount string `protobuf:"bytes,3,opt,name=task_service_account,json=taskServiceAccount,proto3" json:"task_service_account,omitempty"` 1822 // Priority of the task. The lower the more important. 1823 // Valid values are [20..255]. 1824 Priority int32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"` 1825 // Swarming dimensions for the task. 1826 TaskDimensions []*RequestedDimension `protobuf:"bytes,5,rep,name=task_dimensions,json=taskDimensions,proto3" json:"task_dimensions,omitempty"` 1827 // Swarming dimensions of the bot used for the task. 1828 BotDimensions []*StringPair `protobuf:"bytes,6,rep,name=bot_dimensions,json=botDimensions,proto3" json:"bot_dimensions,omitempty"` 1829 // Caches requested by this build. 1830 Caches []*BuildInfra_Swarming_CacheEntry `protobuf:"bytes,7,rep,name=caches,proto3" json:"caches,omitempty"` 1831 } 1832 1833 func (x *BuildInfra_Swarming) Reset() { 1834 *x = BuildInfra_Swarming{} 1835 if protoimpl.UnsafeEnabled { 1836 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[16] 1837 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1838 ms.StoreMessageInfo(mi) 1839 } 1840 } 1841 1842 func (x *BuildInfra_Swarming) String() string { 1843 return protoimpl.X.MessageStringOf(x) 1844 } 1845 1846 func (*BuildInfra_Swarming) ProtoMessage() {} 1847 1848 func (x *BuildInfra_Swarming) ProtoReflect() protoreflect.Message { 1849 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[16] 1850 if protoimpl.UnsafeEnabled && x != nil { 1851 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1852 if ms.LoadMessageInfo() == nil { 1853 ms.StoreMessageInfo(mi) 1854 } 1855 return ms 1856 } 1857 return mi.MessageOf(x) 1858 } 1859 1860 // Deprecated: Use BuildInfra_Swarming.ProtoReflect.Descriptor instead. 1861 func (*BuildInfra_Swarming) Descriptor() ([]byte, []int) { 1862 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 1} 1863 } 1864 1865 func (x *BuildInfra_Swarming) GetHostname() string { 1866 if x != nil { 1867 return x.Hostname 1868 } 1869 return "" 1870 } 1871 1872 func (x *BuildInfra_Swarming) GetTaskId() string { 1873 if x != nil { 1874 return x.TaskId 1875 } 1876 return "" 1877 } 1878 1879 func (x *BuildInfra_Swarming) GetParentRunId() string { 1880 if x != nil { 1881 return x.ParentRunId 1882 } 1883 return "" 1884 } 1885 1886 func (x *BuildInfra_Swarming) GetTaskServiceAccount() string { 1887 if x != nil { 1888 return x.TaskServiceAccount 1889 } 1890 return "" 1891 } 1892 1893 func (x *BuildInfra_Swarming) GetPriority() int32 { 1894 if x != nil { 1895 return x.Priority 1896 } 1897 return 0 1898 } 1899 1900 func (x *BuildInfra_Swarming) GetTaskDimensions() []*RequestedDimension { 1901 if x != nil { 1902 return x.TaskDimensions 1903 } 1904 return nil 1905 } 1906 1907 func (x *BuildInfra_Swarming) GetBotDimensions() []*StringPair { 1908 if x != nil { 1909 return x.BotDimensions 1910 } 1911 return nil 1912 } 1913 1914 func (x *BuildInfra_Swarming) GetCaches() []*BuildInfra_Swarming_CacheEntry { 1915 if x != nil { 1916 return x.Caches 1917 } 1918 return nil 1919 } 1920 1921 // LogDog-specific information. 1922 type BuildInfra_LogDog struct { 1923 state protoimpl.MessageState 1924 sizeCache protoimpl.SizeCache 1925 unknownFields protoimpl.UnknownFields 1926 1927 // LogDog hostname, e.g. "logs.chromium.org". 1928 Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"` 1929 // LogDog project, e.g. "chromium". 1930 // Typically matches Build.builder.project. 1931 Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` 1932 // A slash-separated path prefix shared by all logs and artifacts of this 1933 // build. 1934 // No other build can have the same prefix. 1935 // Can be used to discover logs and/or load log contents. 1936 Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"` 1937 } 1938 1939 func (x *BuildInfra_LogDog) Reset() { 1940 *x = BuildInfra_LogDog{} 1941 if protoimpl.UnsafeEnabled { 1942 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[17] 1943 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1944 ms.StoreMessageInfo(mi) 1945 } 1946 } 1947 1948 func (x *BuildInfra_LogDog) String() string { 1949 return protoimpl.X.MessageStringOf(x) 1950 } 1951 1952 func (*BuildInfra_LogDog) ProtoMessage() {} 1953 1954 func (x *BuildInfra_LogDog) ProtoReflect() protoreflect.Message { 1955 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[17] 1956 if protoimpl.UnsafeEnabled && x != nil { 1957 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1958 if ms.LoadMessageInfo() == nil { 1959 ms.StoreMessageInfo(mi) 1960 } 1961 return ms 1962 } 1963 return mi.MessageOf(x) 1964 } 1965 1966 // Deprecated: Use BuildInfra_LogDog.ProtoReflect.Descriptor instead. 1967 func (*BuildInfra_LogDog) Descriptor() ([]byte, []int) { 1968 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 2} 1969 } 1970 1971 func (x *BuildInfra_LogDog) GetHostname() string { 1972 if x != nil { 1973 return x.Hostname 1974 } 1975 return "" 1976 } 1977 1978 func (x *BuildInfra_LogDog) GetProject() string { 1979 if x != nil { 1980 return x.Project 1981 } 1982 return "" 1983 } 1984 1985 func (x *BuildInfra_LogDog) GetPrefix() string { 1986 if x != nil { 1987 return x.Prefix 1988 } 1989 return "" 1990 } 1991 1992 // Recipe-specific information. 1993 type BuildInfra_Recipe struct { 1994 state protoimpl.MessageState 1995 sizeCache protoimpl.SizeCache 1996 unknownFields protoimpl.UnknownFields 1997 1998 // CIPD package name containing the recipe used to run this build. 1999 CipdPackage string `protobuf:"bytes,1,opt,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"` 2000 // Name of the recipe used to run this build. 2001 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 2002 } 2003 2004 func (x *BuildInfra_Recipe) Reset() { 2005 *x = BuildInfra_Recipe{} 2006 if protoimpl.UnsafeEnabled { 2007 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[18] 2008 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2009 ms.StoreMessageInfo(mi) 2010 } 2011 } 2012 2013 func (x *BuildInfra_Recipe) String() string { 2014 return protoimpl.X.MessageStringOf(x) 2015 } 2016 2017 func (*BuildInfra_Recipe) ProtoMessage() {} 2018 2019 func (x *BuildInfra_Recipe) ProtoReflect() protoreflect.Message { 2020 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[18] 2021 if protoimpl.UnsafeEnabled && x != nil { 2022 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2023 if ms.LoadMessageInfo() == nil { 2024 ms.StoreMessageInfo(mi) 2025 } 2026 return ms 2027 } 2028 return mi.MessageOf(x) 2029 } 2030 2031 // Deprecated: Use BuildInfra_Recipe.ProtoReflect.Descriptor instead. 2032 func (*BuildInfra_Recipe) Descriptor() ([]byte, []int) { 2033 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 3} 2034 } 2035 2036 func (x *BuildInfra_Recipe) GetCipdPackage() string { 2037 if x != nil { 2038 return x.CipdPackage 2039 } 2040 return "" 2041 } 2042 2043 func (x *BuildInfra_Recipe) GetName() string { 2044 if x != nil { 2045 return x.Name 2046 } 2047 return "" 2048 } 2049 2050 // ResultDB-specific information. 2051 type BuildInfra_ResultDB struct { 2052 state protoimpl.MessageState 2053 sizeCache protoimpl.SizeCache 2054 unknownFields protoimpl.UnknownFields 2055 2056 // Hostname of the ResultDB instance, such as "results.api.cr.dev". 2057 Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"` 2058 // Name of the invocation for results of this build. 2059 // Typically "invocations/build:<build_id>". 2060 Invocation string `protobuf:"bytes,2,opt,name=invocation,proto3" json:"invocation,omitempty"` 2061 // Whether to enable ResultDB:Buildbucket integration. 2062 Enable bool `protobuf:"varint,3,opt,name=enable,proto3" json:"enable,omitempty"` 2063 // Configuration for exporting test results to BigQuery. 2064 // This can have multiple values to export results to multiple BigQuery 2065 // tables, or to support multiple test result predicates. 2066 BqExports []*v1.BigQueryExport `protobuf:"bytes,4,rep,name=bq_exports,json=bqExports,proto3" json:"bq_exports,omitempty"` 2067 // Deprecated. Any values specified here are ignored. 2068 HistoryOptions *v1.HistoryOptions `protobuf:"bytes,5,opt,name=history_options,json=historyOptions,proto3" json:"history_options,omitempty"` 2069 } 2070 2071 func (x *BuildInfra_ResultDB) Reset() { 2072 *x = BuildInfra_ResultDB{} 2073 if protoimpl.UnsafeEnabled { 2074 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[19] 2075 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2076 ms.StoreMessageInfo(mi) 2077 } 2078 } 2079 2080 func (x *BuildInfra_ResultDB) String() string { 2081 return protoimpl.X.MessageStringOf(x) 2082 } 2083 2084 func (*BuildInfra_ResultDB) ProtoMessage() {} 2085 2086 func (x *BuildInfra_ResultDB) ProtoReflect() protoreflect.Message { 2087 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[19] 2088 if protoimpl.UnsafeEnabled && x != nil { 2089 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2090 if ms.LoadMessageInfo() == nil { 2091 ms.StoreMessageInfo(mi) 2092 } 2093 return ms 2094 } 2095 return mi.MessageOf(x) 2096 } 2097 2098 // Deprecated: Use BuildInfra_ResultDB.ProtoReflect.Descriptor instead. 2099 func (*BuildInfra_ResultDB) Descriptor() ([]byte, []int) { 2100 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 4} 2101 } 2102 2103 func (x *BuildInfra_ResultDB) GetHostname() string { 2104 if x != nil { 2105 return x.Hostname 2106 } 2107 return "" 2108 } 2109 2110 func (x *BuildInfra_ResultDB) GetInvocation() string { 2111 if x != nil { 2112 return x.Invocation 2113 } 2114 return "" 2115 } 2116 2117 func (x *BuildInfra_ResultDB) GetEnable() bool { 2118 if x != nil { 2119 return x.Enable 2120 } 2121 return false 2122 } 2123 2124 func (x *BuildInfra_ResultDB) GetBqExports() []*v1.BigQueryExport { 2125 if x != nil { 2126 return x.BqExports 2127 } 2128 return nil 2129 } 2130 2131 func (x *BuildInfra_ResultDB) GetHistoryOptions() *v1.HistoryOptions { 2132 if x != nil { 2133 return x.HistoryOptions 2134 } 2135 return nil 2136 } 2137 2138 // Led specific information. 2139 type BuildInfra_Led struct { 2140 state protoimpl.MessageState 2141 sizeCache protoimpl.SizeCache 2142 unknownFields protoimpl.UnknownFields 2143 2144 // The original bucket this led build is shadowing. 2145 ShadowedBucket string `protobuf:"bytes,1,opt,name=shadowed_bucket,json=shadowedBucket,proto3" json:"shadowed_bucket,omitempty"` 2146 } 2147 2148 func (x *BuildInfra_Led) Reset() { 2149 *x = BuildInfra_Led{} 2150 if protoimpl.UnsafeEnabled { 2151 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[20] 2152 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2153 ms.StoreMessageInfo(mi) 2154 } 2155 } 2156 2157 func (x *BuildInfra_Led) String() string { 2158 return protoimpl.X.MessageStringOf(x) 2159 } 2160 2161 func (*BuildInfra_Led) ProtoMessage() {} 2162 2163 func (x *BuildInfra_Led) ProtoReflect() protoreflect.Message { 2164 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[20] 2165 if protoimpl.UnsafeEnabled && x != nil { 2166 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2167 if ms.LoadMessageInfo() == nil { 2168 ms.StoreMessageInfo(mi) 2169 } 2170 return ms 2171 } 2172 return mi.MessageOf(x) 2173 } 2174 2175 // Deprecated: Use BuildInfra_Led.ProtoReflect.Descriptor instead. 2176 func (*BuildInfra_Led) Descriptor() ([]byte, []int) { 2177 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 5} 2178 } 2179 2180 func (x *BuildInfra_Led) GetShadowedBucket() string { 2181 if x != nil { 2182 return x.ShadowedBucket 2183 } 2184 return "" 2185 } 2186 2187 // BBAgent-specific information. 2188 // 2189 // All paths are relateive to bbagent's working directory, and must be delimited 2190 // with slashes ("/"), regardless of the host OS. 2191 type BuildInfra_BBAgent struct { 2192 state protoimpl.MessageState 2193 sizeCache protoimpl.SizeCache 2194 unknownFields protoimpl.UnknownFields 2195 2196 // Path to the base of the user executable package. 2197 // 2198 // Required. 2199 PayloadPath string `protobuf:"bytes,1,opt,name=payload_path,json=payloadPath,proto3" json:"payload_path,omitempty"` 2200 // Path to a directory where each subdirectory is a cache dir. 2201 // 2202 // Required. 2203 CacheDir string `protobuf:"bytes,2,opt,name=cache_dir,json=cacheDir,proto3" json:"cache_dir,omitempty"` 2204 // List of Gerrit hosts to force git authentication for. 2205 // 2206 // By default public hosts are accessed anonymously, and the anonymous access 2207 // has very low quota. Context needs to know all such hostnames in advance to 2208 // be able to force authenticated access to them. 2209 // 2210 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 2211 KnownPublicGerritHosts []string `protobuf:"bytes,3,rep,name=known_public_gerrit_hosts,json=knownPublicGerritHosts,proto3" json:"known_public_gerrit_hosts,omitempty"` 2212 // DEPRECATED: Use build.Infra.Buildbucket.Agent.Input instead. 2213 // 2214 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 2215 Input *BuildInfra_BBAgent_Input `protobuf:"bytes,4,opt,name=input,proto3" json:"input,omitempty"` 2216 } 2217 2218 func (x *BuildInfra_BBAgent) Reset() { 2219 *x = BuildInfra_BBAgent{} 2220 if protoimpl.UnsafeEnabled { 2221 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[21] 2222 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2223 ms.StoreMessageInfo(mi) 2224 } 2225 } 2226 2227 func (x *BuildInfra_BBAgent) String() string { 2228 return protoimpl.X.MessageStringOf(x) 2229 } 2230 2231 func (*BuildInfra_BBAgent) ProtoMessage() {} 2232 2233 func (x *BuildInfra_BBAgent) ProtoReflect() protoreflect.Message { 2234 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[21] 2235 if protoimpl.UnsafeEnabled && x != nil { 2236 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2237 if ms.LoadMessageInfo() == nil { 2238 ms.StoreMessageInfo(mi) 2239 } 2240 return ms 2241 } 2242 return mi.MessageOf(x) 2243 } 2244 2245 // Deprecated: Use BuildInfra_BBAgent.ProtoReflect.Descriptor instead. 2246 func (*BuildInfra_BBAgent) Descriptor() ([]byte, []int) { 2247 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 6} 2248 } 2249 2250 func (x *BuildInfra_BBAgent) GetPayloadPath() string { 2251 if x != nil { 2252 return x.PayloadPath 2253 } 2254 return "" 2255 } 2256 2257 func (x *BuildInfra_BBAgent) GetCacheDir() string { 2258 if x != nil { 2259 return x.CacheDir 2260 } 2261 return "" 2262 } 2263 2264 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 2265 func (x *BuildInfra_BBAgent) GetKnownPublicGerritHosts() []string { 2266 if x != nil { 2267 return x.KnownPublicGerritHosts 2268 } 2269 return nil 2270 } 2271 2272 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 2273 func (x *BuildInfra_BBAgent) GetInput() *BuildInfra_BBAgent_Input { 2274 if x != nil { 2275 return x.Input 2276 } 2277 return nil 2278 } 2279 2280 // Backend-specific information. 2281 type BuildInfra_Backend struct { 2282 state protoimpl.MessageState 2283 sizeCache protoimpl.SizeCache 2284 unknownFields protoimpl.UnknownFields 2285 2286 // Configuration supplied to the backend at the time it was instructed to 2287 // run this build. 2288 Config *structpb.Struct `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` 2289 // Current backend task status. 2290 // Updated as build runs. 2291 Task *Task `protobuf:"bytes,2,opt,name=task,proto3" json:"task,omitempty"` 2292 // Caches requested by this build. 2293 Caches []*CacheEntry `protobuf:"bytes,3,rep,name=caches,proto3" json:"caches,omitempty"` 2294 // Dimensions for the task. 2295 TaskDimensions []*RequestedDimension `protobuf:"bytes,5,rep,name=task_dimensions,json=taskDimensions,proto3" json:"task_dimensions,omitempty"` 2296 // Hostname is the hostname for the backend itself. 2297 Hostname string `protobuf:"bytes,6,opt,name=hostname,proto3" json:"hostname,omitempty"` 2298 } 2299 2300 func (x *BuildInfra_Backend) Reset() { 2301 *x = BuildInfra_Backend{} 2302 if protoimpl.UnsafeEnabled { 2303 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[22] 2304 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2305 ms.StoreMessageInfo(mi) 2306 } 2307 } 2308 2309 func (x *BuildInfra_Backend) String() string { 2310 return protoimpl.X.MessageStringOf(x) 2311 } 2312 2313 func (*BuildInfra_Backend) ProtoMessage() {} 2314 2315 func (x *BuildInfra_Backend) ProtoReflect() protoreflect.Message { 2316 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[22] 2317 if protoimpl.UnsafeEnabled && x != nil { 2318 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2319 if ms.LoadMessageInfo() == nil { 2320 ms.StoreMessageInfo(mi) 2321 } 2322 return ms 2323 } 2324 return mi.MessageOf(x) 2325 } 2326 2327 // Deprecated: Use BuildInfra_Backend.ProtoReflect.Descriptor instead. 2328 func (*BuildInfra_Backend) Descriptor() ([]byte, []int) { 2329 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 7} 2330 } 2331 2332 func (x *BuildInfra_Backend) GetConfig() *structpb.Struct { 2333 if x != nil { 2334 return x.Config 2335 } 2336 return nil 2337 } 2338 2339 func (x *BuildInfra_Backend) GetTask() *Task { 2340 if x != nil { 2341 return x.Task 2342 } 2343 return nil 2344 } 2345 2346 func (x *BuildInfra_Backend) GetCaches() []*CacheEntry { 2347 if x != nil { 2348 return x.Caches 2349 } 2350 return nil 2351 } 2352 2353 func (x *BuildInfra_Backend) GetTaskDimensions() []*RequestedDimension { 2354 if x != nil { 2355 return x.TaskDimensions 2356 } 2357 return nil 2358 } 2359 2360 func (x *BuildInfra_Backend) GetHostname() string { 2361 if x != nil { 2362 return x.Hostname 2363 } 2364 return "" 2365 } 2366 2367 // bbagent will interpret Agent.input, as well as update Agent.output. 2368 type BuildInfra_Buildbucket_Agent struct { 2369 state protoimpl.MessageState 2370 sizeCache protoimpl.SizeCache 2371 unknownFields protoimpl.UnknownFields 2372 2373 // TODO(crbug.com/1297809): for a long-term solution, we may need to add 2374 // a top-level `on_path` array field in the input and read the value from 2375 // configuration files (eg.settings.cfg, builder configs). So it can store 2376 // the intended order of PATH env var. Then the per-inputDataRef level 2377 // `on_path` field will be deprecated. 2378 // Currently, the new BBagent flow merges all inputDataRef-level `on_path` 2379 // values and sort. This mimics the same behavior of PyBB backend in order 2380 // to have the cipd_installation migration to roll out first under a minimal risk. 2381 Input *BuildInfra_Buildbucket_Agent_Input `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` 2382 Output *BuildInfra_Buildbucket_Agent_Output `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"` 2383 Source *BuildInfra_Buildbucket_Agent_Source `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` 2384 // Maps the relative-to-root directory path in both `input` and `output` 2385 // to the Purpose of the software in that directory. 2386 // 2387 // If a path is not listed here, it is the same as PURPOSE_UNSPECIFIED. 2388 Purposes map[string]BuildInfra_Buildbucket_Agent_Purpose `protobuf:"bytes,4,rep,name=purposes,proto3" json:"purposes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=buildbucket.v2.BuildInfra_Buildbucket_Agent_Purpose"` 2389 // Cache for the cipd client. 2390 // The cache name should be in the format like `cipd_client_<sha(client_version)>`. 2391 CipdClientCache *CacheEntry `protobuf:"bytes,5,opt,name=cipd_client_cache,json=cipdClientCache,proto3" json:"cipd_client_cache,omitempty"` 2392 // Cache for the cipd packages. 2393 // The cache name should be in the format like `cipd_cache_<sha(task_service_account)>`. 2394 CipdPackagesCache *CacheEntry `protobuf:"bytes,6,opt,name=cipd_packages_cache,json=cipdPackagesCache,proto3" json:"cipd_packages_cache,omitempty"` 2395 } 2396 2397 func (x *BuildInfra_Buildbucket_Agent) Reset() { 2398 *x = BuildInfra_Buildbucket_Agent{} 2399 if protoimpl.UnsafeEnabled { 2400 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[23] 2401 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2402 ms.StoreMessageInfo(mi) 2403 } 2404 } 2405 2406 func (x *BuildInfra_Buildbucket_Agent) String() string { 2407 return protoimpl.X.MessageStringOf(x) 2408 } 2409 2410 func (*BuildInfra_Buildbucket_Agent) ProtoMessage() {} 2411 2412 func (x *BuildInfra_Buildbucket_Agent) ProtoReflect() protoreflect.Message { 2413 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[23] 2414 if protoimpl.UnsafeEnabled && x != nil { 2415 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2416 if ms.LoadMessageInfo() == nil { 2417 ms.StoreMessageInfo(mi) 2418 } 2419 return ms 2420 } 2421 return mi.MessageOf(x) 2422 } 2423 2424 // Deprecated: Use BuildInfra_Buildbucket_Agent.ProtoReflect.Descriptor instead. 2425 func (*BuildInfra_Buildbucket_Agent) Descriptor() ([]byte, []int) { 2426 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0} 2427 } 2428 2429 func (x *BuildInfra_Buildbucket_Agent) GetInput() *BuildInfra_Buildbucket_Agent_Input { 2430 if x != nil { 2431 return x.Input 2432 } 2433 return nil 2434 } 2435 2436 func (x *BuildInfra_Buildbucket_Agent) GetOutput() *BuildInfra_Buildbucket_Agent_Output { 2437 if x != nil { 2438 return x.Output 2439 } 2440 return nil 2441 } 2442 2443 func (x *BuildInfra_Buildbucket_Agent) GetSource() *BuildInfra_Buildbucket_Agent_Source { 2444 if x != nil { 2445 return x.Source 2446 } 2447 return nil 2448 } 2449 2450 func (x *BuildInfra_Buildbucket_Agent) GetPurposes() map[string]BuildInfra_Buildbucket_Agent_Purpose { 2451 if x != nil { 2452 return x.Purposes 2453 } 2454 return nil 2455 } 2456 2457 func (x *BuildInfra_Buildbucket_Agent) GetCipdClientCache() *CacheEntry { 2458 if x != nil { 2459 return x.CipdClientCache 2460 } 2461 return nil 2462 } 2463 2464 func (x *BuildInfra_Buildbucket_Agent) GetCipdPackagesCache() *CacheEntry { 2465 if x != nil { 2466 return x.CipdPackagesCache 2467 } 2468 return nil 2469 } 2470 2471 // Source describes where the Agent should be fetched from. 2472 type BuildInfra_Buildbucket_Agent_Source struct { 2473 state protoimpl.MessageState 2474 sizeCache protoimpl.SizeCache 2475 unknownFields protoimpl.UnknownFields 2476 2477 // Types that are assignable to DataType: 2478 // 2479 // *BuildInfra_Buildbucket_Agent_Source_Cipd 2480 DataType isBuildInfra_Buildbucket_Agent_Source_DataType `protobuf_oneof:"data_type"` 2481 } 2482 2483 func (x *BuildInfra_Buildbucket_Agent_Source) Reset() { 2484 *x = BuildInfra_Buildbucket_Agent_Source{} 2485 if protoimpl.UnsafeEnabled { 2486 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[26] 2487 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2488 ms.StoreMessageInfo(mi) 2489 } 2490 } 2491 2492 func (x *BuildInfra_Buildbucket_Agent_Source) String() string { 2493 return protoimpl.X.MessageStringOf(x) 2494 } 2495 2496 func (*BuildInfra_Buildbucket_Agent_Source) ProtoMessage() {} 2497 2498 func (x *BuildInfra_Buildbucket_Agent_Source) ProtoReflect() protoreflect.Message { 2499 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[26] 2500 if protoimpl.UnsafeEnabled && x != nil { 2501 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2502 if ms.LoadMessageInfo() == nil { 2503 ms.StoreMessageInfo(mi) 2504 } 2505 return ms 2506 } 2507 return mi.MessageOf(x) 2508 } 2509 2510 // Deprecated: Use BuildInfra_Buildbucket_Agent_Source.ProtoReflect.Descriptor instead. 2511 func (*BuildInfra_Buildbucket_Agent_Source) Descriptor() ([]byte, []int) { 2512 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 0} 2513 } 2514 2515 func (m *BuildInfra_Buildbucket_Agent_Source) GetDataType() isBuildInfra_Buildbucket_Agent_Source_DataType { 2516 if m != nil { 2517 return m.DataType 2518 } 2519 return nil 2520 } 2521 2522 func (x *BuildInfra_Buildbucket_Agent_Source) GetCipd() *BuildInfra_Buildbucket_Agent_Source_CIPD { 2523 if x, ok := x.GetDataType().(*BuildInfra_Buildbucket_Agent_Source_Cipd); ok { 2524 return x.Cipd 2525 } 2526 return nil 2527 } 2528 2529 type isBuildInfra_Buildbucket_Agent_Source_DataType interface { 2530 isBuildInfra_Buildbucket_Agent_Source_DataType() 2531 } 2532 2533 type BuildInfra_Buildbucket_Agent_Source_Cipd struct { 2534 Cipd *BuildInfra_Buildbucket_Agent_Source_CIPD `protobuf:"bytes,1,opt,name=cipd,proto3,oneof"` 2535 } 2536 2537 func (*BuildInfra_Buildbucket_Agent_Source_Cipd) isBuildInfra_Buildbucket_Agent_Source_DataType() {} 2538 2539 type BuildInfra_Buildbucket_Agent_Input struct { 2540 state protoimpl.MessageState 2541 sizeCache protoimpl.SizeCache 2542 unknownFields protoimpl.UnknownFields 2543 2544 // Maps relative-to-root directory to the data. 2545 // 2546 // For now, data is only allowed at the 'leaves', e.g. you cannot 2547 // specify data at "a/b/c" and "a/b" (but "a/b/c" and "a/q" would be OK). 2548 // All directories beginning with "luci." are reserved for Buildbucket's own use. 2549 // 2550 // TODO(crbug.com/1266060): Enforce the above constraints in a later phase. 2551 // Currently users don't have the flexibility to set the parent directory path. 2552 Data map[string]*InputDataRef `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 2553 // Maps relative-to-root directory to the cipd package itself. 2554 // This is the CIPD client itself and should be downloaded first so that 2555 // the packages in the data field above can be downloaded. 2556 CipdSource map[string]*InputDataRef `protobuf:"bytes,2,rep,name=cipd_source,json=cipdSource,proto3" json:"cipd_source,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 2557 } 2558 2559 func (x *BuildInfra_Buildbucket_Agent_Input) Reset() { 2560 *x = BuildInfra_Buildbucket_Agent_Input{} 2561 if protoimpl.UnsafeEnabled { 2562 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[27] 2563 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2564 ms.StoreMessageInfo(mi) 2565 } 2566 } 2567 2568 func (x *BuildInfra_Buildbucket_Agent_Input) String() string { 2569 return protoimpl.X.MessageStringOf(x) 2570 } 2571 2572 func (*BuildInfra_Buildbucket_Agent_Input) ProtoMessage() {} 2573 2574 func (x *BuildInfra_Buildbucket_Agent_Input) ProtoReflect() protoreflect.Message { 2575 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[27] 2576 if protoimpl.UnsafeEnabled && x != nil { 2577 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2578 if ms.LoadMessageInfo() == nil { 2579 ms.StoreMessageInfo(mi) 2580 } 2581 return ms 2582 } 2583 return mi.MessageOf(x) 2584 } 2585 2586 // Deprecated: Use BuildInfra_Buildbucket_Agent_Input.ProtoReflect.Descriptor instead. 2587 func (*BuildInfra_Buildbucket_Agent_Input) Descriptor() ([]byte, []int) { 2588 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 1} 2589 } 2590 2591 func (x *BuildInfra_Buildbucket_Agent_Input) GetData() map[string]*InputDataRef { 2592 if x != nil { 2593 return x.Data 2594 } 2595 return nil 2596 } 2597 2598 func (x *BuildInfra_Buildbucket_Agent_Input) GetCipdSource() map[string]*InputDataRef { 2599 if x != nil { 2600 return x.CipdSource 2601 } 2602 return nil 2603 } 2604 2605 type BuildInfra_Buildbucket_Agent_Output struct { 2606 state protoimpl.MessageState 2607 sizeCache protoimpl.SizeCache 2608 unknownFields protoimpl.UnknownFields 2609 2610 // Maps relative-to-root directory to the fully-resolved ref. 2611 // 2612 // This will always have 1:1 mapping to Agent.Input.data 2613 ResolvedData map[string]*ResolvedDataRef `protobuf:"bytes,1,rep,name=resolved_data,json=resolvedData,proto3" json:"resolved_data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 2614 Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"` 2615 StatusDetails *StatusDetails `protobuf:"bytes,3,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"` 2616 // Deprecated. Use summary_markdown instead. 2617 // 2618 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 2619 SummaryHtml string `protobuf:"bytes,4,opt,name=summary_html,json=summaryHtml,proto3" json:"summary_html,omitempty"` 2620 // The agent's resolved CIPD ${platform} (e.g. "linux-amd64", 2621 // "windows-386", etc.). 2622 // 2623 // This is trivial for bbagent to calculate (unlike trying to embed 2624 // its cipd package version inside or along with the executable). 2625 // Buildbucket is doing a full package -> instance ID resolution at 2626 // CreateBuild time anyway, so Agent.Source.resolved_instances 2627 // will give the mapping from `agent_platform` to a precise instance_id 2628 // which was used. 2629 AgentPlatform string `protobuf:"bytes,5,opt,name=agent_platform,json=agentPlatform,proto3" json:"agent_platform,omitempty"` 2630 // Total installation duration for all input data. Currently only record 2631 // cipd packages installation time. 2632 TotalDuration *durationpb.Duration `protobuf:"bytes,6,opt,name=total_duration,json=totalDuration,proto3" json:"total_duration,omitempty"` 2633 SummaryMarkdown string `protobuf:"bytes,7,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"` 2634 } 2635 2636 func (x *BuildInfra_Buildbucket_Agent_Output) Reset() { 2637 *x = BuildInfra_Buildbucket_Agent_Output{} 2638 if protoimpl.UnsafeEnabled { 2639 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[28] 2640 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2641 ms.StoreMessageInfo(mi) 2642 } 2643 } 2644 2645 func (x *BuildInfra_Buildbucket_Agent_Output) String() string { 2646 return protoimpl.X.MessageStringOf(x) 2647 } 2648 2649 func (*BuildInfra_Buildbucket_Agent_Output) ProtoMessage() {} 2650 2651 func (x *BuildInfra_Buildbucket_Agent_Output) ProtoReflect() protoreflect.Message { 2652 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[28] 2653 if protoimpl.UnsafeEnabled && x != nil { 2654 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2655 if ms.LoadMessageInfo() == nil { 2656 ms.StoreMessageInfo(mi) 2657 } 2658 return ms 2659 } 2660 return mi.MessageOf(x) 2661 } 2662 2663 // Deprecated: Use BuildInfra_Buildbucket_Agent_Output.ProtoReflect.Descriptor instead. 2664 func (*BuildInfra_Buildbucket_Agent_Output) Descriptor() ([]byte, []int) { 2665 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 2} 2666 } 2667 2668 func (x *BuildInfra_Buildbucket_Agent_Output) GetResolvedData() map[string]*ResolvedDataRef { 2669 if x != nil { 2670 return x.ResolvedData 2671 } 2672 return nil 2673 } 2674 2675 func (x *BuildInfra_Buildbucket_Agent_Output) GetStatus() Status { 2676 if x != nil { 2677 return x.Status 2678 } 2679 return Status_STATUS_UNSPECIFIED 2680 } 2681 2682 func (x *BuildInfra_Buildbucket_Agent_Output) GetStatusDetails() *StatusDetails { 2683 if x != nil { 2684 return x.StatusDetails 2685 } 2686 return nil 2687 } 2688 2689 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto. 2690 func (x *BuildInfra_Buildbucket_Agent_Output) GetSummaryHtml() string { 2691 if x != nil { 2692 return x.SummaryHtml 2693 } 2694 return "" 2695 } 2696 2697 func (x *BuildInfra_Buildbucket_Agent_Output) GetAgentPlatform() string { 2698 if x != nil { 2699 return x.AgentPlatform 2700 } 2701 return "" 2702 } 2703 2704 func (x *BuildInfra_Buildbucket_Agent_Output) GetTotalDuration() *durationpb.Duration { 2705 if x != nil { 2706 return x.TotalDuration 2707 } 2708 return nil 2709 } 2710 2711 func (x *BuildInfra_Buildbucket_Agent_Output) GetSummaryMarkdown() string { 2712 if x != nil { 2713 return x.SummaryMarkdown 2714 } 2715 return "" 2716 } 2717 2718 type BuildInfra_Buildbucket_Agent_Source_CIPD struct { 2719 state protoimpl.MessageState 2720 sizeCache protoimpl.SizeCache 2721 unknownFields protoimpl.UnknownFields 2722 2723 // The CIPD package to use for the agent. 2724 // 2725 // Must end in "/${platform}" with no other CIPD variables. 2726 // 2727 // If using an experimental agent binary, please make sure the package 2728 // prefix has been configured here - 2729 // https://chrome-internal.googlesource.com/infradata/config/+/refs/heads/main/configs/chrome-infra-packages/bootstrap.cfg 2730 Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"` 2731 // The CIPD version to use for the agent. 2732 Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` 2733 // The CIPD server to use. 2734 Server string `protobuf:"bytes,3,opt,name=server,proto3" json:"server,omitempty"` 2735 // maps ${platform} -> instance_id for resolved agent packages. 2736 // 2737 // Will be overwritten at CreateBuild time, should be left empty 2738 // when creating a new Build. 2739 ResolvedInstances map[string]string `protobuf:"bytes,4,rep,name=resolved_instances,json=resolvedInstances,proto3" json:"resolved_instances,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 2740 } 2741 2742 func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) Reset() { 2743 *x = BuildInfra_Buildbucket_Agent_Source_CIPD{} 2744 if protoimpl.UnsafeEnabled { 2745 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[30] 2746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2747 ms.StoreMessageInfo(mi) 2748 } 2749 } 2750 2751 func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) String() string { 2752 return protoimpl.X.MessageStringOf(x) 2753 } 2754 2755 func (*BuildInfra_Buildbucket_Agent_Source_CIPD) ProtoMessage() {} 2756 2757 func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) ProtoReflect() protoreflect.Message { 2758 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[30] 2759 if protoimpl.UnsafeEnabled && x != nil { 2760 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2761 if ms.LoadMessageInfo() == nil { 2762 ms.StoreMessageInfo(mi) 2763 } 2764 return ms 2765 } 2766 return mi.MessageOf(x) 2767 } 2768 2769 // Deprecated: Use BuildInfra_Buildbucket_Agent_Source_CIPD.ProtoReflect.Descriptor instead. 2770 func (*BuildInfra_Buildbucket_Agent_Source_CIPD) Descriptor() ([]byte, []int) { 2771 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 0, 0} 2772 } 2773 2774 func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetPackage() string { 2775 if x != nil { 2776 return x.Package 2777 } 2778 return "" 2779 } 2780 2781 func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetVersion() string { 2782 if x != nil { 2783 return x.Version 2784 } 2785 return "" 2786 } 2787 2788 func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetServer() string { 2789 if x != nil { 2790 return x.Server 2791 } 2792 return "" 2793 } 2794 2795 func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetResolvedInstances() map[string]string { 2796 if x != nil { 2797 return x.ResolvedInstances 2798 } 2799 return nil 2800 } 2801 2802 // Describes a cache directory persisted on a bot. 2803 // 2804 // If a build requested a cache, the cache directory is available on build 2805 // startup. If the cache was present on the bot, the directory contains 2806 // files from the previous run on that bot. 2807 // The build can read/write to the cache directory while it runs. 2808 // After build completes, the cache directory is persisted. 2809 // The next time another build requests the same cache and runs on the same 2810 // bot, the files will still be there (unless the cache was evicted, 2811 // perhaps due to disk space reasons). 2812 // 2813 // One bot can keep multiple caches at the same time and one build can request 2814 // multiple different caches. 2815 // A cache is identified by its name and mapped to a path. 2816 // 2817 // If the bot is running out of space, caches are evicted in LRU manner 2818 // before the next build on this bot starts. 2819 // 2820 // Builder cache. 2821 // 2822 // Buildbucket implicitly declares cache 2823 // 2824 // {"name": "<hash(project/bucket/builder)>", "path": "builder"}. 2825 // 2826 // This means that any LUCI builder has a "personal disk space" on the bot. 2827 // Builder cache is often a good start before customizing caching. 2828 // In recipes, it is available at api.buildbucket.builder_cache_path. 2829 type BuildInfra_Swarming_CacheEntry struct { 2830 state protoimpl.MessageState 2831 sizeCache protoimpl.SizeCache 2832 unknownFields protoimpl.UnknownFields 2833 2834 // Identifier of the cache. Required. Length is limited to 128. 2835 // Must be unique in the build. 2836 // 2837 // If the pool of swarming bots is shared among multiple LUCI projects and 2838 // projects use same cache name, the cache will be shared across projects. 2839 // To avoid affecting and being affected by other projects, prefix the 2840 // cache name with something project-specific, e.g. "v8-". 2841 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2842 // Relative path where the cache in mapped into. Required. 2843 // 2844 // Must use POSIX format (forward slashes). 2845 // In most cases, it does not need slashes at all. 2846 // 2847 // In recipes, use api.path['cache'].join(path) to get absolute path. 2848 // 2849 // Must be unique in the build. 2850 Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` 2851 // Duration to wait for a bot with a warm cache to pick up the 2852 // task, before falling back to a bot with a cold (non-existent) cache. 2853 // 2854 // The default is 0, which means that no preference will be chosen for a 2855 // bot with this or without this cache, and a bot without this cache may 2856 // be chosen instead. 2857 // 2858 // If no bot has this cache warm, the task will skip this wait and will 2859 // immediately fallback to a cold cache request. 2860 // 2861 // The value must be multiples of 60 seconds. 2862 WaitForWarmCache *durationpb.Duration `protobuf:"bytes,3,opt,name=wait_for_warm_cache,json=waitForWarmCache,proto3" json:"wait_for_warm_cache,omitempty"` 2863 // Environment variable with this name will be set to the path to the cache 2864 // directory. 2865 EnvVar string `protobuf:"bytes,4,opt,name=env_var,json=envVar,proto3" json:"env_var,omitempty"` 2866 } 2867 2868 func (x *BuildInfra_Swarming_CacheEntry) Reset() { 2869 *x = BuildInfra_Swarming_CacheEntry{} 2870 if protoimpl.UnsafeEnabled { 2871 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[35] 2872 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2873 ms.StoreMessageInfo(mi) 2874 } 2875 } 2876 2877 func (x *BuildInfra_Swarming_CacheEntry) String() string { 2878 return protoimpl.X.MessageStringOf(x) 2879 } 2880 2881 func (*BuildInfra_Swarming_CacheEntry) ProtoMessage() {} 2882 2883 func (x *BuildInfra_Swarming_CacheEntry) ProtoReflect() protoreflect.Message { 2884 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[35] 2885 if protoimpl.UnsafeEnabled && x != nil { 2886 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2887 if ms.LoadMessageInfo() == nil { 2888 ms.StoreMessageInfo(mi) 2889 } 2890 return ms 2891 } 2892 return mi.MessageOf(x) 2893 } 2894 2895 // Deprecated: Use BuildInfra_Swarming_CacheEntry.ProtoReflect.Descriptor instead. 2896 func (*BuildInfra_Swarming_CacheEntry) Descriptor() ([]byte, []int) { 2897 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 1, 0} 2898 } 2899 2900 func (x *BuildInfra_Swarming_CacheEntry) GetName() string { 2901 if x != nil { 2902 return x.Name 2903 } 2904 return "" 2905 } 2906 2907 func (x *BuildInfra_Swarming_CacheEntry) GetPath() string { 2908 if x != nil { 2909 return x.Path 2910 } 2911 return "" 2912 } 2913 2914 func (x *BuildInfra_Swarming_CacheEntry) GetWaitForWarmCache() *durationpb.Duration { 2915 if x != nil { 2916 return x.WaitForWarmCache 2917 } 2918 return nil 2919 } 2920 2921 func (x *BuildInfra_Swarming_CacheEntry) GetEnvVar() string { 2922 if x != nil { 2923 return x.EnvVar 2924 } 2925 return "" 2926 } 2927 2928 // BBAgent-specific input. 2929 type BuildInfra_BBAgent_Input struct { 2930 state protoimpl.MessageState 2931 sizeCache protoimpl.SizeCache 2932 unknownFields protoimpl.UnknownFields 2933 2934 CipdPackages []*BuildInfra_BBAgent_Input_CIPDPackage `protobuf:"bytes,1,rep,name=cipd_packages,json=cipdPackages,proto3" json:"cipd_packages,omitempty"` 2935 } 2936 2937 func (x *BuildInfra_BBAgent_Input) Reset() { 2938 *x = BuildInfra_BBAgent_Input{} 2939 if protoimpl.UnsafeEnabled { 2940 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[36] 2941 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2942 ms.StoreMessageInfo(mi) 2943 } 2944 } 2945 2946 func (x *BuildInfra_BBAgent_Input) String() string { 2947 return protoimpl.X.MessageStringOf(x) 2948 } 2949 2950 func (*BuildInfra_BBAgent_Input) ProtoMessage() {} 2951 2952 func (x *BuildInfra_BBAgent_Input) ProtoReflect() protoreflect.Message { 2953 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[36] 2954 if protoimpl.UnsafeEnabled && x != nil { 2955 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2956 if ms.LoadMessageInfo() == nil { 2957 ms.StoreMessageInfo(mi) 2958 } 2959 return ms 2960 } 2961 return mi.MessageOf(x) 2962 } 2963 2964 // Deprecated: Use BuildInfra_BBAgent_Input.ProtoReflect.Descriptor instead. 2965 func (*BuildInfra_BBAgent_Input) Descriptor() ([]byte, []int) { 2966 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 6, 0} 2967 } 2968 2969 func (x *BuildInfra_BBAgent_Input) GetCipdPackages() []*BuildInfra_BBAgent_Input_CIPDPackage { 2970 if x != nil { 2971 return x.CipdPackages 2972 } 2973 return nil 2974 } 2975 2976 // CIPD Packages to make available for this build. 2977 type BuildInfra_BBAgent_Input_CIPDPackage struct { 2978 state protoimpl.MessageState 2979 sizeCache protoimpl.SizeCache 2980 unknownFields protoimpl.UnknownFields 2981 2982 // Name of this CIPD package. 2983 // 2984 // Required. 2985 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2986 // CIPD package version. 2987 // 2988 // Required. 2989 Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` 2990 // CIPD server to fetch this package from. 2991 // 2992 // Required. 2993 Server string `protobuf:"bytes,3,opt,name=server,proto3" json:"server,omitempty"` 2994 // Path where this CIPD package should be installed. 2995 // 2996 // Required. 2997 Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` 2998 } 2999 3000 func (x *BuildInfra_BBAgent_Input_CIPDPackage) Reset() { 3001 *x = BuildInfra_BBAgent_Input_CIPDPackage{} 3002 if protoimpl.UnsafeEnabled { 3003 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[37] 3004 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3005 ms.StoreMessageInfo(mi) 3006 } 3007 } 3008 3009 func (x *BuildInfra_BBAgent_Input_CIPDPackage) String() string { 3010 return protoimpl.X.MessageStringOf(x) 3011 } 3012 3013 func (*BuildInfra_BBAgent_Input_CIPDPackage) ProtoMessage() {} 3014 3015 func (x *BuildInfra_BBAgent_Input_CIPDPackage) ProtoReflect() protoreflect.Message { 3016 mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[37] 3017 if protoimpl.UnsafeEnabled && x != nil { 3018 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3019 if ms.LoadMessageInfo() == nil { 3020 ms.StoreMessageInfo(mi) 3021 } 3022 return ms 3023 } 3024 return mi.MessageOf(x) 3025 } 3026 3027 // Deprecated: Use BuildInfra_BBAgent_Input_CIPDPackage.ProtoReflect.Descriptor instead. 3028 func (*BuildInfra_BBAgent_Input_CIPDPackage) Descriptor() ([]byte, []int) { 3029 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 6, 0, 0} 3030 } 3031 3032 func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetName() string { 3033 if x != nil { 3034 return x.Name 3035 } 3036 return "" 3037 } 3038 3039 func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetVersion() string { 3040 if x != nil { 3041 return x.Version 3042 } 3043 return "" 3044 } 3045 3046 func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetServer() string { 3047 if x != nil { 3048 return x.Server 3049 } 3050 return "" 3051 } 3052 3053 func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetPath() string { 3054 if x != nil { 3055 return x.Path 3056 } 3057 return "" 3058 } 3059 3060 var File_go_chromium_org_luci_buildbucket_proto_build_proto protoreflect.FileDescriptor 3061 3062 var file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc = []byte{ 3063 0x0a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 3064 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 3065 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x70, 3066 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3067 0x74, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 3068 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 3069 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3070 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 3071 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 3072 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 3073 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 3074 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 3075 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x43, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 3076 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 3077 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 3078 0x6c, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 3079 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 3080 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 3081 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 3082 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 3083 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 3084 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 3085 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 3086 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f, 0x2e, 3087 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 3088 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 3089 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 3090 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 3091 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 3092 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 3093 0x74, 0x65, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x2e, 0x63, 0x68, 3094 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 3095 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 3096 0x6f, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x37, 0x67, 0x6f, 3097 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 3098 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 3099 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 3100 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x13, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 3101 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x08, 0xe0, 0x41, 0x03, 3102 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x62, 0x75, 0x69, 3103 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 3104 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 3105 0x64, 0x65, 0x72, 0x49, 0x44, 0x42, 0x0b, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0xb8, 0xce, 0xbc, 3106 0x03, 0x02, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x0c, 0x62, 3107 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x22, 0x20, 0x01, 0x28, 3108 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 3109 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 3110 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 3111 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 3112 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02, 3113 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 3114 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 3115 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x19, 0x0a, 0x08, 3116 0x76, 0x69, 0x65, 0x77, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 3117 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 3118 0x6c, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 3119 0x03, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x12, 0x45, 0x0a, 3120 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 3121 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 3122 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 3123 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 3124 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 3125 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3126 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 3127 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x09, 3128 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 3129 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 3130 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 3131 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 3132 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0b, 0x75, 0x70, 3133 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 3134 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 3135 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xe0, 0x41, 0x03, 3136 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 3137 0x65, 0x12, 0x45, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 3138 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 3139 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 3140 0x6d, 0x70, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x0a, 0x63, 0x61, 3141 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 3142 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 3143 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 3144 0x42, 0x0b, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x06, 0x73, 3145 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 3146 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 3147 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x0f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 3148 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3b, 0x0a, 0x15, 0x63, 0x61, 0x6e, 0x63, 3149 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 3150 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 3151 0x14, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 3152 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 3153 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 3154 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 3155 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 3156 0x6c, 0x12, 0x51, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 3157 0x69, 0x6c, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 3158 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 3159 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x0b, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 3160 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 3161 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0f, 0x20, 3162 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3163 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 3164 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 3165 0x3c, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 3166 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 3167 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x06, 0x8a, 3168 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 3169 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 3170 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 3171 0x65, 0x70, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 3172 0x73, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 3173 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 3174 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x42, 0x06, 0x8a, 0xc3, 3175 0x1a, 0x02, 0x08, 0x02, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x12, 0x2e, 0x0a, 0x04, 0x74, 3176 0x61, 0x67, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 3177 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 3178 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x65, 3179 0x78, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 3180 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 3181 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x03, 0x65, 0x78, 3182 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 3183 0x08, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x12, 0x73, 0x63, 0x68, 3184 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 3185 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 3186 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3187 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 3188 0x6f, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 3189 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 3190 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3191 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 3192 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 3193 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 3194 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 3195 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, 3196 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x61, 0x69, 3197 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x1c, 3198 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, 0x70, 3199 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 3200 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 3201 0x08, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x4f, 0x75, 0x74, 3202 0x6c, 0x69, 0x76, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x0c, 0x61, 0x6e, 3203 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x03, 3204 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x0b, 0x61, 0x6e, 0x63, 0x65, 3205 0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 3206 0x61, 0x62, 0x6c, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 3207 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 3208 0x61, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x9f, 3209 0x02, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 3210 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 3211 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 3212 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 3213 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 3214 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 3215 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 3216 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 3217 0x0d, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x4a, 3218 0x0a, 0x0e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 3219 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3220 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 3221 0x61, 0x6e, 0x67, 0x65, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x0d, 0x67, 0x65, 0x72, 3222 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 3223 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 3224 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x20, 3225 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 3226 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 3227 0x1a, 0xfe, 0x02, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x70, 3228 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 3229 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 3230 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 3231 0x74, 0x69, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 3232 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 3233 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 3234 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x67, 0x69, 0x74, 3235 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x6f, 3236 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 3237 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 3238 0x6f, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 3239 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3240 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 3241 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 3242 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 3243 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 3244 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 3245 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 3246 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x68, 0x74, 0x6d, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 3247 0x02, 0x18, 0x01, 0x52, 0x0b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x74, 0x6d, 0x6c, 3248 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 3249 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x6d, 0x6d, 3250 0x61, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x4a, 0x04, 0x08, 0x04, 0x10, 3251 0x05, 0x1a, 0x2f, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 3252 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 3253 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 3254 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x22, 0xf3, 3255 0x03, 0x0a, 0x0c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x12, 3256 0x34, 0x0a, 0x03, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 3257 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 3258 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x43, 0x41, 0x53, 0x48, 0x00, 3259 0x52, 0x03, 0x63, 0x61, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x69, 0x70, 0x64, 0x18, 0x02, 0x20, 3260 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3261 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 3262 0x66, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x48, 0x00, 0x52, 0x04, 0x63, 0x69, 0x70, 0x64, 0x12, 0x17, 3263 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 3264 0x06, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x1a, 0xa6, 0x01, 0x0a, 0x03, 0x43, 0x41, 0x53, 0x12, 3265 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 3266 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 3267 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 3268 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 3269 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 3270 0x2e, 0x43, 0x41, 0x53, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67, 3271 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 3272 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 3273 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 3274 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 3275 0x1a, 0x9e, 0x01, 0x0a, 0x04, 0x43, 0x49, 0x50, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 3276 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 3277 0x72, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 3278 0x32, 0x29, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 3279 0x32, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x43, 3280 0x49, 0x50, 0x44, 0x2e, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x73, 0x70, 0x65, 3281 0x63, 0x73, 0x1a, 0x3d, 0x0a, 0x07, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a, 3282 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 3283 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 3284 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 3285 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04, 3286 0x08, 0x04, 0x10, 0x05, 0x22, 0x8c, 0x05, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 3287 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x12, 0x37, 0x0a, 0x03, 0x63, 0x61, 0x73, 0x18, 3288 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 3289 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 3290 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x43, 0x41, 0x53, 0x48, 0x00, 0x52, 0x03, 0x63, 0x61, 3291 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x63, 0x69, 0x70, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 3292 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 3293 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 3294 0x2e, 0x43, 0x49, 0x50, 0x44, 0x48, 0x00, 0x52, 0x04, 0x63, 0x69, 0x70, 0x64, 0x1a, 0x90, 0x01, 3295 0x0a, 0x06, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x0e, 0x66, 0x65, 0x74, 0x63, 3296 0x68, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 3297 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 3298 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x65, 0x74, 3299 0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x10, 0x69, 0x6e, 3300 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 3301 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 3302 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 3303 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3304 0x1a, 0x45, 0x0a, 0x03, 0x43, 0x41, 0x53, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 3305 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 3306 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 3307 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 3308 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x1a, 0x9c, 0x02, 0x0a, 0x04, 0x43, 0x49, 0x50, 0x44, 3309 0x12, 0x42, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 3310 0x2c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 3311 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 3312 0x2e, 0x43, 0x49, 0x50, 0x44, 0x2e, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x73, 3313 0x70, 0x65, 0x63, 0x73, 0x1a, 0xcf, 0x01, 0x0a, 0x07, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63, 3314 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 3315 0x08, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 3316 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 3317 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 3318 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 3319 0x0a, 0x0a, 0x77, 0x61, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 3320 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 3321 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x09, 0x77, 0x61, 0x73, 3322 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 3323 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3324 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 3325 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x06, 3326 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 3327 0x79, 0x70, 0x65, 0x22, 0xda, 0x29, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 3328 0x72, 0x61, 0x12, 0x50, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3329 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 3330 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 3331 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x42, 3332 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3333 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 3334 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3335 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 3336 0x72, 0x61, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, 0x77, 0x61, 3337 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x64, 0x6f, 0x67, 0x18, 3338 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 3339 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 3340 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x6f, 0x67, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 3341 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x64, 0x6f, 0x67, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x69, 3342 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 3343 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 3344 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x52, 0x06, 0x72, 0x65, 0x63, 3345 0x69, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x18, 3346 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 3347 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 3348 0x61, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 3349 0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x12, 0x3c, 0x0a, 0x07, 0x62, 3350 0x62, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 3351 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 3352 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x42, 0x41, 0x67, 0x65, 0x6e, 0x74, 3353 0x52, 0x07, 0x62, 0x62, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x07, 0x62, 0x61, 0x63, 3354 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 3355 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 3356 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 3357 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x03, 0x6c, 0x65, 0x64, 0x18, 0x08, 3358 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 3359 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 3360 0x2e, 0x4c, 0x65, 0x64, 0x52, 0x03, 0x6c, 0x65, 0x64, 0x1a, 0xa5, 0x18, 0x0a, 0x0b, 0x42, 0x75, 3361 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x65, 0x72, 3362 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x76, 0x69, 3363 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 3364 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 3365 0x6e, 0x12, 0x4a, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 3366 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 3367 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 3368 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 3369 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x55, 0x0a, 3370 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 3371 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 3372 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 3373 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 3374 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 3375 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 3376 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 3377 0x12, 0x6c, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 3378 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x62, 3379 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 3380 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3381 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 3382 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x65, 0x78, 0x70, 3383 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x6a, 3384 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 3385 0x6c, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 3386 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 3387 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 3388 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 3389 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x61, 0x67, 0x65, 0x6e, 0x74, 3390 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x4a, 0x0a, 0x05, 0x61, 0x67, 3391 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 3392 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 3393 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3394 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 3395 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 3396 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x5f, 0x68, 0x6f, 3397 0x73, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 3398 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x48, 0x6f, 0x73, 0x74, 3399 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 3400 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 3401 0x6d, 0x62, 0x65, 0x72, 0x1a, 0xc4, 0x0f, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x50, 3402 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 3403 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 3404 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 3405 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 3406 0x74, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 3407 0x12, 0x53, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 3408 0x32, 0x33, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 3409 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 3410 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 3411 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x06, 0x6f, 3412 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x53, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 3413 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 3414 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 3415 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 3416 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 3417 0x08, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x70, 0x75, 3418 0x72, 0x70, 0x6f, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x62, 3419 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 3420 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3421 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x75, 0x72, 0x70, 0x6f, 3422 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 3423 0x65, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 3424 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 3425 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 3426 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x69, 0x70, 0x64, 0x43, 3427 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x63, 0x69, 3428 0x70, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 3429 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 3430 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 3431 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 3432 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x1a, 0x86, 0x03, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 3433 0x65, 0x12, 0x4e, 0x0a, 0x04, 0x63, 0x69, 0x70, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 3434 0x38, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 3435 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 3436 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x6f, 3437 0x75, 0x72, 0x63, 0x65, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x48, 0x00, 0x52, 0x04, 0x63, 0x69, 0x70, 3438 0x64, 0x1a, 0x9e, 0x02, 0x0a, 0x04, 0x43, 0x49, 0x50, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 3439 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 3440 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 3441 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 3442 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 3443 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x83, 0x01, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x6c, 3444 0x76, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 3445 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3446 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 3447 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 3448 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x2e, 0x52, 0x65, 3449 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45, 3450 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x6c, 3451 0x76, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x44, 0x0a, 0x16, 3452 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 3453 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 3454 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 3455 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 3456 0x38, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 3457 0xf2, 0x02, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x50, 0x0a, 0x04, 0x64, 0x61, 0x74, 3458 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 3459 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 3460 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 3461 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 3462 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x0b, 0x63, 3463 0x69, 0x70, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 3464 0x32, 0x42, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 3465 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 3466 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49, 3467 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 3468 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 3469 0x1a, 0x55, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 3470 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 3471 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 3472 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 3473 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 3474 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x0f, 0x43, 0x69, 0x70, 0x64, 0x53, 3475 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 3476 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 3477 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 3478 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x70, 3479 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 3480 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x87, 0x04, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 3481 0x6a, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 3482 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3483 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 3484 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 3485 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x6f, 3486 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x72, 3487 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x06, 0x73, 3488 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x75, 3489 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 3490 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x73, 3491 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 3492 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3493 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 3494 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 3495 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x68, 0x74, 0x6d, 3496 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x73, 0x75, 0x6d, 3497 0x6d, 0x61, 0x72, 0x79, 0x48, 0x74, 0x6d, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 3498 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 3499 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 3500 0x40, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 3501 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 3502 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 3503 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 3504 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x72, 3505 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x6d, 3506 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x60, 0x0a, 0x11, 3507 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 3508 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 3509 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 3510 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 3511 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 3512 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x71, 3513 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 3514 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 3515 0x79, 0x12, 0x4a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 3516 0x32, 0x34, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 3517 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 3518 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 3519 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 3520 0x01, 0x22, 0x58, 0x0a, 0x07, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x13, 3521 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 3522 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 3523 0x5f, 0x45, 0x58, 0x45, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1b, 3524 0x0a, 0x17, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x42, 0x41, 0x47, 0x45, 0x4e, 3525 0x54, 0x5f, 0x55, 0x54, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x02, 0x1a, 0x7d, 0x0a, 0x16, 0x45, 3526 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 3527 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 3528 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 3529 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3530 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 3531 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x45, 3532 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 3533 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x14, 0x41, 0x67, 3534 0x65, 0x6e, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 3535 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 3536 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 3537 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3538 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 3539 0x61, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 3540 0xe9, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 3541 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 3542 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 3543 0x00, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 3544 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x44, 0x45, 3545 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x45, 0x52, 3546 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x55, 0x49, 3547 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x02, 0x12, 0x24, 0x0a, 3548 0x20, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 3549 0x4f, 0x4e, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55, 3550 0x4d, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 3551 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 3552 0x45, 0x44, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 3553 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 3554 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x04, 0x10, 3555 0x05, 0x1a, 0xb0, 0x04, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x22, 3556 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3557 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 3558 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 3559 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 3560 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 3561 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 3562 0x75, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x65, 0x72, 3563 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 3564 0x28, 0x09, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 3565 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 3566 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 3567 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 3568 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 3569 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 3570 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 3571 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 3572 0x41, 0x0a, 0x0e, 0x62, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 3573 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 3574 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 3575 0x61, 0x69, 0x72, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 3576 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 3577 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 3578 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x53, 3579 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 3580 0x72, 0x79, 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x1a, 0x97, 0x01, 0x0a, 0x0a, 0x43, 3581 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 3582 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 3583 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 3584 0x68, 0x12, 0x48, 0x0a, 0x13, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x77, 0x61, 3585 0x72, 0x6d, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 3586 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 3587 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x77, 0x61, 0x69, 0x74, 0x46, 3588 0x6f, 0x72, 0x57, 0x61, 0x72, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 3589 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 3590 0x76, 0x56, 0x61, 0x72, 0x1a, 0x5e, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x44, 0x6f, 0x67, 0x12, 0x22, 3591 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3592 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 3593 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 3594 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 3595 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 3596 0x65, 0x66, 0x69, 0x78, 0x1a, 0x3f, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x12, 0x21, 3597 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 3598 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 3599 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 3600 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xf7, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 3601 0x44, 0x42, 0x12, 0x22, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 3602 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x08, 0x68, 0x6f, 3603 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 3604 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 3605 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 3606 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 3607 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x62, 0x71, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 3608 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 3609 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 3610 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x62, 0x71, 0x45, 0x78, 0x70, 3611 0x6f, 0x72, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 3612 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 3613 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 3614 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 3615 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 3616 0x2e, 0x0a, 0x03, 0x4c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 3617 0x65, 0x64, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 3618 0x0e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a, 3619 0x9a, 0x03, 0x0a, 0x07, 0x42, 0x42, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 3620 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 3621 0x09, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b, 3622 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 3623 0x09, 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x72, 0x12, 0x3d, 0x0a, 0x19, 0x6b, 3624 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x67, 0x65, 0x72, 0x72, 3625 0x69, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 3626 0x18, 0x01, 0x52, 0x16, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 3627 0x65, 0x72, 0x72, 0x69, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x6e, 3628 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x69, 0x6c, 3629 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 3630 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x42, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 3631 0x70, 0x75, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0xcb, 3632 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x69, 0x70, 0x64, 3633 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 3634 0x34, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 3635 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x42, 0x41, 0x67, 3636 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x50, 0x61, 3637 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 3638 0x67, 0x65, 0x73, 0x1a, 0x67, 0x0a, 0x0b, 0x43, 0x49, 0x50, 0x44, 0x50, 0x61, 0x63, 0x6b, 0x61, 3639 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 3640 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 3641 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 3642 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 3643 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 3644 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x1a, 0x81, 0x02, 0x0a, 3645 0x07, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 3646 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 3647 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 3648 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x61, 0x73, 3649 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 3650 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 3651 0x61, 0x73, 0x6b, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 3652 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 3653 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 3654 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 3655 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 3656 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 3657 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 3658 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 3659 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 3660 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 3661 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 3662 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 3663 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x62, 0x75, 0x69, 0x6c, 0x64, 3664 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 3665 } 3666 3667 var ( 3668 file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescOnce sync.Once 3669 file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc 3670 ) 3671 3672 func file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP() []byte { 3673 file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescOnce.Do(func() { 3674 file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData) 3675 }) 3676 return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData 3677 } 3678 3679 var file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 3680 var file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes = make([]protoimpl.MessageInfo, 38) 3681 var file_go_chromium_org_luci_buildbucket_proto_build_proto_goTypes = []interface{}{ 3682 (BuildInfra_Buildbucket_ExperimentReason)(0), // 0: buildbucket.v2.BuildInfra.Buildbucket.ExperimentReason 3683 (BuildInfra_Buildbucket_Agent_Purpose)(0), // 1: buildbucket.v2.BuildInfra.Buildbucket.Agent.Purpose 3684 (*Build)(nil), // 2: buildbucket.v2.Build 3685 (*InputDataRef)(nil), // 3: buildbucket.v2.InputDataRef 3686 (*ResolvedDataRef)(nil), // 4: buildbucket.v2.ResolvedDataRef 3687 (*BuildInfra)(nil), // 5: buildbucket.v2.BuildInfra 3688 (*Build_Input)(nil), // 6: buildbucket.v2.Build.Input 3689 (*Build_Output)(nil), // 7: buildbucket.v2.Build.Output 3690 (*Build_BuilderInfo)(nil), // 8: buildbucket.v2.Build.BuilderInfo 3691 (*InputDataRef_CAS)(nil), // 9: buildbucket.v2.InputDataRef.CAS 3692 (*InputDataRef_CIPD)(nil), // 10: buildbucket.v2.InputDataRef.CIPD 3693 (*InputDataRef_CAS_Digest)(nil), // 11: buildbucket.v2.InputDataRef.CAS.Digest 3694 (*InputDataRef_CIPD_PkgSpec)(nil), // 12: buildbucket.v2.InputDataRef.CIPD.PkgSpec 3695 (*ResolvedDataRef_Timing)(nil), // 13: buildbucket.v2.ResolvedDataRef.Timing 3696 (*ResolvedDataRef_CAS)(nil), // 14: buildbucket.v2.ResolvedDataRef.CAS 3697 (*ResolvedDataRef_CIPD)(nil), // 15: buildbucket.v2.ResolvedDataRef.CIPD 3698 (*ResolvedDataRef_CIPD_PkgSpec)(nil), // 16: buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec 3699 (*BuildInfra_Buildbucket)(nil), // 17: buildbucket.v2.BuildInfra.Buildbucket 3700 (*BuildInfra_Swarming)(nil), // 18: buildbucket.v2.BuildInfra.Swarming 3701 (*BuildInfra_LogDog)(nil), // 19: buildbucket.v2.BuildInfra.LogDog 3702 (*BuildInfra_Recipe)(nil), // 20: buildbucket.v2.BuildInfra.Recipe 3703 (*BuildInfra_ResultDB)(nil), // 21: buildbucket.v2.BuildInfra.ResultDB 3704 (*BuildInfra_Led)(nil), // 22: buildbucket.v2.BuildInfra.Led 3705 (*BuildInfra_BBAgent)(nil), // 23: buildbucket.v2.BuildInfra.BBAgent 3706 (*BuildInfra_Backend)(nil), // 24: buildbucket.v2.BuildInfra.Backend 3707 (*BuildInfra_Buildbucket_Agent)(nil), // 25: buildbucket.v2.BuildInfra.Buildbucket.Agent 3708 nil, // 26: buildbucket.v2.BuildInfra.Buildbucket.ExperimentReasonsEntry 3709 nil, // 27: buildbucket.v2.BuildInfra.Buildbucket.AgentExecutableEntry 3710 (*BuildInfra_Buildbucket_Agent_Source)(nil), // 28: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source 3711 (*BuildInfra_Buildbucket_Agent_Input)(nil), // 29: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input 3712 (*BuildInfra_Buildbucket_Agent_Output)(nil), // 30: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output 3713 nil, // 31: buildbucket.v2.BuildInfra.Buildbucket.Agent.PurposesEntry 3714 (*BuildInfra_Buildbucket_Agent_Source_CIPD)(nil), // 32: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD 3715 nil, // 33: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD.ResolvedInstancesEntry 3716 nil, // 34: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.DataEntry 3717 nil, // 35: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.CipdSourceEntry 3718 nil, // 36: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.ResolvedDataEntry 3719 (*BuildInfra_Swarming_CacheEntry)(nil), // 37: buildbucket.v2.BuildInfra.Swarming.CacheEntry 3720 (*BuildInfra_BBAgent_Input)(nil), // 38: buildbucket.v2.BuildInfra.BBAgent.Input 3721 (*BuildInfra_BBAgent_Input_CIPDPackage)(nil), // 39: buildbucket.v2.BuildInfra.BBAgent.Input.CIPDPackage 3722 (*BuilderID)(nil), // 40: buildbucket.v2.BuilderID 3723 (*timestamppb.Timestamp)(nil), // 41: google.protobuf.Timestamp 3724 (Status)(0), // 42: buildbucket.v2.Status 3725 (Trinary)(0), // 43: buildbucket.v2.Trinary 3726 (*StatusDetails)(nil), // 44: buildbucket.v2.StatusDetails 3727 (*Step)(nil), // 45: buildbucket.v2.Step 3728 (*StringPair)(nil), // 46: buildbucket.v2.StringPair 3729 (*Executable)(nil), // 47: buildbucket.v2.Executable 3730 (*durationpb.Duration)(nil), // 48: google.protobuf.Duration 3731 (*structpb.Struct)(nil), // 49: google.protobuf.Struct 3732 (*GitilesCommit)(nil), // 50: buildbucket.v2.GitilesCommit 3733 (*GerritChange)(nil), // 51: buildbucket.v2.GerritChange 3734 (*Log)(nil), // 52: buildbucket.v2.Log 3735 (*RequestedDimension)(nil), // 53: buildbucket.v2.RequestedDimension 3736 (*v1.BigQueryExport)(nil), // 54: luci.resultdb.v1.BigQueryExport 3737 (*v1.HistoryOptions)(nil), // 55: luci.resultdb.v1.HistoryOptions 3738 (*Task)(nil), // 56: buildbucket.v2.Task 3739 (*CacheEntry)(nil), // 57: buildbucket.v2.CacheEntry 3740 } 3741 var file_go_chromium_org_luci_buildbucket_proto_build_proto_depIdxs = []int32{ 3742 40, // 0: buildbucket.v2.Build.builder:type_name -> buildbucket.v2.BuilderID 3743 8, // 1: buildbucket.v2.Build.builder_info:type_name -> buildbucket.v2.Build.BuilderInfo 3744 41, // 2: buildbucket.v2.Build.create_time:type_name -> google.protobuf.Timestamp 3745 41, // 3: buildbucket.v2.Build.start_time:type_name -> google.protobuf.Timestamp 3746 41, // 4: buildbucket.v2.Build.end_time:type_name -> google.protobuf.Timestamp 3747 41, // 5: buildbucket.v2.Build.update_time:type_name -> google.protobuf.Timestamp 3748 41, // 6: buildbucket.v2.Build.cancel_time:type_name -> google.protobuf.Timestamp 3749 42, // 7: buildbucket.v2.Build.status:type_name -> buildbucket.v2.Status 3750 43, // 8: buildbucket.v2.Build.critical:type_name -> buildbucket.v2.Trinary 3751 44, // 9: buildbucket.v2.Build.status_details:type_name -> buildbucket.v2.StatusDetails 3752 6, // 10: buildbucket.v2.Build.input:type_name -> buildbucket.v2.Build.Input 3753 7, // 11: buildbucket.v2.Build.output:type_name -> buildbucket.v2.Build.Output 3754 45, // 12: buildbucket.v2.Build.steps:type_name -> buildbucket.v2.Step 3755 5, // 13: buildbucket.v2.Build.infra:type_name -> buildbucket.v2.BuildInfra 3756 46, // 14: buildbucket.v2.Build.tags:type_name -> buildbucket.v2.StringPair 3757 47, // 15: buildbucket.v2.Build.exe:type_name -> buildbucket.v2.Executable 3758 48, // 16: buildbucket.v2.Build.scheduling_timeout:type_name -> google.protobuf.Duration 3759 48, // 17: buildbucket.v2.Build.execution_timeout:type_name -> google.protobuf.Duration 3760 48, // 18: buildbucket.v2.Build.grace_period:type_name -> google.protobuf.Duration 3761 43, // 19: buildbucket.v2.Build.retriable:type_name -> buildbucket.v2.Trinary 3762 9, // 20: buildbucket.v2.InputDataRef.cas:type_name -> buildbucket.v2.InputDataRef.CAS 3763 10, // 21: buildbucket.v2.InputDataRef.cipd:type_name -> buildbucket.v2.InputDataRef.CIPD 3764 14, // 22: buildbucket.v2.ResolvedDataRef.cas:type_name -> buildbucket.v2.ResolvedDataRef.CAS 3765 15, // 23: buildbucket.v2.ResolvedDataRef.cipd:type_name -> buildbucket.v2.ResolvedDataRef.CIPD 3766 17, // 24: buildbucket.v2.BuildInfra.buildbucket:type_name -> buildbucket.v2.BuildInfra.Buildbucket 3767 18, // 25: buildbucket.v2.BuildInfra.swarming:type_name -> buildbucket.v2.BuildInfra.Swarming 3768 19, // 26: buildbucket.v2.BuildInfra.logdog:type_name -> buildbucket.v2.BuildInfra.LogDog 3769 20, // 27: buildbucket.v2.BuildInfra.recipe:type_name -> buildbucket.v2.BuildInfra.Recipe 3770 21, // 28: buildbucket.v2.BuildInfra.resultdb:type_name -> buildbucket.v2.BuildInfra.ResultDB 3771 23, // 29: buildbucket.v2.BuildInfra.bbagent:type_name -> buildbucket.v2.BuildInfra.BBAgent 3772 24, // 30: buildbucket.v2.BuildInfra.backend:type_name -> buildbucket.v2.BuildInfra.Backend 3773 22, // 31: buildbucket.v2.BuildInfra.led:type_name -> buildbucket.v2.BuildInfra.Led 3774 49, // 32: buildbucket.v2.Build.Input.properties:type_name -> google.protobuf.Struct 3775 50, // 33: buildbucket.v2.Build.Input.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit 3776 51, // 34: buildbucket.v2.Build.Input.gerrit_changes:type_name -> buildbucket.v2.GerritChange 3777 49, // 35: buildbucket.v2.Build.Output.properties:type_name -> google.protobuf.Struct 3778 50, // 36: buildbucket.v2.Build.Output.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit 3779 52, // 37: buildbucket.v2.Build.Output.logs:type_name -> buildbucket.v2.Log 3780 42, // 38: buildbucket.v2.Build.Output.status:type_name -> buildbucket.v2.Status 3781 44, // 39: buildbucket.v2.Build.Output.status_details:type_name -> buildbucket.v2.StatusDetails 3782 11, // 40: buildbucket.v2.InputDataRef.CAS.digest:type_name -> buildbucket.v2.InputDataRef.CAS.Digest 3783 12, // 41: buildbucket.v2.InputDataRef.CIPD.specs:type_name -> buildbucket.v2.InputDataRef.CIPD.PkgSpec 3784 48, // 42: buildbucket.v2.ResolvedDataRef.Timing.fetch_duration:type_name -> google.protobuf.Duration 3785 48, // 43: buildbucket.v2.ResolvedDataRef.Timing.install_duration:type_name -> google.protobuf.Duration 3786 13, // 44: buildbucket.v2.ResolvedDataRef.CAS.timing:type_name -> buildbucket.v2.ResolvedDataRef.Timing 3787 16, // 45: buildbucket.v2.ResolvedDataRef.CIPD.specs:type_name -> buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec 3788 43, // 46: buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec.was_cached:type_name -> buildbucket.v2.Trinary 3789 13, // 47: buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec.timing:type_name -> buildbucket.v2.ResolvedDataRef.Timing 3790 49, // 48: buildbucket.v2.BuildInfra.Buildbucket.requested_properties:type_name -> google.protobuf.Struct 3791 53, // 49: buildbucket.v2.BuildInfra.Buildbucket.requested_dimensions:type_name -> buildbucket.v2.RequestedDimension 3792 26, // 50: buildbucket.v2.BuildInfra.Buildbucket.experiment_reasons:type_name -> buildbucket.v2.BuildInfra.Buildbucket.ExperimentReasonsEntry 3793 27, // 51: buildbucket.v2.BuildInfra.Buildbucket.agent_executable:type_name -> buildbucket.v2.BuildInfra.Buildbucket.AgentExecutableEntry 3794 25, // 52: buildbucket.v2.BuildInfra.Buildbucket.agent:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent 3795 53, // 53: buildbucket.v2.BuildInfra.Swarming.task_dimensions:type_name -> buildbucket.v2.RequestedDimension 3796 46, // 54: buildbucket.v2.BuildInfra.Swarming.bot_dimensions:type_name -> buildbucket.v2.StringPair 3797 37, // 55: buildbucket.v2.BuildInfra.Swarming.caches:type_name -> buildbucket.v2.BuildInfra.Swarming.CacheEntry 3798 54, // 56: buildbucket.v2.BuildInfra.ResultDB.bq_exports:type_name -> luci.resultdb.v1.BigQueryExport 3799 55, // 57: buildbucket.v2.BuildInfra.ResultDB.history_options:type_name -> luci.resultdb.v1.HistoryOptions 3800 38, // 58: buildbucket.v2.BuildInfra.BBAgent.input:type_name -> buildbucket.v2.BuildInfra.BBAgent.Input 3801 49, // 59: buildbucket.v2.BuildInfra.Backend.config:type_name -> google.protobuf.Struct 3802 56, // 60: buildbucket.v2.BuildInfra.Backend.task:type_name -> buildbucket.v2.Task 3803 57, // 61: buildbucket.v2.BuildInfra.Backend.caches:type_name -> buildbucket.v2.CacheEntry 3804 53, // 62: buildbucket.v2.BuildInfra.Backend.task_dimensions:type_name -> buildbucket.v2.RequestedDimension 3805 29, // 63: buildbucket.v2.BuildInfra.Buildbucket.Agent.input:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Input 3806 30, // 64: buildbucket.v2.BuildInfra.Buildbucket.Agent.output:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Output 3807 28, // 65: buildbucket.v2.BuildInfra.Buildbucket.Agent.source:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Source 3808 31, // 66: buildbucket.v2.BuildInfra.Buildbucket.Agent.purposes:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.PurposesEntry 3809 57, // 67: buildbucket.v2.BuildInfra.Buildbucket.Agent.cipd_client_cache:type_name -> buildbucket.v2.CacheEntry 3810 57, // 68: buildbucket.v2.BuildInfra.Buildbucket.Agent.cipd_packages_cache:type_name -> buildbucket.v2.CacheEntry 3811 0, // 69: buildbucket.v2.BuildInfra.Buildbucket.ExperimentReasonsEntry.value:type_name -> buildbucket.v2.BuildInfra.Buildbucket.ExperimentReason 3812 4, // 70: buildbucket.v2.BuildInfra.Buildbucket.AgentExecutableEntry.value:type_name -> buildbucket.v2.ResolvedDataRef 3813 32, // 71: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.cipd:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD 3814 34, // 72: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.data:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.DataEntry 3815 35, // 73: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.cipd_source:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.CipdSourceEntry 3816 36, // 74: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.resolved_data:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.ResolvedDataEntry 3817 42, // 75: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.status:type_name -> buildbucket.v2.Status 3818 44, // 76: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.status_details:type_name -> buildbucket.v2.StatusDetails 3819 48, // 77: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.total_duration:type_name -> google.protobuf.Duration 3820 1, // 78: buildbucket.v2.BuildInfra.Buildbucket.Agent.PurposesEntry.value:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Purpose 3821 33, // 79: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD.resolved_instances:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD.ResolvedInstancesEntry 3822 3, // 80: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.DataEntry.value:type_name -> buildbucket.v2.InputDataRef 3823 3, // 81: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.CipdSourceEntry.value:type_name -> buildbucket.v2.InputDataRef 3824 4, // 82: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.ResolvedDataEntry.value:type_name -> buildbucket.v2.ResolvedDataRef 3825 48, // 83: buildbucket.v2.BuildInfra.Swarming.CacheEntry.wait_for_warm_cache:type_name -> google.protobuf.Duration 3826 39, // 84: buildbucket.v2.BuildInfra.BBAgent.Input.cipd_packages:type_name -> buildbucket.v2.BuildInfra.BBAgent.Input.CIPDPackage 3827 85, // [85:85] is the sub-list for method output_type 3828 85, // [85:85] is the sub-list for method input_type 3829 85, // [85:85] is the sub-list for extension type_name 3830 85, // [85:85] is the sub-list for extension extendee 3831 0, // [0:85] is the sub-list for field type_name 3832 } 3833 3834 func init() { file_go_chromium_org_luci_buildbucket_proto_build_proto_init() } 3835 func file_go_chromium_org_luci_buildbucket_proto_build_proto_init() { 3836 if File_go_chromium_org_luci_buildbucket_proto_build_proto != nil { 3837 return 3838 } 3839 file_go_chromium_org_luci_buildbucket_proto_build_field_visibility_proto_init() 3840 file_go_chromium_org_luci_buildbucket_proto_builder_common_proto_init() 3841 file_go_chromium_org_luci_buildbucket_proto_common_proto_init() 3842 file_go_chromium_org_luci_buildbucket_proto_field_option_proto_init() 3843 file_go_chromium_org_luci_buildbucket_proto_step_proto_init() 3844 file_go_chromium_org_luci_buildbucket_proto_task_proto_init() 3845 if !protoimpl.UnsafeEnabled { 3846 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 3847 switch v := v.(*Build); i { 3848 case 0: 3849 return &v.state 3850 case 1: 3851 return &v.sizeCache 3852 case 2: 3853 return &v.unknownFields 3854 default: 3855 return nil 3856 } 3857 } 3858 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 3859 switch v := v.(*InputDataRef); i { 3860 case 0: 3861 return &v.state 3862 case 1: 3863 return &v.sizeCache 3864 case 2: 3865 return &v.unknownFields 3866 default: 3867 return nil 3868 } 3869 } 3870 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 3871 switch v := v.(*ResolvedDataRef); i { 3872 case 0: 3873 return &v.state 3874 case 1: 3875 return &v.sizeCache 3876 case 2: 3877 return &v.unknownFields 3878 default: 3879 return nil 3880 } 3881 } 3882 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 3883 switch v := v.(*BuildInfra); i { 3884 case 0: 3885 return &v.state 3886 case 1: 3887 return &v.sizeCache 3888 case 2: 3889 return &v.unknownFields 3890 default: 3891 return nil 3892 } 3893 } 3894 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 3895 switch v := v.(*Build_Input); i { 3896 case 0: 3897 return &v.state 3898 case 1: 3899 return &v.sizeCache 3900 case 2: 3901 return &v.unknownFields 3902 default: 3903 return nil 3904 } 3905 } 3906 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 3907 switch v := v.(*Build_Output); i { 3908 case 0: 3909 return &v.state 3910 case 1: 3911 return &v.sizeCache 3912 case 2: 3913 return &v.unknownFields 3914 default: 3915 return nil 3916 } 3917 } 3918 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 3919 switch v := v.(*Build_BuilderInfo); i { 3920 case 0: 3921 return &v.state 3922 case 1: 3923 return &v.sizeCache 3924 case 2: 3925 return &v.unknownFields 3926 default: 3927 return nil 3928 } 3929 } 3930 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 3931 switch v := v.(*InputDataRef_CAS); i { 3932 case 0: 3933 return &v.state 3934 case 1: 3935 return &v.sizeCache 3936 case 2: 3937 return &v.unknownFields 3938 default: 3939 return nil 3940 } 3941 } 3942 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 3943 switch v := v.(*InputDataRef_CIPD); i { 3944 case 0: 3945 return &v.state 3946 case 1: 3947 return &v.sizeCache 3948 case 2: 3949 return &v.unknownFields 3950 default: 3951 return nil 3952 } 3953 } 3954 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 3955 switch v := v.(*InputDataRef_CAS_Digest); i { 3956 case 0: 3957 return &v.state 3958 case 1: 3959 return &v.sizeCache 3960 case 2: 3961 return &v.unknownFields 3962 default: 3963 return nil 3964 } 3965 } 3966 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 3967 switch v := v.(*InputDataRef_CIPD_PkgSpec); i { 3968 case 0: 3969 return &v.state 3970 case 1: 3971 return &v.sizeCache 3972 case 2: 3973 return &v.unknownFields 3974 default: 3975 return nil 3976 } 3977 } 3978 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 3979 switch v := v.(*ResolvedDataRef_Timing); i { 3980 case 0: 3981 return &v.state 3982 case 1: 3983 return &v.sizeCache 3984 case 2: 3985 return &v.unknownFields 3986 default: 3987 return nil 3988 } 3989 } 3990 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 3991 switch v := v.(*ResolvedDataRef_CAS); i { 3992 case 0: 3993 return &v.state 3994 case 1: 3995 return &v.sizeCache 3996 case 2: 3997 return &v.unknownFields 3998 default: 3999 return nil 4000 } 4001 } 4002 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 4003 switch v := v.(*ResolvedDataRef_CIPD); i { 4004 case 0: 4005 return &v.state 4006 case 1: 4007 return &v.sizeCache 4008 case 2: 4009 return &v.unknownFields 4010 default: 4011 return nil 4012 } 4013 } 4014 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 4015 switch v := v.(*ResolvedDataRef_CIPD_PkgSpec); i { 4016 case 0: 4017 return &v.state 4018 case 1: 4019 return &v.sizeCache 4020 case 2: 4021 return &v.unknownFields 4022 default: 4023 return nil 4024 } 4025 } 4026 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 4027 switch v := v.(*BuildInfra_Buildbucket); i { 4028 case 0: 4029 return &v.state 4030 case 1: 4031 return &v.sizeCache 4032 case 2: 4033 return &v.unknownFields 4034 default: 4035 return nil 4036 } 4037 } 4038 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 4039 switch v := v.(*BuildInfra_Swarming); i { 4040 case 0: 4041 return &v.state 4042 case 1: 4043 return &v.sizeCache 4044 case 2: 4045 return &v.unknownFields 4046 default: 4047 return nil 4048 } 4049 } 4050 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 4051 switch v := v.(*BuildInfra_LogDog); i { 4052 case 0: 4053 return &v.state 4054 case 1: 4055 return &v.sizeCache 4056 case 2: 4057 return &v.unknownFields 4058 default: 4059 return nil 4060 } 4061 } 4062 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 4063 switch v := v.(*BuildInfra_Recipe); i { 4064 case 0: 4065 return &v.state 4066 case 1: 4067 return &v.sizeCache 4068 case 2: 4069 return &v.unknownFields 4070 default: 4071 return nil 4072 } 4073 } 4074 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 4075 switch v := v.(*BuildInfra_ResultDB); i { 4076 case 0: 4077 return &v.state 4078 case 1: 4079 return &v.sizeCache 4080 case 2: 4081 return &v.unknownFields 4082 default: 4083 return nil 4084 } 4085 } 4086 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 4087 switch v := v.(*BuildInfra_Led); i { 4088 case 0: 4089 return &v.state 4090 case 1: 4091 return &v.sizeCache 4092 case 2: 4093 return &v.unknownFields 4094 default: 4095 return nil 4096 } 4097 } 4098 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 4099 switch v := v.(*BuildInfra_BBAgent); i { 4100 case 0: 4101 return &v.state 4102 case 1: 4103 return &v.sizeCache 4104 case 2: 4105 return &v.unknownFields 4106 default: 4107 return nil 4108 } 4109 } 4110 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 4111 switch v := v.(*BuildInfra_Backend); i { 4112 case 0: 4113 return &v.state 4114 case 1: 4115 return &v.sizeCache 4116 case 2: 4117 return &v.unknownFields 4118 default: 4119 return nil 4120 } 4121 } 4122 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 4123 switch v := v.(*BuildInfra_Buildbucket_Agent); i { 4124 case 0: 4125 return &v.state 4126 case 1: 4127 return &v.sizeCache 4128 case 2: 4129 return &v.unknownFields 4130 default: 4131 return nil 4132 } 4133 } 4134 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 4135 switch v := v.(*BuildInfra_Buildbucket_Agent_Source); i { 4136 case 0: 4137 return &v.state 4138 case 1: 4139 return &v.sizeCache 4140 case 2: 4141 return &v.unknownFields 4142 default: 4143 return nil 4144 } 4145 } 4146 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 4147 switch v := v.(*BuildInfra_Buildbucket_Agent_Input); i { 4148 case 0: 4149 return &v.state 4150 case 1: 4151 return &v.sizeCache 4152 case 2: 4153 return &v.unknownFields 4154 default: 4155 return nil 4156 } 4157 } 4158 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 4159 switch v := v.(*BuildInfra_Buildbucket_Agent_Output); i { 4160 case 0: 4161 return &v.state 4162 case 1: 4163 return &v.sizeCache 4164 case 2: 4165 return &v.unknownFields 4166 default: 4167 return nil 4168 } 4169 } 4170 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { 4171 switch v := v.(*BuildInfra_Buildbucket_Agent_Source_CIPD); i { 4172 case 0: 4173 return &v.state 4174 case 1: 4175 return &v.sizeCache 4176 case 2: 4177 return &v.unknownFields 4178 default: 4179 return nil 4180 } 4181 } 4182 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 4183 switch v := v.(*BuildInfra_Swarming_CacheEntry); i { 4184 case 0: 4185 return &v.state 4186 case 1: 4187 return &v.sizeCache 4188 case 2: 4189 return &v.unknownFields 4190 default: 4191 return nil 4192 } 4193 } 4194 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { 4195 switch v := v.(*BuildInfra_BBAgent_Input); i { 4196 case 0: 4197 return &v.state 4198 case 1: 4199 return &v.sizeCache 4200 case 2: 4201 return &v.unknownFields 4202 default: 4203 return nil 4204 } 4205 } 4206 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { 4207 switch v := v.(*BuildInfra_BBAgent_Input_CIPDPackage); i { 4208 case 0: 4209 return &v.state 4210 case 1: 4211 return &v.sizeCache 4212 case 2: 4213 return &v.unknownFields 4214 default: 4215 return nil 4216 } 4217 } 4218 } 4219 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[1].OneofWrappers = []interface{}{ 4220 (*InputDataRef_Cas)(nil), 4221 (*InputDataRef_Cipd)(nil), 4222 } 4223 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2].OneofWrappers = []interface{}{ 4224 (*ResolvedDataRef_Cas)(nil), 4225 (*ResolvedDataRef_Cipd)(nil), 4226 } 4227 file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[26].OneofWrappers = []interface{}{ 4228 (*BuildInfra_Buildbucket_Agent_Source_Cipd)(nil), 4229 } 4230 type x struct{} 4231 out := protoimpl.TypeBuilder{ 4232 File: protoimpl.DescBuilder{ 4233 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 4234 RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc, 4235 NumEnums: 2, 4236 NumMessages: 38, 4237 NumExtensions: 0, 4238 NumServices: 0, 4239 }, 4240 GoTypes: file_go_chromium_org_luci_buildbucket_proto_build_proto_goTypes, 4241 DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_build_proto_depIdxs, 4242 EnumInfos: file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes, 4243 MessageInfos: file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes, 4244 }.Build() 4245 File_go_chromium_org_luci_buildbucket_proto_build_proto = out.File 4246 file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc = nil 4247 file_go_chromium_org_luci_buildbucket_proto_build_proto_goTypes = nil 4248 file_go_chromium_org_luci_buildbucket_proto_build_proto_depIdxs = nil 4249 }