go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/buildbucket/proto/builds_service.pb.go (about) 1 // Copyright 2020 The Swarming Authors. All rights reserved. 2 // Use of this source code is governed by the Apache v2.0 license that can be 3 // found in the LICENSE file. 4 5 // Code generated by protoc-gen-go. DO NOT EDIT. 6 // versions: 7 // protoc-gen-go v1.32.0 8 // protoc v3.21.7 9 // source: go.chromium.org/luci/buildbucket/proto/builds_service.proto 10 11 package buildbucketpb 12 13 import prpc "go.chromium.org/luci/grpc/prpc" 14 15 import ( 16 context "context" 17 structmask "go.chromium.org/luci/common/proto/structmask" 18 _ "google.golang.org/genproto/googleapis/api/annotations" 19 status "google.golang.org/genproto/googleapis/rpc/status" 20 grpc "google.golang.org/grpc" 21 codes "google.golang.org/grpc/codes" 22 status1 "google.golang.org/grpc/status" 23 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 24 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 25 durationpb "google.golang.org/protobuf/types/known/durationpb" 26 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 27 structpb "google.golang.org/protobuf/types/known/structpb" 28 reflect "reflect" 29 sync "sync" 30 ) 31 32 const ( 33 // Verify that this generated code is sufficiently up-to-date. 34 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 35 // Verify that runtime/protoimpl is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 37 ) 38 39 // A request message for GetBuild RPC. 40 type GetBuildRequest struct { 41 state protoimpl.MessageState 42 sizeCache protoimpl.SizeCache 43 unknownFields protoimpl.UnknownFields 44 45 // Build ID. 46 // Mutually exclusive with builder and number. 47 Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 48 // Builder of the build. 49 // Requires number. Mutually exclusive with id. 50 Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` 51 // Build number. 52 // Requires builder. Mutually exclusive with id. 53 BuildNumber int32 `protobuf:"varint,3,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` 54 // Fields to include in the response. 55 // 56 // DEPRECATED: Use mask instead. 57 // 58 // If not set, the default mask is used, see Build message comments for the 59 // list of fields returned by default. 60 // 61 // Supports advanced semantics, see 62 // https://chromium.googlesource.com/infra/luci/luci-py/+/f9ae69a37c4bdd0e08a8b0f7e123f6e403e774eb/appengine/components/components/protoutil/field_masks.py#7 63 // In particular, if the client needs only some output properties, they 64 // can be requested with paths "output.properties.fields.foo". 65 // 66 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 67 Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` 68 // What portion of the Build message to return. 69 // 70 // If not set, the default mask is used, see Build message comments for the 71 // list of fields returned by default. 72 Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` 73 } 74 75 func (x *GetBuildRequest) Reset() { 76 *x = GetBuildRequest{} 77 if protoimpl.UnsafeEnabled { 78 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[0] 79 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 80 ms.StoreMessageInfo(mi) 81 } 82 } 83 84 func (x *GetBuildRequest) String() string { 85 return protoimpl.X.MessageStringOf(x) 86 } 87 88 func (*GetBuildRequest) ProtoMessage() {} 89 90 func (x *GetBuildRequest) ProtoReflect() protoreflect.Message { 91 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[0] 92 if protoimpl.UnsafeEnabled && x != nil { 93 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 94 if ms.LoadMessageInfo() == nil { 95 ms.StoreMessageInfo(mi) 96 } 97 return ms 98 } 99 return mi.MessageOf(x) 100 } 101 102 // Deprecated: Use GetBuildRequest.ProtoReflect.Descriptor instead. 103 func (*GetBuildRequest) Descriptor() ([]byte, []int) { 104 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{0} 105 } 106 107 func (x *GetBuildRequest) GetId() int64 { 108 if x != nil { 109 return x.Id 110 } 111 return 0 112 } 113 114 func (x *GetBuildRequest) GetBuilder() *BuilderID { 115 if x != nil { 116 return x.Builder 117 } 118 return nil 119 } 120 121 func (x *GetBuildRequest) GetBuildNumber() int32 { 122 if x != nil { 123 return x.BuildNumber 124 } 125 return 0 126 } 127 128 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 129 func (x *GetBuildRequest) GetFields() *fieldmaskpb.FieldMask { 130 if x != nil { 131 return x.Fields 132 } 133 return nil 134 } 135 136 func (x *GetBuildRequest) GetMask() *BuildMask { 137 if x != nil { 138 return x.Mask 139 } 140 return nil 141 } 142 143 // A request message for SearchBuilds RPC. 144 type SearchBuildsRequest struct { 145 state protoimpl.MessageState 146 sizeCache protoimpl.SizeCache 147 unknownFields protoimpl.UnknownFields 148 149 // Returned builds must satisfy this predicate. Required. 150 Predicate *BuildPredicate `protobuf:"bytes,1,opt,name=predicate,proto3" json:"predicate,omitempty"` 151 // Fields to include in the response, see GetBuildRequest.fields. 152 // 153 // DEPRECATED: Use mask instead. 154 // 155 // Note that this applies to the response, not each build, so e.g. steps must 156 // be requested with a path "builds.*.steps". 157 // 158 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 159 Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` 160 // What portion of the Build message to return. 161 // 162 // If not set, the default mask is used, see Build message comments for the 163 // list of fields returned by default. 164 Mask *BuildMask `protobuf:"bytes,103,opt,name=mask,proto3" json:"mask,omitempty"` 165 // Number of builds to return. 166 // Defaults to 100. 167 // Any value >1000 is interpreted as 1000. 168 PageSize int32 `protobuf:"varint,101,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 169 // Value of SearchBuildsResponse.next_page_token from the previous response. 170 // Use it to continue searching. 171 // The predicate and page_size in this request MUST be exactly same as in the 172 // previous request. 173 PageToken string `protobuf:"bytes,102,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 174 } 175 176 func (x *SearchBuildsRequest) Reset() { 177 *x = SearchBuildsRequest{} 178 if protoimpl.UnsafeEnabled { 179 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[1] 180 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 181 ms.StoreMessageInfo(mi) 182 } 183 } 184 185 func (x *SearchBuildsRequest) String() string { 186 return protoimpl.X.MessageStringOf(x) 187 } 188 189 func (*SearchBuildsRequest) ProtoMessage() {} 190 191 func (x *SearchBuildsRequest) ProtoReflect() protoreflect.Message { 192 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[1] 193 if protoimpl.UnsafeEnabled && x != nil { 194 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 195 if ms.LoadMessageInfo() == nil { 196 ms.StoreMessageInfo(mi) 197 } 198 return ms 199 } 200 return mi.MessageOf(x) 201 } 202 203 // Deprecated: Use SearchBuildsRequest.ProtoReflect.Descriptor instead. 204 func (*SearchBuildsRequest) Descriptor() ([]byte, []int) { 205 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{1} 206 } 207 208 func (x *SearchBuildsRequest) GetPredicate() *BuildPredicate { 209 if x != nil { 210 return x.Predicate 211 } 212 return nil 213 } 214 215 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 216 func (x *SearchBuildsRequest) GetFields() *fieldmaskpb.FieldMask { 217 if x != nil { 218 return x.Fields 219 } 220 return nil 221 } 222 223 func (x *SearchBuildsRequest) GetMask() *BuildMask { 224 if x != nil { 225 return x.Mask 226 } 227 return nil 228 } 229 230 func (x *SearchBuildsRequest) GetPageSize() int32 { 231 if x != nil { 232 return x.PageSize 233 } 234 return 0 235 } 236 237 func (x *SearchBuildsRequest) GetPageToken() string { 238 if x != nil { 239 return x.PageToken 240 } 241 return "" 242 } 243 244 // A response message for SearchBuilds RPC. 245 type SearchBuildsResponse struct { 246 state protoimpl.MessageState 247 sizeCache protoimpl.SizeCache 248 unknownFields protoimpl.UnknownFields 249 250 // Search results. 251 // 252 // Ordered by build ID, descending. IDs are monotonically decreasing, so in 253 // other words the order is newest-to-oldest. 254 Builds []*Build `protobuf:"bytes,1,rep,name=builds,proto3" json:"builds,omitempty"` 255 // Value for SearchBuildsRequest.page_token to continue searching. 256 NextPageToken string `protobuf:"bytes,100,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 257 } 258 259 func (x *SearchBuildsResponse) Reset() { 260 *x = SearchBuildsResponse{} 261 if protoimpl.UnsafeEnabled { 262 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[2] 263 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 264 ms.StoreMessageInfo(mi) 265 } 266 } 267 268 func (x *SearchBuildsResponse) String() string { 269 return protoimpl.X.MessageStringOf(x) 270 } 271 272 func (*SearchBuildsResponse) ProtoMessage() {} 273 274 func (x *SearchBuildsResponse) ProtoReflect() protoreflect.Message { 275 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[2] 276 if protoimpl.UnsafeEnabled && x != nil { 277 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 278 if ms.LoadMessageInfo() == nil { 279 ms.StoreMessageInfo(mi) 280 } 281 return ms 282 } 283 return mi.MessageOf(x) 284 } 285 286 // Deprecated: Use SearchBuildsResponse.ProtoReflect.Descriptor instead. 287 func (*SearchBuildsResponse) Descriptor() ([]byte, []int) { 288 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{2} 289 } 290 291 func (x *SearchBuildsResponse) GetBuilds() []*Build { 292 if x != nil { 293 return x.Builds 294 } 295 return nil 296 } 297 298 func (x *SearchBuildsResponse) GetNextPageToken() string { 299 if x != nil { 300 return x.NextPageToken 301 } 302 return "" 303 } 304 305 // A request message for Batch RPC. 306 type BatchRequest struct { 307 state protoimpl.MessageState 308 sizeCache protoimpl.SizeCache 309 unknownFields protoimpl.UnknownFields 310 311 // Requests to execute in a single batch. 312 // 313 // - All requests are executed in their own individual transactions. 314 // - BatchRequest as a whole is not transactional. 315 // - There's no guaranteed order of execution between batch items (i.e. 316 // consider them to all operate independently). 317 // - There is a limit of 200 requests per batch. 318 Requests []*BatchRequest_Request `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` 319 } 320 321 func (x *BatchRequest) Reset() { 322 *x = BatchRequest{} 323 if protoimpl.UnsafeEnabled { 324 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[3] 325 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 326 ms.StoreMessageInfo(mi) 327 } 328 } 329 330 func (x *BatchRequest) String() string { 331 return protoimpl.X.MessageStringOf(x) 332 } 333 334 func (*BatchRequest) ProtoMessage() {} 335 336 func (x *BatchRequest) ProtoReflect() protoreflect.Message { 337 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[3] 338 if protoimpl.UnsafeEnabled && x != nil { 339 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 340 if ms.LoadMessageInfo() == nil { 341 ms.StoreMessageInfo(mi) 342 } 343 return ms 344 } 345 return mi.MessageOf(x) 346 } 347 348 // Deprecated: Use BatchRequest.ProtoReflect.Descriptor instead. 349 func (*BatchRequest) Descriptor() ([]byte, []int) { 350 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{3} 351 } 352 353 func (x *BatchRequest) GetRequests() []*BatchRequest_Request { 354 if x != nil { 355 return x.Requests 356 } 357 return nil 358 } 359 360 // A response message for Batch RPC. 361 type BatchResponse struct { 362 state protoimpl.MessageState 363 sizeCache protoimpl.SizeCache 364 unknownFields protoimpl.UnknownFields 365 366 // Responses in the same order as BatchRequest.requests. 367 Responses []*BatchResponse_Response `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` 368 } 369 370 func (x *BatchResponse) Reset() { 371 *x = BatchResponse{} 372 if protoimpl.UnsafeEnabled { 373 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[4] 374 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 375 ms.StoreMessageInfo(mi) 376 } 377 } 378 379 func (x *BatchResponse) String() string { 380 return protoimpl.X.MessageStringOf(x) 381 } 382 383 func (*BatchResponse) ProtoMessage() {} 384 385 func (x *BatchResponse) ProtoReflect() protoreflect.Message { 386 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[4] 387 if protoimpl.UnsafeEnabled && x != nil { 388 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 389 if ms.LoadMessageInfo() == nil { 390 ms.StoreMessageInfo(mi) 391 } 392 return ms 393 } 394 return mi.MessageOf(x) 395 } 396 397 // Deprecated: Use BatchResponse.ProtoReflect.Descriptor instead. 398 func (*BatchResponse) Descriptor() ([]byte, []int) { 399 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{4} 400 } 401 402 func (x *BatchResponse) GetResponses() []*BatchResponse_Response { 403 if x != nil { 404 return x.Responses 405 } 406 return nil 407 } 408 409 // A request message for UpdateBuild RPC. 410 type UpdateBuildRequest struct { 411 state protoimpl.MessageState 412 sizeCache protoimpl.SizeCache 413 unknownFields protoimpl.UnknownFields 414 415 // Build to update, with new field values. 416 Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` 417 // Build fields to update. 418 // See also 419 // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask 420 // 421 // Currently supports only the following path strings: 422 // - build.output 423 // - build.output.properties 424 // - build.output.gitiles_commit 425 // - build.output.status 426 // - build.output.status_details 427 // - build.output.summary_markdown 428 // - build.status 429 // - build.status_details 430 // - build.steps 431 // - build.summary_markdown 432 // - build.tags 433 // - build.infra.buildbucket.agent.output 434 // - build.infra.buildbucket.agent.purposes 435 // 436 // Note, "build.output.status" is required explicitly to update the field. 437 // If there is only "build.output" in update_mask, build.output.status will not 438 // be updated. 439 // 440 // If omitted, Buildbucket will update the Build's update_time, but nothing else. 441 UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` 442 // Fields to include in the response. See also GetBuildRequest.fields. 443 // 444 // DEPRECATED: Use mask instead. 445 // 446 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 447 Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` 448 // What portion of the Build message to return. 449 // 450 // If not set, an empty build will be returned. 451 Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` 452 } 453 454 func (x *UpdateBuildRequest) Reset() { 455 *x = UpdateBuildRequest{} 456 if protoimpl.UnsafeEnabled { 457 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[5] 458 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 459 ms.StoreMessageInfo(mi) 460 } 461 } 462 463 func (x *UpdateBuildRequest) String() string { 464 return protoimpl.X.MessageStringOf(x) 465 } 466 467 func (*UpdateBuildRequest) ProtoMessage() {} 468 469 func (x *UpdateBuildRequest) ProtoReflect() protoreflect.Message { 470 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[5] 471 if protoimpl.UnsafeEnabled && x != nil { 472 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 473 if ms.LoadMessageInfo() == nil { 474 ms.StoreMessageInfo(mi) 475 } 476 return ms 477 } 478 return mi.MessageOf(x) 479 } 480 481 // Deprecated: Use UpdateBuildRequest.ProtoReflect.Descriptor instead. 482 func (*UpdateBuildRequest) Descriptor() ([]byte, []int) { 483 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{5} 484 } 485 486 func (x *UpdateBuildRequest) GetBuild() *Build { 487 if x != nil { 488 return x.Build 489 } 490 return nil 491 } 492 493 func (x *UpdateBuildRequest) GetUpdateMask() *fieldmaskpb.FieldMask { 494 if x != nil { 495 return x.UpdateMask 496 } 497 return nil 498 } 499 500 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 501 func (x *UpdateBuildRequest) GetFields() *fieldmaskpb.FieldMask { 502 if x != nil { 503 return x.Fields 504 } 505 return nil 506 } 507 508 func (x *UpdateBuildRequest) GetMask() *BuildMask { 509 if x != nil { 510 return x.Mask 511 } 512 return nil 513 } 514 515 // A request message for ScheduleBuild RPC. 516 // 517 // Next ID: 24. 518 type ScheduleBuildRequest struct { 519 state protoimpl.MessageState 520 sizeCache protoimpl.SizeCache 521 unknownFields protoimpl.UnknownFields 522 523 // ** STRONGLY RECOMMENDED **. 524 // A unique string id used for detecting duplicate requests. 525 // Should be unique at least per requesting identity. 526 // Used to dedup build scheduling requests with same id within 1 min. 527 // If a build was successfully scheduled with the same request id in the past 528 // minute, the existing build will be returned. 529 RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` 530 // ID of a build to retry as is or altered. 531 // When specified, fields below default to the values in the template build. 532 TemplateBuildId int64 `protobuf:"varint,2,opt,name=template_build_id,json=templateBuildId,proto3" json:"template_build_id,omitempty"` 533 // Value for Build.builder. See its comments. 534 // Required, unless template_build_id is specified. 535 Builder *BuilderID `protobuf:"bytes,3,opt,name=builder,proto3" json:"builder,omitempty"` 536 // DEPRECATED 537 // 538 // Set "luci.buildbucket.canary_software" in `experiments` instead. 539 // 540 // YES sets "luci.buildbucket.canary_software" to true in `experiments`. 541 // NO sets "luci.buildbucket.canary_software" to false in `experiments`. 542 Canary Trinary `protobuf:"varint,4,opt,name=canary,proto3,enum=buildbucket.v2.Trinary" json:"canary,omitempty"` 543 // DEPRECATED 544 // 545 // Set "luci.non_production" in `experiments` instead. 546 // 547 // YES sets "luci.non_production" to true in `experiments`. 548 // NO sets "luci.non_production" to false in `experiments`. 549 Experimental Trinary `protobuf:"varint,5,opt,name=experimental,proto3,enum=buildbucket.v2.Trinary" json:"experimental,omitempty"` 550 // Sets (or prevents) these experiments on the scheduled build. 551 // 552 // See `Builder.experiments` for well-known experiments. 553 Experiments map[string]bool `protobuf:"bytes,16,rep,name=experiments,proto3" json:"experiments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 554 // Properties to include in Build.input.properties. 555 // 556 // Input properties of the created build are result of merging server-defined 557 // properties and properties in this field. 558 // Each property in this field defines a new or replaces an existing property 559 // on the server. 560 // If the server config does not allow overriding/adding the property, the 561 // request will fail with InvalidArgument error code. 562 // A server-defined property cannot be removed, but its value can be 563 // replaced with null. 564 // 565 // Reserved property paths: 566 // 567 // ["$recipe_engine/buildbucket"] 568 // ["$recipe_engine/runtime", "is_experimental"] 569 // ["$recipe_engine/runtime", "is_luci"] 570 // ["branch"] 571 // ["buildbucket"] 572 // ["buildername"] 573 // ["repository"] 574 // 575 // The Builder configuration specifies which top-level property names are 576 // overridable via the `allowed_property_overrides` field. ScheduleBuild 577 // requests which attempt to override a property which isn't allowed will 578 // fail with InvalidArgument. 579 // 580 // V1 equivalent: corresponds to "properties" key in "parameters_json". 581 Properties *structpb.Struct `protobuf:"bytes,6,opt,name=properties,proto3" json:"properties,omitempty"` 582 // Value for Build.input.gitiles_commit. 583 // 584 // Setting this field will cause the created build to have a "buildset" 585 // tag with value "commit/gitiles/{hostname}/{project}/+/{id}". 586 // 587 // GitilesCommit objects MUST have host, project, ref fields set. 588 // 589 // V1 equivalent: supersedes "revision" property and "buildset" 590 // tag that starts with "commit/gitiles/". 591 GitilesCommit *GitilesCommit `protobuf:"bytes,7,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"` 592 // Value for Build.input.gerrit_changes. 593 // Usually present in tryjobs, set by CQ, Gerrit, git-cl-try. 594 // Applied on top of gitiles_commit if specified, otherwise tip of the tree. 595 // All GerritChange fields are required. 596 // 597 // Setting this field will cause the created build to have a "buildset" 598 // tag with value "patch/gerrit/{hostname}/{change}/{patchset}" 599 // for each change. 600 // 601 // V1 equivalent: supersedes patch_* properties and "buildset" 602 // tag that starts with "patch/gerrit/". 603 GerritChanges []*GerritChange `protobuf:"bytes,8,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"` 604 // Tags to include in Build.tags of the created build, see Build.tags 605 // comments. 606 // Note: tags of the created build may include other tags defined on the 607 // server. 608 Tags []*StringPair `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags,omitempty"` 609 // Overrides default dimensions defined by builder config or template build. 610 // 611 // A set of entries with the same key defines a new or replaces an existing 612 // dimension with the same key. 613 // If the config does not allow overriding/adding the dimension, the request 614 // will fail with InvalidArgument error code. 615 // 616 // After merging, dimensions with empty value will be excluded. 617 // 618 // Note: For the same key dimensions, it won't allow to pass empty and 619 // non-empty values at the same time in the request. 620 // 621 // Note: "caches" and "pool" dimensions may only be specified in builder 622 // configs. Setting them hear will fail the request. 623 // 624 // A dimension expiration must be a multiple of 1min. 625 Dimensions []*RequestedDimension `protobuf:"bytes,10,rep,name=dimensions,proto3" json:"dimensions,omitempty"` 626 // If not zero, overrides swarming task priority. 627 // See also Build.infra.swarming.priority. 628 Priority int32 `protobuf:"varint,11,opt,name=priority,proto3" json:"priority,omitempty"` 629 // A per-build notification configuration. 630 Notify *NotificationConfig `protobuf:"bytes,12,opt,name=notify,proto3" json:"notify,omitempty"` 631 // Fields to include in the response. See also GetBuildRequest.fields. 632 // 633 // DEPRECATED: Use mask instead. 634 // 635 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 636 Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` 637 // What portion of the Build message to return. 638 // 639 // If not set, the default mask is used, see Build message comments for the 640 // list of fields returned by default. 641 Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` 642 // Value for Build.critical. 643 Critical Trinary `protobuf:"varint,13,opt,name=critical,proto3,enum=buildbucket.v2.Trinary" json:"critical,omitempty"` 644 // Overrides Builder.exe in the config. 645 // Supported subfields: cipd_version. 646 Exe *Executable `protobuf:"bytes,14,opt,name=exe,proto3" json:"exe,omitempty"` 647 // Swarming specific part of the build request. 648 Swarming *ScheduleBuildRequest_Swarming `protobuf:"bytes,15,opt,name=swarming,proto3" json:"swarming,omitempty"` 649 // Maximum build pending time. 650 // 651 // If set, overrides the default `expiration_secs` set in builder config. 652 // Only supports seconds precision for now. 653 // For more information, see Build.scheduling_timeout in build.proto. 654 SchedulingTimeout *durationpb.Duration `protobuf:"bytes,17,opt,name=scheduling_timeout,json=schedulingTimeout,proto3" json:"scheduling_timeout,omitempty"` 655 // Maximum build execution time. 656 // 657 // If set, overrides the default `execution_timeout_secs` set in builder config. 658 // Only supports seconds precision for now. 659 // For more information, see Build.execution_timeout in build.proto. 660 ExecutionTimeout *durationpb.Duration `protobuf:"bytes,18,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"` 661 // Amount of cleanup time after execution_timeout. 662 // 663 // If set, overrides the default `grace_period` set in builder config. 664 // Only supports seconds precision for now. 665 // For more information, see Build.grace_period in build.proto. 666 GracePeriod *durationpb.Duration `protobuf:"bytes,19,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"` 667 // Whether or not this request constitutes a dry run. 668 // 669 // A dry run returns the build proto without actually scheduling it. All 670 // fields except those which can only be computed at run-time are filled in. 671 // Does not cause side-effects. When batching, all requests must specify the 672 // same value for dry_run. 673 DryRun bool `protobuf:"varint,20,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"` 674 // Flag to control if the build can outlive its parent. 675 // 676 // If the value is UNSET, it means this build doesn't have any parent, so 677 // the request must not have a head with any BuildToken. 678 // 679 // If the value is anything other than UNSET, then the BuildToken for the 680 // parent build must be set as a header. 681 // Note: it's not currently possible to establish parent/child relationship 682 // except via the parent build at the time the build is launched. 683 // 684 // If the value is NO, it means that the build SHOULD reach a terminal status 685 // (SUCCESS, FAILURE, INFRA_FAILURE or CANCELED) before its parent. If the 686 // child fails to do so, Buildbucket will cancel it some time after the 687 // parent build reaches a terminal status. 688 // 689 // A build that can outlive its parent can also outlive its parent's ancestors. 690 // 691 // If schedule a build without parent, this field must be UNSET. 692 // 693 // If schedule a build with parent, this field should be YES or NO. 694 // But UNSET is also accepted for now, and it has the same effect as YES. 695 // TODO(crbug.com/1031205): after the parent tracking feature is stable, 696 // require this field to be set when scheduling a build with parent. 697 CanOutliveParent Trinary `protobuf:"varint,21,opt,name=can_outlive_parent,json=canOutliveParent,proto3,enum=buildbucket.v2.Trinary" json:"can_outlive_parent,omitempty"` 698 // Value for Build.retriable. 699 Retriable Trinary `protobuf:"varint,22,opt,name=retriable,proto3,enum=buildbucket.v2.Trinary" json:"retriable,omitempty"` 700 // Input for scheduling a build in the shadow bucket. 701 // 702 // If this field is set, it means the build to be scheduled will 703 // - be scheduled in the shadow bucket of the requested bucket, with shadow 704 // adjustments on service_account, dimensions and properties. 705 // - inherit its parent build's agent input and agent source if it has a parent. 706 ShadowInput *ScheduleBuildRequest_ShadowInput `protobuf:"bytes,23,opt,name=shadow_input,json=shadowInput,proto3" json:"shadow_input,omitempty"` 707 } 708 709 func (x *ScheduleBuildRequest) Reset() { 710 *x = ScheduleBuildRequest{} 711 if protoimpl.UnsafeEnabled { 712 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[6] 713 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 714 ms.StoreMessageInfo(mi) 715 } 716 } 717 718 func (x *ScheduleBuildRequest) String() string { 719 return protoimpl.X.MessageStringOf(x) 720 } 721 722 func (*ScheduleBuildRequest) ProtoMessage() {} 723 724 func (x *ScheduleBuildRequest) ProtoReflect() protoreflect.Message { 725 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[6] 726 if protoimpl.UnsafeEnabled && x != nil { 727 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 728 if ms.LoadMessageInfo() == nil { 729 ms.StoreMessageInfo(mi) 730 } 731 return ms 732 } 733 return mi.MessageOf(x) 734 } 735 736 // Deprecated: Use ScheduleBuildRequest.ProtoReflect.Descriptor instead. 737 func (*ScheduleBuildRequest) Descriptor() ([]byte, []int) { 738 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{6} 739 } 740 741 func (x *ScheduleBuildRequest) GetRequestId() string { 742 if x != nil { 743 return x.RequestId 744 } 745 return "" 746 } 747 748 func (x *ScheduleBuildRequest) GetTemplateBuildId() int64 { 749 if x != nil { 750 return x.TemplateBuildId 751 } 752 return 0 753 } 754 755 func (x *ScheduleBuildRequest) GetBuilder() *BuilderID { 756 if x != nil { 757 return x.Builder 758 } 759 return nil 760 } 761 762 func (x *ScheduleBuildRequest) GetCanary() Trinary { 763 if x != nil { 764 return x.Canary 765 } 766 return Trinary_UNSET 767 } 768 769 func (x *ScheduleBuildRequest) GetExperimental() Trinary { 770 if x != nil { 771 return x.Experimental 772 } 773 return Trinary_UNSET 774 } 775 776 func (x *ScheduleBuildRequest) GetExperiments() map[string]bool { 777 if x != nil { 778 return x.Experiments 779 } 780 return nil 781 } 782 783 func (x *ScheduleBuildRequest) GetProperties() *structpb.Struct { 784 if x != nil { 785 return x.Properties 786 } 787 return nil 788 } 789 790 func (x *ScheduleBuildRequest) GetGitilesCommit() *GitilesCommit { 791 if x != nil { 792 return x.GitilesCommit 793 } 794 return nil 795 } 796 797 func (x *ScheduleBuildRequest) GetGerritChanges() []*GerritChange { 798 if x != nil { 799 return x.GerritChanges 800 } 801 return nil 802 } 803 804 func (x *ScheduleBuildRequest) GetTags() []*StringPair { 805 if x != nil { 806 return x.Tags 807 } 808 return nil 809 } 810 811 func (x *ScheduleBuildRequest) GetDimensions() []*RequestedDimension { 812 if x != nil { 813 return x.Dimensions 814 } 815 return nil 816 } 817 818 func (x *ScheduleBuildRequest) GetPriority() int32 { 819 if x != nil { 820 return x.Priority 821 } 822 return 0 823 } 824 825 func (x *ScheduleBuildRequest) GetNotify() *NotificationConfig { 826 if x != nil { 827 return x.Notify 828 } 829 return nil 830 } 831 832 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 833 func (x *ScheduleBuildRequest) GetFields() *fieldmaskpb.FieldMask { 834 if x != nil { 835 return x.Fields 836 } 837 return nil 838 } 839 840 func (x *ScheduleBuildRequest) GetMask() *BuildMask { 841 if x != nil { 842 return x.Mask 843 } 844 return nil 845 } 846 847 func (x *ScheduleBuildRequest) GetCritical() Trinary { 848 if x != nil { 849 return x.Critical 850 } 851 return Trinary_UNSET 852 } 853 854 func (x *ScheduleBuildRequest) GetExe() *Executable { 855 if x != nil { 856 return x.Exe 857 } 858 return nil 859 } 860 861 func (x *ScheduleBuildRequest) GetSwarming() *ScheduleBuildRequest_Swarming { 862 if x != nil { 863 return x.Swarming 864 } 865 return nil 866 } 867 868 func (x *ScheduleBuildRequest) GetSchedulingTimeout() *durationpb.Duration { 869 if x != nil { 870 return x.SchedulingTimeout 871 } 872 return nil 873 } 874 875 func (x *ScheduleBuildRequest) GetExecutionTimeout() *durationpb.Duration { 876 if x != nil { 877 return x.ExecutionTimeout 878 } 879 return nil 880 } 881 882 func (x *ScheduleBuildRequest) GetGracePeriod() *durationpb.Duration { 883 if x != nil { 884 return x.GracePeriod 885 } 886 return nil 887 } 888 889 func (x *ScheduleBuildRequest) GetDryRun() bool { 890 if x != nil { 891 return x.DryRun 892 } 893 return false 894 } 895 896 func (x *ScheduleBuildRequest) GetCanOutliveParent() Trinary { 897 if x != nil { 898 return x.CanOutliveParent 899 } 900 return Trinary_UNSET 901 } 902 903 func (x *ScheduleBuildRequest) GetRetriable() Trinary { 904 if x != nil { 905 return x.Retriable 906 } 907 return Trinary_UNSET 908 } 909 910 func (x *ScheduleBuildRequest) GetShadowInput() *ScheduleBuildRequest_ShadowInput { 911 if x != nil { 912 return x.ShadowInput 913 } 914 return nil 915 } 916 917 // A request message for CancelBuild RPC. 918 type CancelBuildRequest struct { 919 state protoimpl.MessageState 920 sizeCache protoimpl.SizeCache 921 unknownFields protoimpl.UnknownFields 922 923 // ID of the build to cancel. 924 Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 925 // Required. Value for Build.cancellation_markdown. Will be appended to 926 // Build.summary_markdown when exporting to bigquery and returned via GetBuild. 927 SummaryMarkdown string `protobuf:"bytes,2,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"` 928 // Fields to include in the response. See also GetBuildRequest.fields. 929 // 930 // DEPRECATED: Use mask instead. 931 // 932 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 933 Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` 934 // What portion of the Build message to return. 935 // 936 // If not set, the default mask is used, see Build message comments for the 937 // list of fields returned by default. 938 Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` 939 } 940 941 func (x *CancelBuildRequest) Reset() { 942 *x = CancelBuildRequest{} 943 if protoimpl.UnsafeEnabled { 944 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[7] 945 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 946 ms.StoreMessageInfo(mi) 947 } 948 } 949 950 func (x *CancelBuildRequest) String() string { 951 return protoimpl.X.MessageStringOf(x) 952 } 953 954 func (*CancelBuildRequest) ProtoMessage() {} 955 956 func (x *CancelBuildRequest) ProtoReflect() protoreflect.Message { 957 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[7] 958 if protoimpl.UnsafeEnabled && x != nil { 959 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 960 if ms.LoadMessageInfo() == nil { 961 ms.StoreMessageInfo(mi) 962 } 963 return ms 964 } 965 return mi.MessageOf(x) 966 } 967 968 // Deprecated: Use CancelBuildRequest.ProtoReflect.Descriptor instead. 969 func (*CancelBuildRequest) Descriptor() ([]byte, []int) { 970 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{7} 971 } 972 973 func (x *CancelBuildRequest) GetId() int64 { 974 if x != nil { 975 return x.Id 976 } 977 return 0 978 } 979 980 func (x *CancelBuildRequest) GetSummaryMarkdown() string { 981 if x != nil { 982 return x.SummaryMarkdown 983 } 984 return "" 985 } 986 987 // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. 988 func (x *CancelBuildRequest) GetFields() *fieldmaskpb.FieldMask { 989 if x != nil { 990 return x.Fields 991 } 992 return nil 993 } 994 995 func (x *CancelBuildRequest) GetMask() *BuildMask { 996 if x != nil { 997 return x.Mask 998 } 999 return nil 1000 } 1001 1002 // A request message for CreateBuild RPC. 1003 type CreateBuildRequest struct { 1004 state protoimpl.MessageState 1005 sizeCache protoimpl.SizeCache 1006 unknownFields protoimpl.UnknownFields 1007 1008 // The Build to be created. 1009 Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` 1010 // A unique identifier for this request. 1011 // A random UUID is recommended. 1012 // This request is only idempotent if a `request_id` is provided. 1013 RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` 1014 // What portion of the Build message to return. 1015 // 1016 // If not set, the default mask is used, see Build message comments for the 1017 // list of fields returned by default. 1018 Mask *BuildMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"` 1019 } 1020 1021 func (x *CreateBuildRequest) Reset() { 1022 *x = CreateBuildRequest{} 1023 if protoimpl.UnsafeEnabled { 1024 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[8] 1025 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1026 ms.StoreMessageInfo(mi) 1027 } 1028 } 1029 1030 func (x *CreateBuildRequest) String() string { 1031 return protoimpl.X.MessageStringOf(x) 1032 } 1033 1034 func (*CreateBuildRequest) ProtoMessage() {} 1035 1036 func (x *CreateBuildRequest) ProtoReflect() protoreflect.Message { 1037 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[8] 1038 if protoimpl.UnsafeEnabled && x != nil { 1039 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1040 if ms.LoadMessageInfo() == nil { 1041 ms.StoreMessageInfo(mi) 1042 } 1043 return ms 1044 } 1045 return mi.MessageOf(x) 1046 } 1047 1048 // Deprecated: Use CreateBuildRequest.ProtoReflect.Descriptor instead. 1049 func (*CreateBuildRequest) Descriptor() ([]byte, []int) { 1050 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{8} 1051 } 1052 1053 func (x *CreateBuildRequest) GetBuild() *Build { 1054 if x != nil { 1055 return x.Build 1056 } 1057 return nil 1058 } 1059 1060 func (x *CreateBuildRequest) GetRequestId() string { 1061 if x != nil { 1062 return x.RequestId 1063 } 1064 return "" 1065 } 1066 1067 func (x *CreateBuildRequest) GetMask() *BuildMask { 1068 if x != nil { 1069 return x.Mask 1070 } 1071 return nil 1072 } 1073 1074 // A request message for SynthesizeBuild RPC. 1075 type SynthesizeBuildRequest struct { 1076 state protoimpl.MessageState 1077 sizeCache protoimpl.SizeCache 1078 unknownFields protoimpl.UnknownFields 1079 1080 // ID of a build to use as the template. 1081 // Mutually exclusive with builder. 1082 TemplateBuildId int64 `protobuf:"varint,1,opt,name=template_build_id,json=templateBuildId,proto3" json:"template_build_id,omitempty"` 1083 // Value for Build.builder. See its comments. 1084 // Required, unless template_build_id is specified. 1085 Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` 1086 // Sets (or prevents) these experiments on the synthesized build. 1087 // 1088 // See `Builder.experiments` for well-known experiments. 1089 Experiments map[string]bool `protobuf:"bytes,3,rep,name=experiments,proto3" json:"experiments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` 1090 } 1091 1092 func (x *SynthesizeBuildRequest) Reset() { 1093 *x = SynthesizeBuildRequest{} 1094 if protoimpl.UnsafeEnabled { 1095 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[9] 1096 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1097 ms.StoreMessageInfo(mi) 1098 } 1099 } 1100 1101 func (x *SynthesizeBuildRequest) String() string { 1102 return protoimpl.X.MessageStringOf(x) 1103 } 1104 1105 func (*SynthesizeBuildRequest) ProtoMessage() {} 1106 1107 func (x *SynthesizeBuildRequest) ProtoReflect() protoreflect.Message { 1108 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[9] 1109 if protoimpl.UnsafeEnabled && x != nil { 1110 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1111 if ms.LoadMessageInfo() == nil { 1112 ms.StoreMessageInfo(mi) 1113 } 1114 return ms 1115 } 1116 return mi.MessageOf(x) 1117 } 1118 1119 // Deprecated: Use SynthesizeBuildRequest.ProtoReflect.Descriptor instead. 1120 func (*SynthesizeBuildRequest) Descriptor() ([]byte, []int) { 1121 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{9} 1122 } 1123 1124 func (x *SynthesizeBuildRequest) GetTemplateBuildId() int64 { 1125 if x != nil { 1126 return x.TemplateBuildId 1127 } 1128 return 0 1129 } 1130 1131 func (x *SynthesizeBuildRequest) GetBuilder() *BuilderID { 1132 if x != nil { 1133 return x.Builder 1134 } 1135 return nil 1136 } 1137 1138 func (x *SynthesizeBuildRequest) GetExperiments() map[string]bool { 1139 if x != nil { 1140 return x.Experiments 1141 } 1142 return nil 1143 } 1144 1145 // A request message for StartBuild RPC. 1146 type StartBuildRequest struct { 1147 state protoimpl.MessageState 1148 sizeCache protoimpl.SizeCache 1149 unknownFields protoimpl.UnknownFields 1150 1151 // A nonce to deduplicate requests. 1152 RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` 1153 // Id of the build to start. 1154 BuildId int64 `protobuf:"varint,2,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"` 1155 // Id of the task running the started build. 1156 TaskId string `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` 1157 } 1158 1159 func (x *StartBuildRequest) Reset() { 1160 *x = StartBuildRequest{} 1161 if protoimpl.UnsafeEnabled { 1162 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[10] 1163 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1164 ms.StoreMessageInfo(mi) 1165 } 1166 } 1167 1168 func (x *StartBuildRequest) String() string { 1169 return protoimpl.X.MessageStringOf(x) 1170 } 1171 1172 func (*StartBuildRequest) ProtoMessage() {} 1173 1174 func (x *StartBuildRequest) ProtoReflect() protoreflect.Message { 1175 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[10] 1176 if protoimpl.UnsafeEnabled && x != nil { 1177 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1178 if ms.LoadMessageInfo() == nil { 1179 ms.StoreMessageInfo(mi) 1180 } 1181 return ms 1182 } 1183 return mi.MessageOf(x) 1184 } 1185 1186 // Deprecated: Use StartBuildRequest.ProtoReflect.Descriptor instead. 1187 func (*StartBuildRequest) Descriptor() ([]byte, []int) { 1188 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{10} 1189 } 1190 1191 func (x *StartBuildRequest) GetRequestId() string { 1192 if x != nil { 1193 return x.RequestId 1194 } 1195 return "" 1196 } 1197 1198 func (x *StartBuildRequest) GetBuildId() int64 { 1199 if x != nil { 1200 return x.BuildId 1201 } 1202 return 0 1203 } 1204 1205 func (x *StartBuildRequest) GetTaskId() string { 1206 if x != nil { 1207 return x.TaskId 1208 } 1209 return "" 1210 } 1211 1212 // A response message for StartBuild RPC. 1213 type StartBuildResponse struct { 1214 state protoimpl.MessageState 1215 sizeCache protoimpl.SizeCache 1216 unknownFields protoimpl.UnknownFields 1217 1218 // The whole proto of the started build. 1219 Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` 1220 // a build token for agent to use when making subsequent UpdateBuild calls. 1221 UpdateBuildToken string `protobuf:"bytes,2,opt,name=update_build_token,json=updateBuildToken,proto3" json:"update_build_token,omitempty"` 1222 } 1223 1224 func (x *StartBuildResponse) Reset() { 1225 *x = StartBuildResponse{} 1226 if protoimpl.UnsafeEnabled { 1227 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[11] 1228 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1229 ms.StoreMessageInfo(mi) 1230 } 1231 } 1232 1233 func (x *StartBuildResponse) String() string { 1234 return protoimpl.X.MessageStringOf(x) 1235 } 1236 1237 func (*StartBuildResponse) ProtoMessage() {} 1238 1239 func (x *StartBuildResponse) ProtoReflect() protoreflect.Message { 1240 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[11] 1241 if protoimpl.UnsafeEnabled && x != nil { 1242 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1243 if ms.LoadMessageInfo() == nil { 1244 ms.StoreMessageInfo(mi) 1245 } 1246 return ms 1247 } 1248 return mi.MessageOf(x) 1249 } 1250 1251 // Deprecated: Use StartBuildResponse.ProtoReflect.Descriptor instead. 1252 func (*StartBuildResponse) Descriptor() ([]byte, []int) { 1253 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{11} 1254 } 1255 1256 func (x *StartBuildResponse) GetBuild() *Build { 1257 if x != nil { 1258 return x.Build 1259 } 1260 return nil 1261 } 1262 1263 func (x *StartBuildResponse) GetUpdateBuildToken() string { 1264 if x != nil { 1265 return x.UpdateBuildToken 1266 } 1267 return "" 1268 } 1269 1270 // A request message for GetBuildStatus RPC. 1271 type GetBuildStatusRequest struct { 1272 state protoimpl.MessageState 1273 sizeCache protoimpl.SizeCache 1274 unknownFields protoimpl.UnknownFields 1275 1276 // Build ID. 1277 // Mutually exclusive with builder and number. 1278 Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 1279 // Builder of the build. 1280 // Requires number. Mutually exclusive with id. 1281 Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` 1282 // Build number. 1283 // Requires builder. Mutually exclusive with id. 1284 BuildNumber int32 `protobuf:"varint,3,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` 1285 } 1286 1287 func (x *GetBuildStatusRequest) Reset() { 1288 *x = GetBuildStatusRequest{} 1289 if protoimpl.UnsafeEnabled { 1290 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[12] 1291 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1292 ms.StoreMessageInfo(mi) 1293 } 1294 } 1295 1296 func (x *GetBuildStatusRequest) String() string { 1297 return protoimpl.X.MessageStringOf(x) 1298 } 1299 1300 func (*GetBuildStatusRequest) ProtoMessage() {} 1301 1302 func (x *GetBuildStatusRequest) ProtoReflect() protoreflect.Message { 1303 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[12] 1304 if protoimpl.UnsafeEnabled && x != nil { 1305 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1306 if ms.LoadMessageInfo() == nil { 1307 ms.StoreMessageInfo(mi) 1308 } 1309 return ms 1310 } 1311 return mi.MessageOf(x) 1312 } 1313 1314 // Deprecated: Use GetBuildStatusRequest.ProtoReflect.Descriptor instead. 1315 func (*GetBuildStatusRequest) Descriptor() ([]byte, []int) { 1316 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{12} 1317 } 1318 1319 func (x *GetBuildStatusRequest) GetId() int64 { 1320 if x != nil { 1321 return x.Id 1322 } 1323 return 0 1324 } 1325 1326 func (x *GetBuildStatusRequest) GetBuilder() *BuilderID { 1327 if x != nil { 1328 return x.Builder 1329 } 1330 return nil 1331 } 1332 1333 func (x *GetBuildStatusRequest) GetBuildNumber() int32 { 1334 if x != nil { 1335 return x.BuildNumber 1336 } 1337 return 0 1338 } 1339 1340 // Defines a subset of Build fields and properties to return. 1341 type BuildMask struct { 1342 state protoimpl.MessageState 1343 sizeCache protoimpl.SizeCache 1344 unknownFields protoimpl.UnknownFields 1345 1346 // Fields of the Build proto to include. 1347 // 1348 // Follows the standard FieldMask semantics as documented at e.g. 1349 // https://pkg.go.dev/google.golang.org/protobuf/types/known/fieldmaskpb. 1350 // 1351 // If not set, the default mask is used, see Build message comments for the 1352 // list of fields returned by default. 1353 Fields *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=fields,proto3" json:"fields,omitempty"` 1354 // Defines a subset of `input.properties` to return. 1355 // 1356 // When not empty, implicitly adds the corresponding field to `fields`. 1357 InputProperties []*structmask.StructMask `protobuf:"bytes,2,rep,name=input_properties,json=inputProperties,proto3" json:"input_properties,omitempty"` 1358 // Defines a subset of `output.properties` to return. 1359 // 1360 // When not empty, implicitly adds the corresponding field to `fields`. 1361 OutputProperties []*structmask.StructMask `protobuf:"bytes,3,rep,name=output_properties,json=outputProperties,proto3" json:"output_properties,omitempty"` 1362 // Defines a subset of `infra.buildbucket.requested_properties` to return. 1363 // 1364 // When not empty, implicitly adds the corresponding field to `fields`. 1365 RequestedProperties []*structmask.StructMask `protobuf:"bytes,4,rep,name=requested_properties,json=requestedProperties,proto3" json:"requested_properties,omitempty"` 1366 // Flag for including all fields. 1367 // 1368 // Mutually exclusive with `fields`, `input_properties`, `output_properties`, 1369 // and `requested_properties`. 1370 AllFields bool `protobuf:"varint,5,opt,name=all_fields,json=allFields,proto3" json:"all_fields,omitempty"` 1371 // A status to filter returned `steps` by. If unspecified, no filter is 1372 // applied. Otherwise filters by the union of the given statuses. 1373 // 1374 // No effect unless `fields` specifies that `steps` should be returned or 1375 // `all_fields` is true. 1376 StepStatus []Status `protobuf:"varint,6,rep,packed,name=step_status,json=stepStatus,proto3,enum=buildbucket.v2.Status" json:"step_status,omitempty"` 1377 } 1378 1379 func (x *BuildMask) Reset() { 1380 *x = BuildMask{} 1381 if protoimpl.UnsafeEnabled { 1382 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[13] 1383 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1384 ms.StoreMessageInfo(mi) 1385 } 1386 } 1387 1388 func (x *BuildMask) String() string { 1389 return protoimpl.X.MessageStringOf(x) 1390 } 1391 1392 func (*BuildMask) ProtoMessage() {} 1393 1394 func (x *BuildMask) ProtoReflect() protoreflect.Message { 1395 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[13] 1396 if protoimpl.UnsafeEnabled && x != nil { 1397 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1398 if ms.LoadMessageInfo() == nil { 1399 ms.StoreMessageInfo(mi) 1400 } 1401 return ms 1402 } 1403 return mi.MessageOf(x) 1404 } 1405 1406 // Deprecated: Use BuildMask.ProtoReflect.Descriptor instead. 1407 func (*BuildMask) Descriptor() ([]byte, []int) { 1408 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{13} 1409 } 1410 1411 func (x *BuildMask) GetFields() *fieldmaskpb.FieldMask { 1412 if x != nil { 1413 return x.Fields 1414 } 1415 return nil 1416 } 1417 1418 func (x *BuildMask) GetInputProperties() []*structmask.StructMask { 1419 if x != nil { 1420 return x.InputProperties 1421 } 1422 return nil 1423 } 1424 1425 func (x *BuildMask) GetOutputProperties() []*structmask.StructMask { 1426 if x != nil { 1427 return x.OutputProperties 1428 } 1429 return nil 1430 } 1431 1432 func (x *BuildMask) GetRequestedProperties() []*structmask.StructMask { 1433 if x != nil { 1434 return x.RequestedProperties 1435 } 1436 return nil 1437 } 1438 1439 func (x *BuildMask) GetAllFields() bool { 1440 if x != nil { 1441 return x.AllFields 1442 } 1443 return false 1444 } 1445 1446 func (x *BuildMask) GetStepStatus() []Status { 1447 if x != nil { 1448 return x.StepStatus 1449 } 1450 return nil 1451 } 1452 1453 // A build predicate. 1454 // 1455 // At least one of the following fields is required: builder, gerrit_changes and 1456 // git_commits. 1457 // If a field value is empty, it is ignored, unless stated otherwise. 1458 type BuildPredicate struct { 1459 state protoimpl.MessageState 1460 sizeCache protoimpl.SizeCache 1461 unknownFields protoimpl.UnknownFields 1462 1463 // A build must be in this builder. 1464 Builder *BuilderID `protobuf:"bytes,1,opt,name=builder,proto3" json:"builder,omitempty"` 1465 // A build must have this status. 1466 Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"` 1467 // A build's Build.Input.gerrit_changes must include ALL of these changes. 1468 GerritChanges []*GerritChange `protobuf:"bytes,3,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"` 1469 // DEPRECATED 1470 // 1471 // Never implemented. 1472 OutputGitilesCommit *GitilesCommit `protobuf:"bytes,4,opt,name=output_gitiles_commit,json=outputGitilesCommit,proto3" json:"output_gitiles_commit,omitempty"` 1473 // A build must be created by this identity. 1474 CreatedBy string `protobuf:"bytes,5,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` 1475 // A build must have ALL of these tags. 1476 // For "ANY of these tags" make separate RPCs. 1477 Tags []*StringPair `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"` 1478 // A build must have been created within the specified range. 1479 // Both boundaries are optional. 1480 CreateTime *TimeRange `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 1481 // If false (the default), equivalent to filtering by experiment 1482 // "-luci.non_production". 1483 // 1484 // If true, has no effect (both production and non_production builds will be 1485 // returned). 1486 // 1487 // NOTE: If you explicitly search for non_production builds with the experiment 1488 // filter "+luci.non_production", this is implied to be true. 1489 // 1490 // See `Builder.experiments` for well-known experiments. 1491 IncludeExperimental bool `protobuf:"varint,8,opt,name=include_experimental,json=includeExperimental,proto3" json:"include_experimental,omitempty"` 1492 // A build must be in this build range. 1493 Build *BuildRange `protobuf:"bytes,9,opt,name=build,proto3" json:"build,omitempty"` 1494 // DEPRECATED 1495 // 1496 // If YES, equivalent to filtering by experiment 1497 // "+luci.buildbucket.canary_software". 1498 // 1499 // If NO, equivalent to filtering by experiment 1500 // "-luci.buildbucket.canary_software". 1501 // 1502 // See `Builder.experiments` for well-known experiments. 1503 Canary Trinary `protobuf:"varint,10,opt,name=canary,proto3,enum=buildbucket.v2.Trinary" json:"canary,omitempty"` 1504 // A list of experiments to include or exclude from the search results. 1505 // 1506 // Each entry should look like "[-+]$experiment_name". 1507 // 1508 // A "+" prefix means that returned builds MUST have that experiment set. 1509 // A "-" prefix means that returned builds MUST NOT have that experiment set 1510 // 1511 // AND that experiment was known for the builder at the time the build 1512 // was scheduled (either via `Builder.experiments` or via 1513 // `ScheduleBuildRequest.experiments`). Well-known experiments are always 1514 // considered to be available. 1515 Experiments []string `protobuf:"bytes,11,rep,name=experiments,proto3" json:"experiments,omitempty"` 1516 // A build ID. 1517 // 1518 // Returned builds will be descendants of this build (e.g. "100" means 1519 // "any build transitively scheduled starting from build 100"). 1520 // 1521 // Mutually exclusive with `child_of`. 1522 DescendantOf int64 `protobuf:"varint,12,opt,name=descendant_of,json=descendantOf,proto3" json:"descendant_of,omitempty"` 1523 // A build ID. 1524 // 1525 // Returned builds will be only the immediate children of this build. 1526 // 1527 // Mutually exclusive with `descendant_of`. 1528 ChildOf int64 `protobuf:"varint,13,opt,name=child_of,json=childOf,proto3" json:"child_of,omitempty"` 1529 } 1530 1531 func (x *BuildPredicate) Reset() { 1532 *x = BuildPredicate{} 1533 if protoimpl.UnsafeEnabled { 1534 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[14] 1535 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1536 ms.StoreMessageInfo(mi) 1537 } 1538 } 1539 1540 func (x *BuildPredicate) String() string { 1541 return protoimpl.X.MessageStringOf(x) 1542 } 1543 1544 func (*BuildPredicate) ProtoMessage() {} 1545 1546 func (x *BuildPredicate) ProtoReflect() protoreflect.Message { 1547 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[14] 1548 if protoimpl.UnsafeEnabled && x != nil { 1549 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1550 if ms.LoadMessageInfo() == nil { 1551 ms.StoreMessageInfo(mi) 1552 } 1553 return ms 1554 } 1555 return mi.MessageOf(x) 1556 } 1557 1558 // Deprecated: Use BuildPredicate.ProtoReflect.Descriptor instead. 1559 func (*BuildPredicate) Descriptor() ([]byte, []int) { 1560 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{14} 1561 } 1562 1563 func (x *BuildPredicate) GetBuilder() *BuilderID { 1564 if x != nil { 1565 return x.Builder 1566 } 1567 return nil 1568 } 1569 1570 func (x *BuildPredicate) GetStatus() Status { 1571 if x != nil { 1572 return x.Status 1573 } 1574 return Status_STATUS_UNSPECIFIED 1575 } 1576 1577 func (x *BuildPredicate) GetGerritChanges() []*GerritChange { 1578 if x != nil { 1579 return x.GerritChanges 1580 } 1581 return nil 1582 } 1583 1584 func (x *BuildPredicate) GetOutputGitilesCommit() *GitilesCommit { 1585 if x != nil { 1586 return x.OutputGitilesCommit 1587 } 1588 return nil 1589 } 1590 1591 func (x *BuildPredicate) GetCreatedBy() string { 1592 if x != nil { 1593 return x.CreatedBy 1594 } 1595 return "" 1596 } 1597 1598 func (x *BuildPredicate) GetTags() []*StringPair { 1599 if x != nil { 1600 return x.Tags 1601 } 1602 return nil 1603 } 1604 1605 func (x *BuildPredicate) GetCreateTime() *TimeRange { 1606 if x != nil { 1607 return x.CreateTime 1608 } 1609 return nil 1610 } 1611 1612 func (x *BuildPredicate) GetIncludeExperimental() bool { 1613 if x != nil { 1614 return x.IncludeExperimental 1615 } 1616 return false 1617 } 1618 1619 func (x *BuildPredicate) GetBuild() *BuildRange { 1620 if x != nil { 1621 return x.Build 1622 } 1623 return nil 1624 } 1625 1626 func (x *BuildPredicate) GetCanary() Trinary { 1627 if x != nil { 1628 return x.Canary 1629 } 1630 return Trinary_UNSET 1631 } 1632 1633 func (x *BuildPredicate) GetExperiments() []string { 1634 if x != nil { 1635 return x.Experiments 1636 } 1637 return nil 1638 } 1639 1640 func (x *BuildPredicate) GetDescendantOf() int64 { 1641 if x != nil { 1642 return x.DescendantOf 1643 } 1644 return 0 1645 } 1646 1647 func (x *BuildPredicate) GetChildOf() int64 { 1648 if x != nil { 1649 return x.ChildOf 1650 } 1651 return 0 1652 } 1653 1654 // Open build range. 1655 type BuildRange struct { 1656 state protoimpl.MessageState 1657 sizeCache protoimpl.SizeCache 1658 unknownFields protoimpl.UnknownFields 1659 1660 // Inclusive lower (less recent build) boundary. Optional. 1661 StartBuildId int64 `protobuf:"varint,1,opt,name=start_build_id,json=startBuildId,proto3" json:"start_build_id,omitempty"` 1662 // Inclusive upper (more recent build) boundary. Optional. 1663 EndBuildId int64 `protobuf:"varint,2,opt,name=end_build_id,json=endBuildId,proto3" json:"end_build_id,omitempty"` 1664 } 1665 1666 func (x *BuildRange) Reset() { 1667 *x = BuildRange{} 1668 if protoimpl.UnsafeEnabled { 1669 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[15] 1670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1671 ms.StoreMessageInfo(mi) 1672 } 1673 } 1674 1675 func (x *BuildRange) String() string { 1676 return protoimpl.X.MessageStringOf(x) 1677 } 1678 1679 func (*BuildRange) ProtoMessage() {} 1680 1681 func (x *BuildRange) ProtoReflect() protoreflect.Message { 1682 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[15] 1683 if protoimpl.UnsafeEnabled && x != nil { 1684 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1685 if ms.LoadMessageInfo() == nil { 1686 ms.StoreMessageInfo(mi) 1687 } 1688 return ms 1689 } 1690 return mi.MessageOf(x) 1691 } 1692 1693 // Deprecated: Use BuildRange.ProtoReflect.Descriptor instead. 1694 func (*BuildRange) Descriptor() ([]byte, []int) { 1695 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{15} 1696 } 1697 1698 func (x *BuildRange) GetStartBuildId() int64 { 1699 if x != nil { 1700 return x.StartBuildId 1701 } 1702 return 0 1703 } 1704 1705 func (x *BuildRange) GetEndBuildId() int64 { 1706 if x != nil { 1707 return x.EndBuildId 1708 } 1709 return 0 1710 } 1711 1712 // One request in a batch. 1713 type BatchRequest_Request struct { 1714 state protoimpl.MessageState 1715 sizeCache protoimpl.SizeCache 1716 unknownFields protoimpl.UnknownFields 1717 1718 // Types that are assignable to Request: 1719 // 1720 // *BatchRequest_Request_GetBuild 1721 // *BatchRequest_Request_SearchBuilds 1722 // *BatchRequest_Request_ScheduleBuild 1723 // *BatchRequest_Request_CancelBuild 1724 // *BatchRequest_Request_GetBuildStatus 1725 Request isBatchRequest_Request_Request `protobuf_oneof:"request"` 1726 } 1727 1728 func (x *BatchRequest_Request) Reset() { 1729 *x = BatchRequest_Request{} 1730 if protoimpl.UnsafeEnabled { 1731 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[16] 1732 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1733 ms.StoreMessageInfo(mi) 1734 } 1735 } 1736 1737 func (x *BatchRequest_Request) String() string { 1738 return protoimpl.X.MessageStringOf(x) 1739 } 1740 1741 func (*BatchRequest_Request) ProtoMessage() {} 1742 1743 func (x *BatchRequest_Request) ProtoReflect() protoreflect.Message { 1744 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[16] 1745 if protoimpl.UnsafeEnabled && x != nil { 1746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1747 if ms.LoadMessageInfo() == nil { 1748 ms.StoreMessageInfo(mi) 1749 } 1750 return ms 1751 } 1752 return mi.MessageOf(x) 1753 } 1754 1755 // Deprecated: Use BatchRequest_Request.ProtoReflect.Descriptor instead. 1756 func (*BatchRequest_Request) Descriptor() ([]byte, []int) { 1757 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{3, 0} 1758 } 1759 1760 func (m *BatchRequest_Request) GetRequest() isBatchRequest_Request_Request { 1761 if m != nil { 1762 return m.Request 1763 } 1764 return nil 1765 } 1766 1767 func (x *BatchRequest_Request) GetGetBuild() *GetBuildRequest { 1768 if x, ok := x.GetRequest().(*BatchRequest_Request_GetBuild); ok { 1769 return x.GetBuild 1770 } 1771 return nil 1772 } 1773 1774 func (x *BatchRequest_Request) GetSearchBuilds() *SearchBuildsRequest { 1775 if x, ok := x.GetRequest().(*BatchRequest_Request_SearchBuilds); ok { 1776 return x.SearchBuilds 1777 } 1778 return nil 1779 } 1780 1781 func (x *BatchRequest_Request) GetScheduleBuild() *ScheduleBuildRequest { 1782 if x, ok := x.GetRequest().(*BatchRequest_Request_ScheduleBuild); ok { 1783 return x.ScheduleBuild 1784 } 1785 return nil 1786 } 1787 1788 func (x *BatchRequest_Request) GetCancelBuild() *CancelBuildRequest { 1789 if x, ok := x.GetRequest().(*BatchRequest_Request_CancelBuild); ok { 1790 return x.CancelBuild 1791 } 1792 return nil 1793 } 1794 1795 func (x *BatchRequest_Request) GetGetBuildStatus() *GetBuildStatusRequest { 1796 if x, ok := x.GetRequest().(*BatchRequest_Request_GetBuildStatus); ok { 1797 return x.GetBuildStatus 1798 } 1799 return nil 1800 } 1801 1802 type isBatchRequest_Request_Request interface { 1803 isBatchRequest_Request_Request() 1804 } 1805 1806 type BatchRequest_Request_GetBuild struct { 1807 GetBuild *GetBuildRequest `protobuf:"bytes,1,opt,name=get_build,json=getBuild,proto3,oneof"` 1808 } 1809 1810 type BatchRequest_Request_SearchBuilds struct { 1811 SearchBuilds *SearchBuildsRequest `protobuf:"bytes,2,opt,name=search_builds,json=searchBuilds,proto3,oneof"` 1812 } 1813 1814 type BatchRequest_Request_ScheduleBuild struct { 1815 ScheduleBuild *ScheduleBuildRequest `protobuf:"bytes,3,opt,name=schedule_build,json=scheduleBuild,proto3,oneof"` 1816 } 1817 1818 type BatchRequest_Request_CancelBuild struct { 1819 CancelBuild *CancelBuildRequest `protobuf:"bytes,4,opt,name=cancel_build,json=cancelBuild,proto3,oneof"` 1820 } 1821 1822 type BatchRequest_Request_GetBuildStatus struct { 1823 GetBuildStatus *GetBuildStatusRequest `protobuf:"bytes,5,opt,name=get_build_status,json=getBuildStatus,proto3,oneof"` 1824 } 1825 1826 func (*BatchRequest_Request_GetBuild) isBatchRequest_Request_Request() {} 1827 1828 func (*BatchRequest_Request_SearchBuilds) isBatchRequest_Request_Request() {} 1829 1830 func (*BatchRequest_Request_ScheduleBuild) isBatchRequest_Request_Request() {} 1831 1832 func (*BatchRequest_Request_CancelBuild) isBatchRequest_Request_Request() {} 1833 1834 func (*BatchRequest_Request_GetBuildStatus) isBatchRequest_Request_Request() {} 1835 1836 // Response a BatchRequest.Response. 1837 type BatchResponse_Response struct { 1838 state protoimpl.MessageState 1839 sizeCache protoimpl.SizeCache 1840 unknownFields protoimpl.UnknownFields 1841 1842 // Types that are assignable to Response: 1843 // 1844 // *BatchResponse_Response_GetBuild 1845 // *BatchResponse_Response_SearchBuilds 1846 // *BatchResponse_Response_ScheduleBuild 1847 // *BatchResponse_Response_CancelBuild 1848 // *BatchResponse_Response_GetBuildStatus 1849 // *BatchResponse_Response_Error 1850 Response isBatchResponse_Response_Response `protobuf_oneof:"response"` 1851 } 1852 1853 func (x *BatchResponse_Response) Reset() { 1854 *x = BatchResponse_Response{} 1855 if protoimpl.UnsafeEnabled { 1856 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[17] 1857 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1858 ms.StoreMessageInfo(mi) 1859 } 1860 } 1861 1862 func (x *BatchResponse_Response) String() string { 1863 return protoimpl.X.MessageStringOf(x) 1864 } 1865 1866 func (*BatchResponse_Response) ProtoMessage() {} 1867 1868 func (x *BatchResponse_Response) ProtoReflect() protoreflect.Message { 1869 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[17] 1870 if protoimpl.UnsafeEnabled && x != nil { 1871 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1872 if ms.LoadMessageInfo() == nil { 1873 ms.StoreMessageInfo(mi) 1874 } 1875 return ms 1876 } 1877 return mi.MessageOf(x) 1878 } 1879 1880 // Deprecated: Use BatchResponse_Response.ProtoReflect.Descriptor instead. 1881 func (*BatchResponse_Response) Descriptor() ([]byte, []int) { 1882 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{4, 0} 1883 } 1884 1885 func (m *BatchResponse_Response) GetResponse() isBatchResponse_Response_Response { 1886 if m != nil { 1887 return m.Response 1888 } 1889 return nil 1890 } 1891 1892 func (x *BatchResponse_Response) GetGetBuild() *Build { 1893 if x, ok := x.GetResponse().(*BatchResponse_Response_GetBuild); ok { 1894 return x.GetBuild 1895 } 1896 return nil 1897 } 1898 1899 func (x *BatchResponse_Response) GetSearchBuilds() *SearchBuildsResponse { 1900 if x, ok := x.GetResponse().(*BatchResponse_Response_SearchBuilds); ok { 1901 return x.SearchBuilds 1902 } 1903 return nil 1904 } 1905 1906 func (x *BatchResponse_Response) GetScheduleBuild() *Build { 1907 if x, ok := x.GetResponse().(*BatchResponse_Response_ScheduleBuild); ok { 1908 return x.ScheduleBuild 1909 } 1910 return nil 1911 } 1912 1913 func (x *BatchResponse_Response) GetCancelBuild() *Build { 1914 if x, ok := x.GetResponse().(*BatchResponse_Response_CancelBuild); ok { 1915 return x.CancelBuild 1916 } 1917 return nil 1918 } 1919 1920 func (x *BatchResponse_Response) GetGetBuildStatus() *Build { 1921 if x, ok := x.GetResponse().(*BatchResponse_Response_GetBuildStatus); ok { 1922 return x.GetBuildStatus 1923 } 1924 return nil 1925 } 1926 1927 func (x *BatchResponse_Response) GetError() *status.Status { 1928 if x, ok := x.GetResponse().(*BatchResponse_Response_Error); ok { 1929 return x.Error 1930 } 1931 return nil 1932 } 1933 1934 type isBatchResponse_Response_Response interface { 1935 isBatchResponse_Response_Response() 1936 } 1937 1938 type BatchResponse_Response_GetBuild struct { 1939 GetBuild *Build `protobuf:"bytes,1,opt,name=get_build,json=getBuild,proto3,oneof"` 1940 } 1941 1942 type BatchResponse_Response_SearchBuilds struct { 1943 SearchBuilds *SearchBuildsResponse `protobuf:"bytes,2,opt,name=search_builds,json=searchBuilds,proto3,oneof"` 1944 } 1945 1946 type BatchResponse_Response_ScheduleBuild struct { 1947 ScheduleBuild *Build `protobuf:"bytes,3,opt,name=schedule_build,json=scheduleBuild,proto3,oneof"` 1948 } 1949 1950 type BatchResponse_Response_CancelBuild struct { 1951 CancelBuild *Build `protobuf:"bytes,4,opt,name=cancel_build,json=cancelBuild,proto3,oneof"` 1952 } 1953 1954 type BatchResponse_Response_GetBuildStatus struct { 1955 GetBuildStatus *Build `protobuf:"bytes,5,opt,name=get_build_status,json=getBuildStatus,proto3,oneof"` 1956 } 1957 1958 type BatchResponse_Response_Error struct { 1959 // Error code and details of the unsuccessful RPC. 1960 Error *status.Status `protobuf:"bytes,100,opt,name=error,proto3,oneof"` 1961 } 1962 1963 func (*BatchResponse_Response_GetBuild) isBatchResponse_Response_Response() {} 1964 1965 func (*BatchResponse_Response_SearchBuilds) isBatchResponse_Response_Response() {} 1966 1967 func (*BatchResponse_Response_ScheduleBuild) isBatchResponse_Response_Response() {} 1968 1969 func (*BatchResponse_Response_CancelBuild) isBatchResponse_Response_Response() {} 1970 1971 func (*BatchResponse_Response_GetBuildStatus) isBatchResponse_Response_Response() {} 1972 1973 func (*BatchResponse_Response_Error) isBatchResponse_Response_Response() {} 1974 1975 // Swarming specific part of the build request. 1976 type ScheduleBuildRequest_Swarming struct { 1977 state protoimpl.MessageState 1978 sizeCache protoimpl.SizeCache 1979 unknownFields protoimpl.UnknownFields 1980 1981 // If specified, parent_run_id should match actual Swarming task run ID the 1982 // caller is running as and results in swarming server ensuring that the newly 1983 // triggered build will not outlive its parent. 1984 // 1985 // Typical use is for triggering and waiting on child build(s) from within 1986 // 1 parent build and if child build(s) on their own aren't useful. Then, 1987 // if parent build ends for whatever reason, all not yet finished child 1988 // builds aren't useful and it's desirable to terminate them, too. 1989 // 1990 // If the Builder config does not specify a swarming backend, the request 1991 // will fail with InvalidArgument error code. 1992 // 1993 // The parent_run_id is assumed to be from the same swarming server as the 1994 // one the new build is to be executed on. The ScheduleBuildRequest doesn't 1995 // check if parent_run_id refers to actually existing task, but eventually 1996 // the new build will fail if so. 1997 ParentRunId string `protobuf:"bytes,1,opt,name=parent_run_id,json=parentRunId,proto3" json:"parent_run_id,omitempty"` 1998 } 1999 2000 func (x *ScheduleBuildRequest_Swarming) Reset() { 2001 *x = ScheduleBuildRequest_Swarming{} 2002 if protoimpl.UnsafeEnabled { 2003 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[19] 2004 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2005 ms.StoreMessageInfo(mi) 2006 } 2007 } 2008 2009 func (x *ScheduleBuildRequest_Swarming) String() string { 2010 return protoimpl.X.MessageStringOf(x) 2011 } 2012 2013 func (*ScheduleBuildRequest_Swarming) ProtoMessage() {} 2014 2015 func (x *ScheduleBuildRequest_Swarming) ProtoReflect() protoreflect.Message { 2016 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[19] 2017 if protoimpl.UnsafeEnabled && x != nil { 2018 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2019 if ms.LoadMessageInfo() == nil { 2020 ms.StoreMessageInfo(mi) 2021 } 2022 return ms 2023 } 2024 return mi.MessageOf(x) 2025 } 2026 2027 // Deprecated: Use ScheduleBuildRequest_Swarming.ProtoReflect.Descriptor instead. 2028 func (*ScheduleBuildRequest_Swarming) Descriptor() ([]byte, []int) { 2029 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{6, 1} 2030 } 2031 2032 func (x *ScheduleBuildRequest_Swarming) GetParentRunId() string { 2033 if x != nil { 2034 return x.ParentRunId 2035 } 2036 return "" 2037 } 2038 2039 // Information for scheduling a build as a shadow build. 2040 type ScheduleBuildRequest_ShadowInput struct { 2041 state protoimpl.MessageState 2042 sizeCache protoimpl.SizeCache 2043 unknownFields protoimpl.UnknownFields 2044 } 2045 2046 func (x *ScheduleBuildRequest_ShadowInput) Reset() { 2047 *x = ScheduleBuildRequest_ShadowInput{} 2048 if protoimpl.UnsafeEnabled { 2049 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[20] 2050 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2051 ms.StoreMessageInfo(mi) 2052 } 2053 } 2054 2055 func (x *ScheduleBuildRequest_ShadowInput) String() string { 2056 return protoimpl.X.MessageStringOf(x) 2057 } 2058 2059 func (*ScheduleBuildRequest_ShadowInput) ProtoMessage() {} 2060 2061 func (x *ScheduleBuildRequest_ShadowInput) ProtoReflect() protoreflect.Message { 2062 mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[20] 2063 if protoimpl.UnsafeEnabled && x != nil { 2064 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2065 if ms.LoadMessageInfo() == nil { 2066 ms.StoreMessageInfo(mi) 2067 } 2068 return ms 2069 } 2070 return mi.MessageOf(x) 2071 } 2072 2073 // Deprecated: Use ScheduleBuildRequest_ShadowInput.ProtoReflect.Descriptor instead. 2074 func (*ScheduleBuildRequest_ShadowInput) Descriptor() ([]byte, []int) { 2075 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{6, 2} 2076 } 2077 2078 var File_go_chromium_org_luci_buildbucket_proto_builds_service_proto protoreflect.FileDescriptor 2079 2080 var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc = []byte{ 2081 0x0a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 2082 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 2083 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f, 2084 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x62, 2085 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x67, 2086 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 2087 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 2088 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 2089 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 2090 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 2091 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2092 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2093 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 2094 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 2095 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 2096 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 2097 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 2098 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 2099 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 2100 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 2101 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 2102 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 2103 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 2104 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2105 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 2106 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 2107 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 2108 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 2109 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3d, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 2110 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 2111 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x72, 0x75, 2112 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 2113 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe0, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 2114 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 2115 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 2116 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 2117 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 2118 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 2119 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 2120 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 2121 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 2122 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2123 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 2124 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 2125 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 2126 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 2127 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xf6, 0x01, 0x0a, 0x13, 0x53, 2128 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 2129 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 2130 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 2131 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x64, 2132 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 2133 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 2134 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2135 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x02, 0x18, 0x01, 2136 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 2137 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 2138 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 2139 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 2140 0x73, 0x69, 0x7a, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 2141 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 2142 0x65, 0x6e, 0x18, 0x66, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 2143 0x6b, 0x65, 0x6e, 0x22, 0x6d, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 2144 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 2145 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 2146 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 2147 0x6c, 0x64, 0x52, 0x06, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 2148 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x64, 0x20, 2149 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 2150 0x65, 0x6e, 0x22, 0xde, 0x03, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 2151 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 2152 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 2153 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 2154 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 2155 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x8b, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2156 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 2157 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 2158 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 2159 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 2160 0x64, 0x12, 0x4a, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x62, 0x75, 0x69, 0x6c, 2161 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 2162 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 2163 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 2164 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x4d, 0x0a, 2165 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 2166 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 2167 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 2168 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x73, 2169 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x47, 0x0a, 0x0c, 2170 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 2171 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 2172 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 2173 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 2174 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x51, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 2175 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 2176 0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 2177 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 2178 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 2179 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 2180 0x65, 0x73, 0x74, 0x22, 0xdc, 0x03, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 2181 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2182 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 2183 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 2184 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 2185 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x84, 0x03, 0x0a, 0x08, 2186 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x5f, 2187 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 2188 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 2189 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x4b, 2190 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 2191 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 2192 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 2193 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 2194 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x73, 2195 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 2196 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 2197 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 2198 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 2199 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 2200 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2201 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x63, 2202 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x41, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, 0x62, 2203 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 2204 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2205 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x42, 2206 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 2207 0x72, 0x6f, 0x72, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2208 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 2209 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2210 0x73, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 2211 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x75, 0x69, 2212 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 2213 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 2214 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 2215 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 2216 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 2217 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 2218 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 2219 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2220 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 2221 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 2222 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 2223 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 2224 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xbd, 0x0c, 0x0a, 0x14, 0x53, 2225 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 2226 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 2227 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 2228 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 2229 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 2230 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x33, 2231 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 2232 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 2233 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 2234 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 2235 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 2236 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x06, 0x63, 0x61, 2237 0x6e, 0x61, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 2238 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 2239 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 2240 0x61, 0x72, 0x79, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 2241 0x6c, 0x12, 0x57, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2242 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 2243 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 2244 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 2245 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 2246 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 2247 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 2248 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2249 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 2250 0x69, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 2251 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 2252 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 2253 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x67, 0x69, 0x74, 0x69, 2254 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0e, 0x67, 0x65, 0x72, 2255 0x72, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 2256 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2257 0x76, 0x32, 0x2e, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 2258 0x0d, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2e, 2259 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 2260 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 2261 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x42, 2262 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 2263 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 2264 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 2265 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 2266 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 2267 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3a, 2268 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 2269 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 2270 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 2271 0x69, 0x67, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 2272 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 2273 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 2274 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 2275 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 2276 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 2277 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 2278 0x6b, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x0d, 0x20, 2279 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 2280 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x08, 0x63, 0x72, 2281 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x78, 0x65, 0x18, 0x0e, 0x20, 2282 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 2283 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 2284 0x03, 0x65, 0x78, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 2285 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 2286 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 2287 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x77, 0x61, 2288 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 2289 0x48, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 2290 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 2291 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 2292 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 2293 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x65, 0x78, 0x65, 2294 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x12, 2295 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 2296 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 2297 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 2298 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 2299 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2300 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 2301 0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 2302 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 2303 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x45, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x5f, 2304 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x15, 2305 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 2306 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x10, 0x63, 2307 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x76, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 2308 0x35, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x16, 0x20, 0x01, 2309 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 2310 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x74, 2311 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 2312 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 2313 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 2314 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 2315 0x73, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x0b, 2316 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 2317 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 2318 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 2319 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 2320 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x2e, 0x0a, 0x08, 0x53, 2321 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 2322 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 2323 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, 0x0d, 0x0a, 0x0b, 0x53, 2324 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xb6, 0x01, 0x0a, 0x12, 0x43, 2325 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2326 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 2327 0x64, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x72, 2328 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x6d, 2329 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x36, 0x0a, 0x06, 2330 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 2331 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 2332 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, 0x69, 2333 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 2334 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 2335 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 2336 0x61, 0x73, 0x6b, 0x22, 0x94, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 2337 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x75, 2338 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 2339 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 2340 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 2341 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 2342 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 2343 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 2344 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 2345 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0x94, 0x02, 0x0a, 0x16, 0x53, 2346 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 2347 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 2348 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 2349 0x52, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 2350 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 2351 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 2352 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 2353 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 2354 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x62, 0x75, 2355 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 2356 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 2357 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 2358 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 2359 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 2360 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 2361 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 2362 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 2363 0x01, 0x22, 0x75, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 2364 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 2365 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 2366 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x75, 2367 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 2368 0x02, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 2369 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 2370 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 2371 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 2372 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 2373 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 2374 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x75, 2375 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 2376 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 2377 0x75, 0x69, 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7f, 0x0a, 0x15, 0x47, 0x65, 0x74, 2378 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 2379 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 2380 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 2381 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 2382 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 2383 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 2384 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 2385 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xea, 0x02, 0x0a, 0x09, 0x42, 2386 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 2387 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2388 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 2389 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x10, 2390 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 2391 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 2392 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0f, 2393 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 2394 0x43, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 2395 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 2396 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x61, 2397 0x73, 0x6b, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 2398 0x74, 0x69, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 2399 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 2400 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 2401 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 2402 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 2403 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 2404 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x37, 2405 0x0a, 0x0b, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 2406 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 2407 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x73, 0x74, 0x65, 2408 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x90, 0x05, 0x0a, 0x0e, 0x42, 0x75, 0x69, 0x6c, 2409 0x64, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 2410 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 2411 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 2412 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 2413 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 2414 0x16, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 2415 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 2416 0x43, 0x0a, 0x0e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 2417 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 2418 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 2419 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 2420 0x6e, 0x67, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 2421 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 2422 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 2423 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 2424 0x69, 0x74, 0x52, 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 2425 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 2426 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 2427 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 2428 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 2429 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 2430 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 2431 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 2432 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 2433 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 2434 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 2435 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 2436 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 2437 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x09, 2438 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 2439 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 2440 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 2441 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 2442 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 2443 0x52, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 2444 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 2445 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 2446 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 2447 0x03, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x4f, 0x66, 0x12, 2448 0x19, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x6f, 0x66, 0x18, 0x0d, 0x20, 0x01, 0x28, 2449 0x03, 0x52, 0x07, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4f, 0x66, 0x22, 0x54, 0x0a, 0x0a, 0x42, 0x75, 2450 0x69, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 2451 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 2452 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x20, 2453 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 2454 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 2455 0x32, 0xa4, 0x06, 0x0a, 0x06, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x08, 0x47, 2456 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 2457 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 2458 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 2459 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 2460 0x00, 0x12, 0x5b, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 2461 0x73, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2462 0x76, 0x32, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 2463 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 2464 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 2465 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 2466 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x22, 0x2e, 2467 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x55, 2468 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2469 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2470 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0d, 0x53, 0x63, 2471 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x62, 0x75, 2472 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 2473 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2474 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2475 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x43, 0x61, 2476 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 2477 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 2478 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 2479 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 2480 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 2481 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 2482 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 2483 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 2484 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 2485 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x22, 0x2e, 2486 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 2487 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2488 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2489 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x53, 0x79, 2490 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x26, 0x2e, 2491 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 2492 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 2493 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 2494 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x50, 2495 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 2496 0x12, 0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 2497 0x32, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 2498 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 2499 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 2500 0x12, 0x55, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x21, 2501 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 2502 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2503 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 2504 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 2505 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 2506 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 2507 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 2508 0x6f, 0x3b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x62, 0x62, 2509 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2510 } 2511 2512 var ( 2513 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescOnce sync.Once 2514 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc 2515 ) 2516 2517 func file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP() []byte { 2518 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescOnce.Do(func() { 2519 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescData) 2520 }) 2521 return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescData 2522 } 2523 2524 var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes = make([]protoimpl.MessageInfo, 22) 2525 var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_goTypes = []interface{}{ 2526 (*GetBuildRequest)(nil), // 0: buildbucket.v2.GetBuildRequest 2527 (*SearchBuildsRequest)(nil), // 1: buildbucket.v2.SearchBuildsRequest 2528 (*SearchBuildsResponse)(nil), // 2: buildbucket.v2.SearchBuildsResponse 2529 (*BatchRequest)(nil), // 3: buildbucket.v2.BatchRequest 2530 (*BatchResponse)(nil), // 4: buildbucket.v2.BatchResponse 2531 (*UpdateBuildRequest)(nil), // 5: buildbucket.v2.UpdateBuildRequest 2532 (*ScheduleBuildRequest)(nil), // 6: buildbucket.v2.ScheduleBuildRequest 2533 (*CancelBuildRequest)(nil), // 7: buildbucket.v2.CancelBuildRequest 2534 (*CreateBuildRequest)(nil), // 8: buildbucket.v2.CreateBuildRequest 2535 (*SynthesizeBuildRequest)(nil), // 9: buildbucket.v2.SynthesizeBuildRequest 2536 (*StartBuildRequest)(nil), // 10: buildbucket.v2.StartBuildRequest 2537 (*StartBuildResponse)(nil), // 11: buildbucket.v2.StartBuildResponse 2538 (*GetBuildStatusRequest)(nil), // 12: buildbucket.v2.GetBuildStatusRequest 2539 (*BuildMask)(nil), // 13: buildbucket.v2.BuildMask 2540 (*BuildPredicate)(nil), // 14: buildbucket.v2.BuildPredicate 2541 (*BuildRange)(nil), // 15: buildbucket.v2.BuildRange 2542 (*BatchRequest_Request)(nil), // 16: buildbucket.v2.BatchRequest.Request 2543 (*BatchResponse_Response)(nil), // 17: buildbucket.v2.BatchResponse.Response 2544 nil, // 18: buildbucket.v2.ScheduleBuildRequest.ExperimentsEntry 2545 (*ScheduleBuildRequest_Swarming)(nil), // 19: buildbucket.v2.ScheduleBuildRequest.Swarming 2546 (*ScheduleBuildRequest_ShadowInput)(nil), // 20: buildbucket.v2.ScheduleBuildRequest.ShadowInput 2547 nil, // 21: buildbucket.v2.SynthesizeBuildRequest.ExperimentsEntry 2548 (*BuilderID)(nil), // 22: buildbucket.v2.BuilderID 2549 (*fieldmaskpb.FieldMask)(nil), // 23: google.protobuf.FieldMask 2550 (*Build)(nil), // 24: buildbucket.v2.Build 2551 (Trinary)(0), // 25: buildbucket.v2.Trinary 2552 (*structpb.Struct)(nil), // 26: google.protobuf.Struct 2553 (*GitilesCommit)(nil), // 27: buildbucket.v2.GitilesCommit 2554 (*GerritChange)(nil), // 28: buildbucket.v2.GerritChange 2555 (*StringPair)(nil), // 29: buildbucket.v2.StringPair 2556 (*RequestedDimension)(nil), // 30: buildbucket.v2.RequestedDimension 2557 (*NotificationConfig)(nil), // 31: buildbucket.v2.NotificationConfig 2558 (*Executable)(nil), // 32: buildbucket.v2.Executable 2559 (*durationpb.Duration)(nil), // 33: google.protobuf.Duration 2560 (*structmask.StructMask)(nil), // 34: structmask.StructMask 2561 (Status)(0), // 35: buildbucket.v2.Status 2562 (*TimeRange)(nil), // 36: buildbucket.v2.TimeRange 2563 (*status.Status)(nil), // 37: google.rpc.Status 2564 } 2565 var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_depIdxs = []int32{ 2566 22, // 0: buildbucket.v2.GetBuildRequest.builder:type_name -> buildbucket.v2.BuilderID 2567 23, // 1: buildbucket.v2.GetBuildRequest.fields:type_name -> google.protobuf.FieldMask 2568 13, // 2: buildbucket.v2.GetBuildRequest.mask:type_name -> buildbucket.v2.BuildMask 2569 14, // 3: buildbucket.v2.SearchBuildsRequest.predicate:type_name -> buildbucket.v2.BuildPredicate 2570 23, // 4: buildbucket.v2.SearchBuildsRequest.fields:type_name -> google.protobuf.FieldMask 2571 13, // 5: buildbucket.v2.SearchBuildsRequest.mask:type_name -> buildbucket.v2.BuildMask 2572 24, // 6: buildbucket.v2.SearchBuildsResponse.builds:type_name -> buildbucket.v2.Build 2573 16, // 7: buildbucket.v2.BatchRequest.requests:type_name -> buildbucket.v2.BatchRequest.Request 2574 17, // 8: buildbucket.v2.BatchResponse.responses:type_name -> buildbucket.v2.BatchResponse.Response 2575 24, // 9: buildbucket.v2.UpdateBuildRequest.build:type_name -> buildbucket.v2.Build 2576 23, // 10: buildbucket.v2.UpdateBuildRequest.update_mask:type_name -> google.protobuf.FieldMask 2577 23, // 11: buildbucket.v2.UpdateBuildRequest.fields:type_name -> google.protobuf.FieldMask 2578 13, // 12: buildbucket.v2.UpdateBuildRequest.mask:type_name -> buildbucket.v2.BuildMask 2579 22, // 13: buildbucket.v2.ScheduleBuildRequest.builder:type_name -> buildbucket.v2.BuilderID 2580 25, // 14: buildbucket.v2.ScheduleBuildRequest.canary:type_name -> buildbucket.v2.Trinary 2581 25, // 15: buildbucket.v2.ScheduleBuildRequest.experimental:type_name -> buildbucket.v2.Trinary 2582 18, // 16: buildbucket.v2.ScheduleBuildRequest.experiments:type_name -> buildbucket.v2.ScheduleBuildRequest.ExperimentsEntry 2583 26, // 17: buildbucket.v2.ScheduleBuildRequest.properties:type_name -> google.protobuf.Struct 2584 27, // 18: buildbucket.v2.ScheduleBuildRequest.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit 2585 28, // 19: buildbucket.v2.ScheduleBuildRequest.gerrit_changes:type_name -> buildbucket.v2.GerritChange 2586 29, // 20: buildbucket.v2.ScheduleBuildRequest.tags:type_name -> buildbucket.v2.StringPair 2587 30, // 21: buildbucket.v2.ScheduleBuildRequest.dimensions:type_name -> buildbucket.v2.RequestedDimension 2588 31, // 22: buildbucket.v2.ScheduleBuildRequest.notify:type_name -> buildbucket.v2.NotificationConfig 2589 23, // 23: buildbucket.v2.ScheduleBuildRequest.fields:type_name -> google.protobuf.FieldMask 2590 13, // 24: buildbucket.v2.ScheduleBuildRequest.mask:type_name -> buildbucket.v2.BuildMask 2591 25, // 25: buildbucket.v2.ScheduleBuildRequest.critical:type_name -> buildbucket.v2.Trinary 2592 32, // 26: buildbucket.v2.ScheduleBuildRequest.exe:type_name -> buildbucket.v2.Executable 2593 19, // 27: buildbucket.v2.ScheduleBuildRequest.swarming:type_name -> buildbucket.v2.ScheduleBuildRequest.Swarming 2594 33, // 28: buildbucket.v2.ScheduleBuildRequest.scheduling_timeout:type_name -> google.protobuf.Duration 2595 33, // 29: buildbucket.v2.ScheduleBuildRequest.execution_timeout:type_name -> google.protobuf.Duration 2596 33, // 30: buildbucket.v2.ScheduleBuildRequest.grace_period:type_name -> google.protobuf.Duration 2597 25, // 31: buildbucket.v2.ScheduleBuildRequest.can_outlive_parent:type_name -> buildbucket.v2.Trinary 2598 25, // 32: buildbucket.v2.ScheduleBuildRequest.retriable:type_name -> buildbucket.v2.Trinary 2599 20, // 33: buildbucket.v2.ScheduleBuildRequest.shadow_input:type_name -> buildbucket.v2.ScheduleBuildRequest.ShadowInput 2600 23, // 34: buildbucket.v2.CancelBuildRequest.fields:type_name -> google.protobuf.FieldMask 2601 13, // 35: buildbucket.v2.CancelBuildRequest.mask:type_name -> buildbucket.v2.BuildMask 2602 24, // 36: buildbucket.v2.CreateBuildRequest.build:type_name -> buildbucket.v2.Build 2603 13, // 37: buildbucket.v2.CreateBuildRequest.mask:type_name -> buildbucket.v2.BuildMask 2604 22, // 38: buildbucket.v2.SynthesizeBuildRequest.builder:type_name -> buildbucket.v2.BuilderID 2605 21, // 39: buildbucket.v2.SynthesizeBuildRequest.experiments:type_name -> buildbucket.v2.SynthesizeBuildRequest.ExperimentsEntry 2606 24, // 40: buildbucket.v2.StartBuildResponse.build:type_name -> buildbucket.v2.Build 2607 22, // 41: buildbucket.v2.GetBuildStatusRequest.builder:type_name -> buildbucket.v2.BuilderID 2608 23, // 42: buildbucket.v2.BuildMask.fields:type_name -> google.protobuf.FieldMask 2609 34, // 43: buildbucket.v2.BuildMask.input_properties:type_name -> structmask.StructMask 2610 34, // 44: buildbucket.v2.BuildMask.output_properties:type_name -> structmask.StructMask 2611 34, // 45: buildbucket.v2.BuildMask.requested_properties:type_name -> structmask.StructMask 2612 35, // 46: buildbucket.v2.BuildMask.step_status:type_name -> buildbucket.v2.Status 2613 22, // 47: buildbucket.v2.BuildPredicate.builder:type_name -> buildbucket.v2.BuilderID 2614 35, // 48: buildbucket.v2.BuildPredicate.status:type_name -> buildbucket.v2.Status 2615 28, // 49: buildbucket.v2.BuildPredicate.gerrit_changes:type_name -> buildbucket.v2.GerritChange 2616 27, // 50: buildbucket.v2.BuildPredicate.output_gitiles_commit:type_name -> buildbucket.v2.GitilesCommit 2617 29, // 51: buildbucket.v2.BuildPredicate.tags:type_name -> buildbucket.v2.StringPair 2618 36, // 52: buildbucket.v2.BuildPredicate.create_time:type_name -> buildbucket.v2.TimeRange 2619 15, // 53: buildbucket.v2.BuildPredicate.build:type_name -> buildbucket.v2.BuildRange 2620 25, // 54: buildbucket.v2.BuildPredicate.canary:type_name -> buildbucket.v2.Trinary 2621 0, // 55: buildbucket.v2.BatchRequest.Request.get_build:type_name -> buildbucket.v2.GetBuildRequest 2622 1, // 56: buildbucket.v2.BatchRequest.Request.search_builds:type_name -> buildbucket.v2.SearchBuildsRequest 2623 6, // 57: buildbucket.v2.BatchRequest.Request.schedule_build:type_name -> buildbucket.v2.ScheduleBuildRequest 2624 7, // 58: buildbucket.v2.BatchRequest.Request.cancel_build:type_name -> buildbucket.v2.CancelBuildRequest 2625 12, // 59: buildbucket.v2.BatchRequest.Request.get_build_status:type_name -> buildbucket.v2.GetBuildStatusRequest 2626 24, // 60: buildbucket.v2.BatchResponse.Response.get_build:type_name -> buildbucket.v2.Build 2627 2, // 61: buildbucket.v2.BatchResponse.Response.search_builds:type_name -> buildbucket.v2.SearchBuildsResponse 2628 24, // 62: buildbucket.v2.BatchResponse.Response.schedule_build:type_name -> buildbucket.v2.Build 2629 24, // 63: buildbucket.v2.BatchResponse.Response.cancel_build:type_name -> buildbucket.v2.Build 2630 24, // 64: buildbucket.v2.BatchResponse.Response.get_build_status:type_name -> buildbucket.v2.Build 2631 37, // 65: buildbucket.v2.BatchResponse.Response.error:type_name -> google.rpc.Status 2632 0, // 66: buildbucket.v2.Builds.GetBuild:input_type -> buildbucket.v2.GetBuildRequest 2633 1, // 67: buildbucket.v2.Builds.SearchBuilds:input_type -> buildbucket.v2.SearchBuildsRequest 2634 5, // 68: buildbucket.v2.Builds.UpdateBuild:input_type -> buildbucket.v2.UpdateBuildRequest 2635 6, // 69: buildbucket.v2.Builds.ScheduleBuild:input_type -> buildbucket.v2.ScheduleBuildRequest 2636 7, // 70: buildbucket.v2.Builds.CancelBuild:input_type -> buildbucket.v2.CancelBuildRequest 2637 3, // 71: buildbucket.v2.Builds.Batch:input_type -> buildbucket.v2.BatchRequest 2638 8, // 72: buildbucket.v2.Builds.CreateBuild:input_type -> buildbucket.v2.CreateBuildRequest 2639 9, // 73: buildbucket.v2.Builds.SynthesizeBuild:input_type -> buildbucket.v2.SynthesizeBuildRequest 2640 12, // 74: buildbucket.v2.Builds.GetBuildStatus:input_type -> buildbucket.v2.GetBuildStatusRequest 2641 10, // 75: buildbucket.v2.Builds.StartBuild:input_type -> buildbucket.v2.StartBuildRequest 2642 24, // 76: buildbucket.v2.Builds.GetBuild:output_type -> buildbucket.v2.Build 2643 2, // 77: buildbucket.v2.Builds.SearchBuilds:output_type -> buildbucket.v2.SearchBuildsResponse 2644 24, // 78: buildbucket.v2.Builds.UpdateBuild:output_type -> buildbucket.v2.Build 2645 24, // 79: buildbucket.v2.Builds.ScheduleBuild:output_type -> buildbucket.v2.Build 2646 24, // 80: buildbucket.v2.Builds.CancelBuild:output_type -> buildbucket.v2.Build 2647 4, // 81: buildbucket.v2.Builds.Batch:output_type -> buildbucket.v2.BatchResponse 2648 24, // 82: buildbucket.v2.Builds.CreateBuild:output_type -> buildbucket.v2.Build 2649 24, // 83: buildbucket.v2.Builds.SynthesizeBuild:output_type -> buildbucket.v2.Build 2650 24, // 84: buildbucket.v2.Builds.GetBuildStatus:output_type -> buildbucket.v2.Build 2651 11, // 85: buildbucket.v2.Builds.StartBuild:output_type -> buildbucket.v2.StartBuildResponse 2652 76, // [76:86] is the sub-list for method output_type 2653 66, // [66:76] is the sub-list for method input_type 2654 66, // [66:66] is the sub-list for extension type_name 2655 66, // [66:66] is the sub-list for extension extendee 2656 0, // [0:66] is the sub-list for field type_name 2657 } 2658 2659 func init() { file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_init() } 2660 func file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_init() { 2661 if File_go_chromium_org_luci_buildbucket_proto_builds_service_proto != nil { 2662 return 2663 } 2664 file_go_chromium_org_luci_buildbucket_proto_build_proto_init() 2665 file_go_chromium_org_luci_buildbucket_proto_builder_common_proto_init() 2666 file_go_chromium_org_luci_buildbucket_proto_common_proto_init() 2667 file_go_chromium_org_luci_buildbucket_proto_notification_proto_init() 2668 if !protoimpl.UnsafeEnabled { 2669 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2670 switch v := v.(*GetBuildRequest); i { 2671 case 0: 2672 return &v.state 2673 case 1: 2674 return &v.sizeCache 2675 case 2: 2676 return &v.unknownFields 2677 default: 2678 return nil 2679 } 2680 } 2681 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2682 switch v := v.(*SearchBuildsRequest); i { 2683 case 0: 2684 return &v.state 2685 case 1: 2686 return &v.sizeCache 2687 case 2: 2688 return &v.unknownFields 2689 default: 2690 return nil 2691 } 2692 } 2693 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2694 switch v := v.(*SearchBuildsResponse); i { 2695 case 0: 2696 return &v.state 2697 case 1: 2698 return &v.sizeCache 2699 case 2: 2700 return &v.unknownFields 2701 default: 2702 return nil 2703 } 2704 } 2705 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2706 switch v := v.(*BatchRequest); i { 2707 case 0: 2708 return &v.state 2709 case 1: 2710 return &v.sizeCache 2711 case 2: 2712 return &v.unknownFields 2713 default: 2714 return nil 2715 } 2716 } 2717 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2718 switch v := v.(*BatchResponse); i { 2719 case 0: 2720 return &v.state 2721 case 1: 2722 return &v.sizeCache 2723 case 2: 2724 return &v.unknownFields 2725 default: 2726 return nil 2727 } 2728 } 2729 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2730 switch v := v.(*UpdateBuildRequest); i { 2731 case 0: 2732 return &v.state 2733 case 1: 2734 return &v.sizeCache 2735 case 2: 2736 return &v.unknownFields 2737 default: 2738 return nil 2739 } 2740 } 2741 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2742 switch v := v.(*ScheduleBuildRequest); i { 2743 case 0: 2744 return &v.state 2745 case 1: 2746 return &v.sizeCache 2747 case 2: 2748 return &v.unknownFields 2749 default: 2750 return nil 2751 } 2752 } 2753 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2754 switch v := v.(*CancelBuildRequest); i { 2755 case 0: 2756 return &v.state 2757 case 1: 2758 return &v.sizeCache 2759 case 2: 2760 return &v.unknownFields 2761 default: 2762 return nil 2763 } 2764 } 2765 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2766 switch v := v.(*CreateBuildRequest); i { 2767 case 0: 2768 return &v.state 2769 case 1: 2770 return &v.sizeCache 2771 case 2: 2772 return &v.unknownFields 2773 default: 2774 return nil 2775 } 2776 } 2777 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2778 switch v := v.(*SynthesizeBuildRequest); i { 2779 case 0: 2780 return &v.state 2781 case 1: 2782 return &v.sizeCache 2783 case 2: 2784 return &v.unknownFields 2785 default: 2786 return nil 2787 } 2788 } 2789 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2790 switch v := v.(*StartBuildRequest); i { 2791 case 0: 2792 return &v.state 2793 case 1: 2794 return &v.sizeCache 2795 case 2: 2796 return &v.unknownFields 2797 default: 2798 return nil 2799 } 2800 } 2801 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2802 switch v := v.(*StartBuildResponse); i { 2803 case 0: 2804 return &v.state 2805 case 1: 2806 return &v.sizeCache 2807 case 2: 2808 return &v.unknownFields 2809 default: 2810 return nil 2811 } 2812 } 2813 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2814 switch v := v.(*GetBuildStatusRequest); i { 2815 case 0: 2816 return &v.state 2817 case 1: 2818 return &v.sizeCache 2819 case 2: 2820 return &v.unknownFields 2821 default: 2822 return nil 2823 } 2824 } 2825 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2826 switch v := v.(*BuildMask); i { 2827 case 0: 2828 return &v.state 2829 case 1: 2830 return &v.sizeCache 2831 case 2: 2832 return &v.unknownFields 2833 default: 2834 return nil 2835 } 2836 } 2837 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2838 switch v := v.(*BuildPredicate); i { 2839 case 0: 2840 return &v.state 2841 case 1: 2842 return &v.sizeCache 2843 case 2: 2844 return &v.unknownFields 2845 default: 2846 return nil 2847 } 2848 } 2849 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2850 switch v := v.(*BuildRange); i { 2851 case 0: 2852 return &v.state 2853 case 1: 2854 return &v.sizeCache 2855 case 2: 2856 return &v.unknownFields 2857 default: 2858 return nil 2859 } 2860 } 2861 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2862 switch v := v.(*BatchRequest_Request); i { 2863 case 0: 2864 return &v.state 2865 case 1: 2866 return &v.sizeCache 2867 case 2: 2868 return &v.unknownFields 2869 default: 2870 return nil 2871 } 2872 } 2873 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2874 switch v := v.(*BatchResponse_Response); i { 2875 case 0: 2876 return &v.state 2877 case 1: 2878 return &v.sizeCache 2879 case 2: 2880 return &v.unknownFields 2881 default: 2882 return nil 2883 } 2884 } 2885 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2886 switch v := v.(*ScheduleBuildRequest_Swarming); i { 2887 case 0: 2888 return &v.state 2889 case 1: 2890 return &v.sizeCache 2891 case 2: 2892 return &v.unknownFields 2893 default: 2894 return nil 2895 } 2896 } 2897 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 2898 switch v := v.(*ScheduleBuildRequest_ShadowInput); i { 2899 case 0: 2900 return &v.state 2901 case 1: 2902 return &v.sizeCache 2903 case 2: 2904 return &v.unknownFields 2905 default: 2906 return nil 2907 } 2908 } 2909 } 2910 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[16].OneofWrappers = []interface{}{ 2911 (*BatchRequest_Request_GetBuild)(nil), 2912 (*BatchRequest_Request_SearchBuilds)(nil), 2913 (*BatchRequest_Request_ScheduleBuild)(nil), 2914 (*BatchRequest_Request_CancelBuild)(nil), 2915 (*BatchRequest_Request_GetBuildStatus)(nil), 2916 } 2917 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[17].OneofWrappers = []interface{}{ 2918 (*BatchResponse_Response_GetBuild)(nil), 2919 (*BatchResponse_Response_SearchBuilds)(nil), 2920 (*BatchResponse_Response_ScheduleBuild)(nil), 2921 (*BatchResponse_Response_CancelBuild)(nil), 2922 (*BatchResponse_Response_GetBuildStatus)(nil), 2923 (*BatchResponse_Response_Error)(nil), 2924 } 2925 type x struct{} 2926 out := protoimpl.TypeBuilder{ 2927 File: protoimpl.DescBuilder{ 2928 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2929 RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc, 2930 NumEnums: 0, 2931 NumMessages: 22, 2932 NumExtensions: 0, 2933 NumServices: 1, 2934 }, 2935 GoTypes: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_goTypes, 2936 DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_depIdxs, 2937 MessageInfos: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes, 2938 }.Build() 2939 File_go_chromium_org_luci_buildbucket_proto_builds_service_proto = out.File 2940 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc = nil 2941 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_goTypes = nil 2942 file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_depIdxs = nil 2943 } 2944 2945 // Reference imports to suppress errors if they are not otherwise used. 2946 var _ context.Context 2947 var _ grpc.ClientConnInterface 2948 2949 // This is a compile-time assertion to ensure that this generated file 2950 // is compatible with the grpc package it is being compiled against. 2951 const _ = grpc.SupportPackageIsVersion6 2952 2953 // BuildsClient is the client API for Builds service. 2954 // 2955 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 2956 type BuildsClient interface { 2957 // Gets a build. 2958 // 2959 // By default the returned build does not include all fields. 2960 // See GetBuildRequest.mask. 2961 // 2962 // Buildbot: if the specified build is a buildbot build, converts it to Build 2963 // message with the following rules: 2964 // - bucket names are full, e.g. "luci.infra.try". Note that LUCI buckets 2965 // in v2 are shortened, e.g. "try". 2966 // - if a v2 Build field does not make sense in V1, it is unset/empty. 2967 // - step support is not implemented for Buildbot builds. 2968 // 2969 // Note that it does not support getting a buildbot build by build number. 2970 // Examples: go/buildbucket-rpc#getbuild 2971 // 2972 // GetBuild is good for getting detailed information for a build. 2973 // For use cases that only requires build status checking (e.g. wait for a 2974 // build to complete), please use GetBuildStatus instead. 2975 GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) 2976 // Searches for builds. 2977 // Examples: go/buildbucket-rpc#searchbuilds 2978 SearchBuilds(ctx context.Context, in *SearchBuildsRequest, opts ...grpc.CallOption) (*SearchBuildsResponse, error) 2979 // Updates a build. 2980 // 2981 // RPC metadata must include "x-buildbucket-token" key with a token 2982 // generated by the server when scheduling the build. 2983 UpdateBuild(ctx context.Context, in *UpdateBuildRequest, opts ...grpc.CallOption) (*Build, error) 2984 // Schedules a new build. 2985 // The requester must have at least SCHEDULER role in the destination bucket. 2986 // Example: go/buildbucket-rpc#schedulebuild 2987 ScheduleBuild(ctx context.Context, in *ScheduleBuildRequest, opts ...grpc.CallOption) (*Build, error) 2988 // Cancels a build. 2989 // The requester must have at least SCHEDULER role in the destination bucket. 2990 // Note that cancelling a build in ended state (meaning build is not in 2991 // STATUS_UNSPECIFIED, SCHEDULED or STARTED status) will be a no-op and 2992 // directly return up-to-date Build message. 2993 // 2994 // When called, Buildbucket will set the build's cancelTime to "now". It 2995 // will also recursively start the cancellation process for any children of 2996 // this build which are marked as can_outlive_parent=false. 2997 // 2998 // The next time the build checks in (which happens periodically in 2999 // `bbagent`), bbagent will see the cancelTime, and start the cancellation 3000 // process described by the 'deadline' section in 3001 // https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md. 3002 // 3003 // If the build ends before the build's grace_period, then the final status 3004 // reported from the build is accepted; this is considered 'graceful termination'. 3005 // 3006 // If the build doesn't end within the build's grace_period, Buildbucket will 3007 // forcibly cancel the build. 3008 CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) 3009 // Executes multiple requests in a batch. 3010 // The response code is always OK. 3011 // Examples: go/buildbucket-rpc#batch 3012 Batch(ctx context.Context, in *BatchRequest, opts ...grpc.CallOption) (*BatchResponse, error) 3013 // Creates a new build for the provided build proto. 3014 // 3015 // If build with the given ID already exists, returns ALREADY_EXISTS 3016 // error code. 3017 CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*Build, error) 3018 // Synthesizes a build proto. 3019 // 3020 // This RPC is exclusively for generating led builds. 3021 SynthesizeBuild(ctx context.Context, in *SynthesizeBuildRequest, opts ...grpc.CallOption) (*Build, error) 3022 // Gets a build's status. 3023 // 3024 // The returned build contains the requested build id or 3025 // (builder + build number), and build status. 3026 // 3027 // It's useful when a user only wants to check the build's status (i.e. wait 3028 // for a build to complete). 3029 GetBuildStatus(ctx context.Context, in *GetBuildStatusRequest, opts ...grpc.CallOption) (*Build, error) 3030 // Starts a build. 3031 // 3032 // RPC metadata must include "x-buildbucket-token" key with 3033 // - a BUILD type token generated by the server when it creates a Swarming 3034 // task for the build (builds on Swarming) or 3035 // - a START_BUILD type token generated by the server when it attempts to run 3036 // a backend task (builds on TaskBackend). 3037 // 3038 // Agent must call it before making any UpdateBuild calls. 3039 // 3040 // StartBuild will associate a task with a build if the association is not done 3041 // after RunTaskResponse is returned to buildbucket. 3042 StartBuild(ctx context.Context, in *StartBuildRequest, opts ...grpc.CallOption) (*StartBuildResponse, error) 3043 } 3044 type buildsPRPCClient struct { 3045 client *prpc.Client 3046 } 3047 3048 func NewBuildsPRPCClient(client *prpc.Client) BuildsClient { 3049 return &buildsPRPCClient{client} 3050 } 3051 3052 func (c *buildsPRPCClient) GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3053 out := new(Build) 3054 err := c.client.Call(ctx, "buildbucket.v2.Builds", "GetBuild", in, out, opts...) 3055 if err != nil { 3056 return nil, err 3057 } 3058 return out, nil 3059 } 3060 3061 func (c *buildsPRPCClient) SearchBuilds(ctx context.Context, in *SearchBuildsRequest, opts ...grpc.CallOption) (*SearchBuildsResponse, error) { 3062 out := new(SearchBuildsResponse) 3063 err := c.client.Call(ctx, "buildbucket.v2.Builds", "SearchBuilds", in, out, opts...) 3064 if err != nil { 3065 return nil, err 3066 } 3067 return out, nil 3068 } 3069 3070 func (c *buildsPRPCClient) UpdateBuild(ctx context.Context, in *UpdateBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3071 out := new(Build) 3072 err := c.client.Call(ctx, "buildbucket.v2.Builds", "UpdateBuild", in, out, opts...) 3073 if err != nil { 3074 return nil, err 3075 } 3076 return out, nil 3077 } 3078 3079 func (c *buildsPRPCClient) ScheduleBuild(ctx context.Context, in *ScheduleBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3080 out := new(Build) 3081 err := c.client.Call(ctx, "buildbucket.v2.Builds", "ScheduleBuild", in, out, opts...) 3082 if err != nil { 3083 return nil, err 3084 } 3085 return out, nil 3086 } 3087 3088 func (c *buildsPRPCClient) CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3089 out := new(Build) 3090 err := c.client.Call(ctx, "buildbucket.v2.Builds", "CancelBuild", in, out, opts...) 3091 if err != nil { 3092 return nil, err 3093 } 3094 return out, nil 3095 } 3096 3097 func (c *buildsPRPCClient) Batch(ctx context.Context, in *BatchRequest, opts ...grpc.CallOption) (*BatchResponse, error) { 3098 out := new(BatchResponse) 3099 err := c.client.Call(ctx, "buildbucket.v2.Builds", "Batch", in, out, opts...) 3100 if err != nil { 3101 return nil, err 3102 } 3103 return out, nil 3104 } 3105 3106 func (c *buildsPRPCClient) CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3107 out := new(Build) 3108 err := c.client.Call(ctx, "buildbucket.v2.Builds", "CreateBuild", in, out, opts...) 3109 if err != nil { 3110 return nil, err 3111 } 3112 return out, nil 3113 } 3114 3115 func (c *buildsPRPCClient) SynthesizeBuild(ctx context.Context, in *SynthesizeBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3116 out := new(Build) 3117 err := c.client.Call(ctx, "buildbucket.v2.Builds", "SynthesizeBuild", in, out, opts...) 3118 if err != nil { 3119 return nil, err 3120 } 3121 return out, nil 3122 } 3123 3124 func (c *buildsPRPCClient) GetBuildStatus(ctx context.Context, in *GetBuildStatusRequest, opts ...grpc.CallOption) (*Build, error) { 3125 out := new(Build) 3126 err := c.client.Call(ctx, "buildbucket.v2.Builds", "GetBuildStatus", in, out, opts...) 3127 if err != nil { 3128 return nil, err 3129 } 3130 return out, nil 3131 } 3132 3133 func (c *buildsPRPCClient) StartBuild(ctx context.Context, in *StartBuildRequest, opts ...grpc.CallOption) (*StartBuildResponse, error) { 3134 out := new(StartBuildResponse) 3135 err := c.client.Call(ctx, "buildbucket.v2.Builds", "StartBuild", in, out, opts...) 3136 if err != nil { 3137 return nil, err 3138 } 3139 return out, nil 3140 } 3141 3142 type buildsClient struct { 3143 cc grpc.ClientConnInterface 3144 } 3145 3146 func NewBuildsClient(cc grpc.ClientConnInterface) BuildsClient { 3147 return &buildsClient{cc} 3148 } 3149 3150 func (c *buildsClient) GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3151 out := new(Build) 3152 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/GetBuild", in, out, opts...) 3153 if err != nil { 3154 return nil, err 3155 } 3156 return out, nil 3157 } 3158 3159 func (c *buildsClient) SearchBuilds(ctx context.Context, in *SearchBuildsRequest, opts ...grpc.CallOption) (*SearchBuildsResponse, error) { 3160 out := new(SearchBuildsResponse) 3161 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/SearchBuilds", in, out, opts...) 3162 if err != nil { 3163 return nil, err 3164 } 3165 return out, nil 3166 } 3167 3168 func (c *buildsClient) UpdateBuild(ctx context.Context, in *UpdateBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3169 out := new(Build) 3170 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/UpdateBuild", in, out, opts...) 3171 if err != nil { 3172 return nil, err 3173 } 3174 return out, nil 3175 } 3176 3177 func (c *buildsClient) ScheduleBuild(ctx context.Context, in *ScheduleBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3178 out := new(Build) 3179 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/ScheduleBuild", in, out, opts...) 3180 if err != nil { 3181 return nil, err 3182 } 3183 return out, nil 3184 } 3185 3186 func (c *buildsClient) CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3187 out := new(Build) 3188 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/CancelBuild", in, out, opts...) 3189 if err != nil { 3190 return nil, err 3191 } 3192 return out, nil 3193 } 3194 3195 func (c *buildsClient) Batch(ctx context.Context, in *BatchRequest, opts ...grpc.CallOption) (*BatchResponse, error) { 3196 out := new(BatchResponse) 3197 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/Batch", in, out, opts...) 3198 if err != nil { 3199 return nil, err 3200 } 3201 return out, nil 3202 } 3203 3204 func (c *buildsClient) CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3205 out := new(Build) 3206 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/CreateBuild", in, out, opts...) 3207 if err != nil { 3208 return nil, err 3209 } 3210 return out, nil 3211 } 3212 3213 func (c *buildsClient) SynthesizeBuild(ctx context.Context, in *SynthesizeBuildRequest, opts ...grpc.CallOption) (*Build, error) { 3214 out := new(Build) 3215 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/SynthesizeBuild", in, out, opts...) 3216 if err != nil { 3217 return nil, err 3218 } 3219 return out, nil 3220 } 3221 3222 func (c *buildsClient) GetBuildStatus(ctx context.Context, in *GetBuildStatusRequest, opts ...grpc.CallOption) (*Build, error) { 3223 out := new(Build) 3224 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/GetBuildStatus", in, out, opts...) 3225 if err != nil { 3226 return nil, err 3227 } 3228 return out, nil 3229 } 3230 3231 func (c *buildsClient) StartBuild(ctx context.Context, in *StartBuildRequest, opts ...grpc.CallOption) (*StartBuildResponse, error) { 3232 out := new(StartBuildResponse) 3233 err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/StartBuild", in, out, opts...) 3234 if err != nil { 3235 return nil, err 3236 } 3237 return out, nil 3238 } 3239 3240 // BuildsServer is the server API for Builds service. 3241 type BuildsServer interface { 3242 // Gets a build. 3243 // 3244 // By default the returned build does not include all fields. 3245 // See GetBuildRequest.mask. 3246 // 3247 // Buildbot: if the specified build is a buildbot build, converts it to Build 3248 // message with the following rules: 3249 // - bucket names are full, e.g. "luci.infra.try". Note that LUCI buckets 3250 // in v2 are shortened, e.g. "try". 3251 // - if a v2 Build field does not make sense in V1, it is unset/empty. 3252 // - step support is not implemented for Buildbot builds. 3253 // 3254 // Note that it does not support getting a buildbot build by build number. 3255 // Examples: go/buildbucket-rpc#getbuild 3256 // 3257 // GetBuild is good for getting detailed information for a build. 3258 // For use cases that only requires build status checking (e.g. wait for a 3259 // build to complete), please use GetBuildStatus instead. 3260 GetBuild(context.Context, *GetBuildRequest) (*Build, error) 3261 // Searches for builds. 3262 // Examples: go/buildbucket-rpc#searchbuilds 3263 SearchBuilds(context.Context, *SearchBuildsRequest) (*SearchBuildsResponse, error) 3264 // Updates a build. 3265 // 3266 // RPC metadata must include "x-buildbucket-token" key with a token 3267 // generated by the server when scheduling the build. 3268 UpdateBuild(context.Context, *UpdateBuildRequest) (*Build, error) 3269 // Schedules a new build. 3270 // The requester must have at least SCHEDULER role in the destination bucket. 3271 // Example: go/buildbucket-rpc#schedulebuild 3272 ScheduleBuild(context.Context, *ScheduleBuildRequest) (*Build, error) 3273 // Cancels a build. 3274 // The requester must have at least SCHEDULER role in the destination bucket. 3275 // Note that cancelling a build in ended state (meaning build is not in 3276 // STATUS_UNSPECIFIED, SCHEDULED or STARTED status) will be a no-op and 3277 // directly return up-to-date Build message. 3278 // 3279 // When called, Buildbucket will set the build's cancelTime to "now". It 3280 // will also recursively start the cancellation process for any children of 3281 // this build which are marked as can_outlive_parent=false. 3282 // 3283 // The next time the build checks in (which happens periodically in 3284 // `bbagent`), bbagent will see the cancelTime, and start the cancellation 3285 // process described by the 'deadline' section in 3286 // https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md. 3287 // 3288 // If the build ends before the build's grace_period, then the final status 3289 // reported from the build is accepted; this is considered 'graceful termination'. 3290 // 3291 // If the build doesn't end within the build's grace_period, Buildbucket will 3292 // forcibly cancel the build. 3293 CancelBuild(context.Context, *CancelBuildRequest) (*Build, error) 3294 // Executes multiple requests in a batch. 3295 // The response code is always OK. 3296 // Examples: go/buildbucket-rpc#batch 3297 Batch(context.Context, *BatchRequest) (*BatchResponse, error) 3298 // Creates a new build for the provided build proto. 3299 // 3300 // If build with the given ID already exists, returns ALREADY_EXISTS 3301 // error code. 3302 CreateBuild(context.Context, *CreateBuildRequest) (*Build, error) 3303 // Synthesizes a build proto. 3304 // 3305 // This RPC is exclusively for generating led builds. 3306 SynthesizeBuild(context.Context, *SynthesizeBuildRequest) (*Build, error) 3307 // Gets a build's status. 3308 // 3309 // The returned build contains the requested build id or 3310 // (builder + build number), and build status. 3311 // 3312 // It's useful when a user only wants to check the build's status (i.e. wait 3313 // for a build to complete). 3314 GetBuildStatus(context.Context, *GetBuildStatusRequest) (*Build, error) 3315 // Starts a build. 3316 // 3317 // RPC metadata must include "x-buildbucket-token" key with 3318 // - a BUILD type token generated by the server when it creates a Swarming 3319 // task for the build (builds on Swarming) or 3320 // - a START_BUILD type token generated by the server when it attempts to run 3321 // a backend task (builds on TaskBackend). 3322 // 3323 // Agent must call it before making any UpdateBuild calls. 3324 // 3325 // StartBuild will associate a task with a build if the association is not done 3326 // after RunTaskResponse is returned to buildbucket. 3327 StartBuild(context.Context, *StartBuildRequest) (*StartBuildResponse, error) 3328 } 3329 3330 // UnimplementedBuildsServer can be embedded to have forward compatible implementations. 3331 type UnimplementedBuildsServer struct { 3332 } 3333 3334 func (*UnimplementedBuildsServer) GetBuild(context.Context, *GetBuildRequest) (*Build, error) { 3335 return nil, status1.Errorf(codes.Unimplemented, "method GetBuild not implemented") 3336 } 3337 func (*UnimplementedBuildsServer) SearchBuilds(context.Context, *SearchBuildsRequest) (*SearchBuildsResponse, error) { 3338 return nil, status1.Errorf(codes.Unimplemented, "method SearchBuilds not implemented") 3339 } 3340 func (*UnimplementedBuildsServer) UpdateBuild(context.Context, *UpdateBuildRequest) (*Build, error) { 3341 return nil, status1.Errorf(codes.Unimplemented, "method UpdateBuild not implemented") 3342 } 3343 func (*UnimplementedBuildsServer) ScheduleBuild(context.Context, *ScheduleBuildRequest) (*Build, error) { 3344 return nil, status1.Errorf(codes.Unimplemented, "method ScheduleBuild not implemented") 3345 } 3346 func (*UnimplementedBuildsServer) CancelBuild(context.Context, *CancelBuildRequest) (*Build, error) { 3347 return nil, status1.Errorf(codes.Unimplemented, "method CancelBuild not implemented") 3348 } 3349 func (*UnimplementedBuildsServer) Batch(context.Context, *BatchRequest) (*BatchResponse, error) { 3350 return nil, status1.Errorf(codes.Unimplemented, "method Batch not implemented") 3351 } 3352 func (*UnimplementedBuildsServer) CreateBuild(context.Context, *CreateBuildRequest) (*Build, error) { 3353 return nil, status1.Errorf(codes.Unimplemented, "method CreateBuild not implemented") 3354 } 3355 func (*UnimplementedBuildsServer) SynthesizeBuild(context.Context, *SynthesizeBuildRequest) (*Build, error) { 3356 return nil, status1.Errorf(codes.Unimplemented, "method SynthesizeBuild not implemented") 3357 } 3358 func (*UnimplementedBuildsServer) GetBuildStatus(context.Context, *GetBuildStatusRequest) (*Build, error) { 3359 return nil, status1.Errorf(codes.Unimplemented, "method GetBuildStatus not implemented") 3360 } 3361 func (*UnimplementedBuildsServer) StartBuild(context.Context, *StartBuildRequest) (*StartBuildResponse, error) { 3362 return nil, status1.Errorf(codes.Unimplemented, "method StartBuild not implemented") 3363 } 3364 3365 func RegisterBuildsServer(s prpc.Registrar, srv BuildsServer) { 3366 s.RegisterService(&_Builds_serviceDesc, srv) 3367 } 3368 3369 func _Builds_GetBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3370 in := new(GetBuildRequest) 3371 if err := dec(in); err != nil { 3372 return nil, err 3373 } 3374 if interceptor == nil { 3375 return srv.(BuildsServer).GetBuild(ctx, in) 3376 } 3377 info := &grpc.UnaryServerInfo{ 3378 Server: srv, 3379 FullMethod: "/buildbucket.v2.Builds/GetBuild", 3380 } 3381 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3382 return srv.(BuildsServer).GetBuild(ctx, req.(*GetBuildRequest)) 3383 } 3384 return interceptor(ctx, in, info, handler) 3385 } 3386 3387 func _Builds_SearchBuilds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3388 in := new(SearchBuildsRequest) 3389 if err := dec(in); err != nil { 3390 return nil, err 3391 } 3392 if interceptor == nil { 3393 return srv.(BuildsServer).SearchBuilds(ctx, in) 3394 } 3395 info := &grpc.UnaryServerInfo{ 3396 Server: srv, 3397 FullMethod: "/buildbucket.v2.Builds/SearchBuilds", 3398 } 3399 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3400 return srv.(BuildsServer).SearchBuilds(ctx, req.(*SearchBuildsRequest)) 3401 } 3402 return interceptor(ctx, in, info, handler) 3403 } 3404 3405 func _Builds_UpdateBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3406 in := new(UpdateBuildRequest) 3407 if err := dec(in); err != nil { 3408 return nil, err 3409 } 3410 if interceptor == nil { 3411 return srv.(BuildsServer).UpdateBuild(ctx, in) 3412 } 3413 info := &grpc.UnaryServerInfo{ 3414 Server: srv, 3415 FullMethod: "/buildbucket.v2.Builds/UpdateBuild", 3416 } 3417 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3418 return srv.(BuildsServer).UpdateBuild(ctx, req.(*UpdateBuildRequest)) 3419 } 3420 return interceptor(ctx, in, info, handler) 3421 } 3422 3423 func _Builds_ScheduleBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3424 in := new(ScheduleBuildRequest) 3425 if err := dec(in); err != nil { 3426 return nil, err 3427 } 3428 if interceptor == nil { 3429 return srv.(BuildsServer).ScheduleBuild(ctx, in) 3430 } 3431 info := &grpc.UnaryServerInfo{ 3432 Server: srv, 3433 FullMethod: "/buildbucket.v2.Builds/ScheduleBuild", 3434 } 3435 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3436 return srv.(BuildsServer).ScheduleBuild(ctx, req.(*ScheduleBuildRequest)) 3437 } 3438 return interceptor(ctx, in, info, handler) 3439 } 3440 3441 func _Builds_CancelBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3442 in := new(CancelBuildRequest) 3443 if err := dec(in); err != nil { 3444 return nil, err 3445 } 3446 if interceptor == nil { 3447 return srv.(BuildsServer).CancelBuild(ctx, in) 3448 } 3449 info := &grpc.UnaryServerInfo{ 3450 Server: srv, 3451 FullMethod: "/buildbucket.v2.Builds/CancelBuild", 3452 } 3453 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3454 return srv.(BuildsServer).CancelBuild(ctx, req.(*CancelBuildRequest)) 3455 } 3456 return interceptor(ctx, in, info, handler) 3457 } 3458 3459 func _Builds_Batch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3460 in := new(BatchRequest) 3461 if err := dec(in); err != nil { 3462 return nil, err 3463 } 3464 if interceptor == nil { 3465 return srv.(BuildsServer).Batch(ctx, in) 3466 } 3467 info := &grpc.UnaryServerInfo{ 3468 Server: srv, 3469 FullMethod: "/buildbucket.v2.Builds/Batch", 3470 } 3471 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3472 return srv.(BuildsServer).Batch(ctx, req.(*BatchRequest)) 3473 } 3474 return interceptor(ctx, in, info, handler) 3475 } 3476 3477 func _Builds_CreateBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3478 in := new(CreateBuildRequest) 3479 if err := dec(in); err != nil { 3480 return nil, err 3481 } 3482 if interceptor == nil { 3483 return srv.(BuildsServer).CreateBuild(ctx, in) 3484 } 3485 info := &grpc.UnaryServerInfo{ 3486 Server: srv, 3487 FullMethod: "/buildbucket.v2.Builds/CreateBuild", 3488 } 3489 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3490 return srv.(BuildsServer).CreateBuild(ctx, req.(*CreateBuildRequest)) 3491 } 3492 return interceptor(ctx, in, info, handler) 3493 } 3494 3495 func _Builds_SynthesizeBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3496 in := new(SynthesizeBuildRequest) 3497 if err := dec(in); err != nil { 3498 return nil, err 3499 } 3500 if interceptor == nil { 3501 return srv.(BuildsServer).SynthesizeBuild(ctx, in) 3502 } 3503 info := &grpc.UnaryServerInfo{ 3504 Server: srv, 3505 FullMethod: "/buildbucket.v2.Builds/SynthesizeBuild", 3506 } 3507 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3508 return srv.(BuildsServer).SynthesizeBuild(ctx, req.(*SynthesizeBuildRequest)) 3509 } 3510 return interceptor(ctx, in, info, handler) 3511 } 3512 3513 func _Builds_GetBuildStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3514 in := new(GetBuildStatusRequest) 3515 if err := dec(in); err != nil { 3516 return nil, err 3517 } 3518 if interceptor == nil { 3519 return srv.(BuildsServer).GetBuildStatus(ctx, in) 3520 } 3521 info := &grpc.UnaryServerInfo{ 3522 Server: srv, 3523 FullMethod: "/buildbucket.v2.Builds/GetBuildStatus", 3524 } 3525 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3526 return srv.(BuildsServer).GetBuildStatus(ctx, req.(*GetBuildStatusRequest)) 3527 } 3528 return interceptor(ctx, in, info, handler) 3529 } 3530 3531 func _Builds_StartBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3532 in := new(StartBuildRequest) 3533 if err := dec(in); err != nil { 3534 return nil, err 3535 } 3536 if interceptor == nil { 3537 return srv.(BuildsServer).StartBuild(ctx, in) 3538 } 3539 info := &grpc.UnaryServerInfo{ 3540 Server: srv, 3541 FullMethod: "/buildbucket.v2.Builds/StartBuild", 3542 } 3543 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3544 return srv.(BuildsServer).StartBuild(ctx, req.(*StartBuildRequest)) 3545 } 3546 return interceptor(ctx, in, info, handler) 3547 } 3548 3549 var _Builds_serviceDesc = grpc.ServiceDesc{ 3550 ServiceName: "buildbucket.v2.Builds", 3551 HandlerType: (*BuildsServer)(nil), 3552 Methods: []grpc.MethodDesc{ 3553 { 3554 MethodName: "GetBuild", 3555 Handler: _Builds_GetBuild_Handler, 3556 }, 3557 { 3558 MethodName: "SearchBuilds", 3559 Handler: _Builds_SearchBuilds_Handler, 3560 }, 3561 { 3562 MethodName: "UpdateBuild", 3563 Handler: _Builds_UpdateBuild_Handler, 3564 }, 3565 { 3566 MethodName: "ScheduleBuild", 3567 Handler: _Builds_ScheduleBuild_Handler, 3568 }, 3569 { 3570 MethodName: "CancelBuild", 3571 Handler: _Builds_CancelBuild_Handler, 3572 }, 3573 { 3574 MethodName: "Batch", 3575 Handler: _Builds_Batch_Handler, 3576 }, 3577 { 3578 MethodName: "CreateBuild", 3579 Handler: _Builds_CreateBuild_Handler, 3580 }, 3581 { 3582 MethodName: "SynthesizeBuild", 3583 Handler: _Builds_SynthesizeBuild_Handler, 3584 }, 3585 { 3586 MethodName: "GetBuildStatus", 3587 Handler: _Builds_GetBuildStatus_Handler, 3588 }, 3589 { 3590 MethodName: "StartBuild", 3591 Handler: _Builds_StartBuild_Handler, 3592 }, 3593 }, 3594 Streams: []grpc.StreamDesc{}, 3595 Metadata: "go.chromium.org/luci/buildbucket/proto/builds_service.proto", 3596 }