| // Copyright 2020 The Swarming Authors. All rights reserved. |
| // Use of this source code is governed by the Apache v2.0 license that can be |
| // found in the LICENSE file. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.33.0 |
| // protoc v5.26.1 |
| // source: go.chromium.org/luci/buildbucket/proto/builds_service.proto |
| |
| package buildbucketpb |
| |
| import prpc "go.chromium.org/luci/grpc/prpc" |
| |
| import ( |
| context "context" |
| structmask "go.chromium.org/luci/common/proto/structmask" |
| _ "google.golang.org/genproto/googleapis/api/annotations" |
| status "google.golang.org/genproto/googleapis/rpc/status" |
| grpc "google.golang.org/grpc" |
| codes "google.golang.org/grpc/codes" |
| status1 "google.golang.org/grpc/status" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| durationpb "google.golang.org/protobuf/types/known/durationpb" |
| fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" |
| structpb "google.golang.org/protobuf/types/known/structpb" |
| reflect "reflect" |
| sync "sync" |
| ) |
| |
| const ( |
| // Verify that this generated code is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
| // Verify that runtime/protoimpl is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
| ) |
| |
| // A request message for GetBuild RPC. |
| type GetBuildRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Build ID. |
| // Mutually exclusive with builder and number. |
| Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` |
| // Builder of the build. |
| // Requires number. Mutually exclusive with id. |
| Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` |
| // Build number. |
| // Requires builder. Mutually exclusive with id. |
| BuildNumber int32 `protobuf:"varint,3,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` |
| // Fields to include in the response. |
| // |
| // DEPRECATED: Use mask instead. |
| // |
| // If not set, the default mask is used, see Build message comments for the |
| // list of fields returned by default. |
| // |
| // Supports advanced semantics, see |
| // https://chromium.googlesource.com/infra/luci/luci-py/+/f9ae69a37c4bdd0e08a8b0f7e123f6e403e774eb/appengine/components/components/protoutil/field_masks.py#7 |
| // In particular, if the client needs only some output properties, they |
| // can be requested with paths "output.properties.fields.foo". |
| // |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` |
| // What portion of the Build message to return. |
| // |
| // If not set, the default mask is used, see Build message comments for the |
| // list of fields returned by default. |
| Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` |
| } |
| |
| func (x *GetBuildRequest) Reset() { |
| *x = GetBuildRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetBuildRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetBuildRequest) ProtoMessage() {} |
| |
| func (x *GetBuildRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[0] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use GetBuildRequest.ProtoReflect.Descriptor instead. |
| func (*GetBuildRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *GetBuildRequest) GetId() int64 { |
| if x != nil { |
| return x.Id |
| } |
| return 0 |
| } |
| |
| func (x *GetBuildRequest) GetBuilder() *BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| func (x *GetBuildRequest) GetBuildNumber() int32 { |
| if x != nil { |
| return x.BuildNumber |
| } |
| return 0 |
| } |
| |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| func (x *GetBuildRequest) GetFields() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.Fields |
| } |
| return nil |
| } |
| |
| func (x *GetBuildRequest) GetMask() *BuildMask { |
| if x != nil { |
| return x.Mask |
| } |
| return nil |
| } |
| |
| // A request message for SearchBuilds RPC. |
| type SearchBuildsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Returned builds must satisfy this predicate. Required. |
| Predicate *BuildPredicate `protobuf:"bytes,1,opt,name=predicate,proto3" json:"predicate,omitempty"` |
| // Fields to include in the response, see GetBuildRequest.fields. |
| // |
| // DEPRECATED: Use mask instead. |
| // |
| // Note that this applies to the response, not each build, so e.g. steps must |
| // be requested with a path "builds.*.steps". |
| // |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` |
| // What portion of the Build message to return. |
| // |
| // If not set, the default mask is used, see Build message comments for the |
| // list of fields returned by default. |
| Mask *BuildMask `protobuf:"bytes,103,opt,name=mask,proto3" json:"mask,omitempty"` |
| // Number of builds to return. |
| // Defaults to 100. |
| // Any value >1000 is interpreted as 1000. |
| PageSize int32 `protobuf:"varint,101,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // Value of SearchBuildsResponse.next_page_token from the previous response. |
| // Use it to continue searching. |
| // The predicate and page_size in this request MUST be exactly same as in the |
| // previous request. |
| PageToken string `protobuf:"bytes,102,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| } |
| |
| func (x *SearchBuildsRequest) Reset() { |
| *x = SearchBuildsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchBuildsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchBuildsRequest) ProtoMessage() {} |
| |
| func (x *SearchBuildsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[1] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SearchBuildsRequest.ProtoReflect.Descriptor instead. |
| func (*SearchBuildsRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *SearchBuildsRequest) GetPredicate() *BuildPredicate { |
| if x != nil { |
| return x.Predicate |
| } |
| return nil |
| } |
| |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| func (x *SearchBuildsRequest) GetFields() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.Fields |
| } |
| return nil |
| } |
| |
| func (x *SearchBuildsRequest) GetMask() *BuildMask { |
| if x != nil { |
| return x.Mask |
| } |
| return nil |
| } |
| |
| func (x *SearchBuildsRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *SearchBuildsRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| // A response message for SearchBuilds RPC. |
| type SearchBuildsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Search results. |
| // |
| // Ordered by build ID, descending. IDs are monotonically decreasing, so in |
| // other words the order is newest-to-oldest. |
| Builds []*Build `protobuf:"bytes,1,rep,name=builds,proto3" json:"builds,omitempty"` |
| // Value for SearchBuildsRequest.page_token to continue searching. |
| NextPageToken string `protobuf:"bytes,100,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| } |
| |
| func (x *SearchBuildsResponse) Reset() { |
| *x = SearchBuildsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchBuildsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchBuildsResponse) ProtoMessage() {} |
| |
| func (x *SearchBuildsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[2] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SearchBuildsResponse.ProtoReflect.Descriptor instead. |
| func (*SearchBuildsResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *SearchBuildsResponse) GetBuilds() []*Build { |
| if x != nil { |
| return x.Builds |
| } |
| return nil |
| } |
| |
| func (x *SearchBuildsResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| // A request message for Batch RPC. |
| type BatchRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Requests to execute in a single batch. |
| // |
| // - All requests are executed in their own individual transactions. |
| // - BatchRequest as a whole is not transactional. |
| // - There's no guaranteed order of execution between batch items (i.e. |
| // consider them to all operate independently). |
| // - There is a limit of 200 requests per batch. |
| Requests []*BatchRequest_Request `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` |
| } |
| |
| func (x *BatchRequest) Reset() { |
| *x = BatchRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BatchRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BatchRequest) ProtoMessage() {} |
| |
| func (x *BatchRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[3] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BatchRequest.ProtoReflect.Descriptor instead. |
| func (*BatchRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *BatchRequest) GetRequests() []*BatchRequest_Request { |
| if x != nil { |
| return x.Requests |
| } |
| return nil |
| } |
| |
| // A response message for Batch RPC. |
| type BatchResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Responses in the same order as BatchRequest.requests. |
| Responses []*BatchResponse_Response `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` |
| } |
| |
| func (x *BatchResponse) Reset() { |
| *x = BatchResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BatchResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BatchResponse) ProtoMessage() {} |
| |
| func (x *BatchResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[4] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BatchResponse.ProtoReflect.Descriptor instead. |
| func (*BatchResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *BatchResponse) GetResponses() []*BatchResponse_Response { |
| if x != nil { |
| return x.Responses |
| } |
| return nil |
| } |
| |
| // A request message for UpdateBuild RPC. |
| type UpdateBuildRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Build to update, with new field values. |
| Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` |
| // Build fields to update. |
| // See also |
| // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask |
| // |
| // Currently supports only the following path strings: |
| // - build.output |
| // - build.output.properties |
| // - build.output.gitiles_commit |
| // - build.output.status |
| // - build.output.status_details |
| // - build.output.summary_markdown |
| // - build.status |
| // - build.status_details |
| // - build.steps |
| // - build.summary_markdown |
| // - build.tags |
| // - build.infra.buildbucket.agent.output |
| // - build.infra.buildbucket.agent.purposes |
| // |
| // Note, "build.output.status" is required explicitly to update the field. |
| // If there is only "build.output" in update_mask, build.output.status will not |
| // be updated. |
| // |
| // If omitted, Buildbucket will update the Build's update_time, but nothing else. |
| UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` |
| // Fields to include in the response. See also GetBuildRequest.fields. |
| // |
| // DEPRECATED: Use mask instead. |
| // |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` |
| // What portion of the Build message to return. |
| // |
| // If not set, an empty build will be returned. |
| Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` |
| } |
| |
| func (x *UpdateBuildRequest) Reset() { |
| *x = UpdateBuildRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UpdateBuildRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UpdateBuildRequest) ProtoMessage() {} |
| |
| func (x *UpdateBuildRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[5] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use UpdateBuildRequest.ProtoReflect.Descriptor instead. |
| func (*UpdateBuildRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *UpdateBuildRequest) GetBuild() *Build { |
| if x != nil { |
| return x.Build |
| } |
| return nil |
| } |
| |
| func (x *UpdateBuildRequest) GetUpdateMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.UpdateMask |
| } |
| return nil |
| } |
| |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| func (x *UpdateBuildRequest) GetFields() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.Fields |
| } |
| return nil |
| } |
| |
| func (x *UpdateBuildRequest) GetMask() *BuildMask { |
| if x != nil { |
| return x.Mask |
| } |
| return nil |
| } |
| |
| // A request message for ScheduleBuild RPC. |
| // |
| // Next ID: 25. |
| type ScheduleBuildRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ** STRONGLY RECOMMENDED **. |
| // A unique string id used for detecting duplicate requests. |
| // Should be unique at least per requesting identity. |
| // Used to dedup build scheduling requests with same id within 1 min. |
| // If a build was successfully scheduled with the same request id in the past |
| // minute, the existing build will be returned. |
| RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` |
| // ID of a build to retry as is or altered. |
| // When specified, fields below default to the values in the template build. |
| TemplateBuildId int64 `protobuf:"varint,2,opt,name=template_build_id,json=templateBuildId,proto3" json:"template_build_id,omitempty"` |
| // Value for Build.builder. See its comments. |
| // Required, unless template_build_id is specified. |
| Builder *BuilderID `protobuf:"bytes,3,opt,name=builder,proto3" json:"builder,omitempty"` |
| // DEPRECATED |
| // |
| // Set "luci.buildbucket.canary_software" in `experiments` instead. |
| // |
| // YES sets "luci.buildbucket.canary_software" to true in `experiments`. |
| // NO sets "luci.buildbucket.canary_software" to false in `experiments`. |
| Canary Trinary `protobuf:"varint,4,opt,name=canary,proto3,enum=buildbucket.v2.Trinary" json:"canary,omitempty"` |
| // DEPRECATED |
| // |
| // Set "luci.non_production" in `experiments` instead. |
| // |
| // YES sets "luci.non_production" to true in `experiments`. |
| // NO sets "luci.non_production" to false in `experiments`. |
| Experimental Trinary `protobuf:"varint,5,opt,name=experimental,proto3,enum=buildbucket.v2.Trinary" json:"experimental,omitempty"` |
| // Sets (or prevents) these experiments on the scheduled build. |
| // |
| // See `Builder.experiments` for well-known experiments. |
| 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"` |
| // Properties to include in Build.input.properties. |
| // |
| // Input properties of the created build are result of merging server-defined |
| // properties and properties in this field. |
| // Each property in this field defines a new or replaces an existing property |
| // on the server. |
| // If the server config does not allow overriding/adding the property, the |
| // request will fail with InvalidArgument error code. |
| // A server-defined property cannot be removed, but its value can be |
| // replaced with null. |
| // |
| // Reserved property paths: |
| // |
| // ["$recipe_engine/buildbucket"] |
| // ["$recipe_engine/runtime", "is_experimental"] |
| // ["$recipe_engine/runtime", "is_luci"] |
| // ["branch"] |
| // ["buildbucket"] |
| // ["buildername"] |
| // ["repository"] |
| // |
| // The Builder configuration specifies which top-level property names are |
| // overridable via the `allowed_property_overrides` field. ScheduleBuild |
| // requests which attempt to override a property which isn't allowed will |
| // fail with InvalidArgument. |
| // |
| // V1 equivalent: corresponds to "properties" key in "parameters_json". |
| Properties *structpb.Struct `protobuf:"bytes,6,opt,name=properties,proto3" json:"properties,omitempty"` |
| // Value for Build.input.gitiles_commit. |
| // |
| // Setting this field will cause the created build to have a "buildset" |
| // tag with value "commit/gitiles/{hostname}/{project}/+/{id}". |
| // |
| // GitilesCommit objects MUST have host, project, ref fields set. |
| // |
| // V1 equivalent: supersedes "revision" property and "buildset" |
| // tag that starts with "commit/gitiles/". |
| GitilesCommit *GitilesCommit `protobuf:"bytes,7,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"` |
| // Value for Build.input.gerrit_changes. |
| // Usually present in tryjobs, set by CQ, Gerrit, git-cl-try. |
| // Applied on top of gitiles_commit if specified, otherwise tip of the tree. |
| // All GerritChange fields are required. |
| // |
| // Setting this field will cause the created build to have a "buildset" |
| // tag with value "patch/gerrit/{hostname}/{change}/{patchset}" |
| // for each change. |
| // |
| // V1 equivalent: supersedes patch_* properties and "buildset" |
| // tag that starts with "patch/gerrit/". |
| GerritChanges []*GerritChange `protobuf:"bytes,8,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"` |
| // Tags to include in Build.tags of the created build, see Build.tags |
| // comments. |
| // Note: tags of the created build may include other tags defined on the |
| // server. |
| Tags []*StringPair `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags,omitempty"` |
| // Overrides default dimensions defined by builder config or template build. |
| // |
| // A set of entries with the same key defines a new or replaces an existing |
| // dimension with the same key. |
| // If the config does not allow overriding/adding the dimension, the request |
| // will fail with InvalidArgument error code. |
| // |
| // After merging, dimensions with empty value will be excluded. |
| // |
| // Note: For the same key dimensions, it won't allow to pass empty and |
| // non-empty values at the same time in the request. |
| // |
| // Note: "caches" and "pool" dimensions may only be specified in builder |
| // configs. Setting them hear will fail the request. |
| // |
| // A dimension expiration must be a multiple of 1min. |
| Dimensions []*RequestedDimension `protobuf:"bytes,10,rep,name=dimensions,proto3" json:"dimensions,omitempty"` |
| // If not zero, overrides swarming task priority. |
| // See also Build.infra.swarming.priority. |
| Priority int32 `protobuf:"varint,11,opt,name=priority,proto3" json:"priority,omitempty"` |
| // A per-build notification configuration. |
| Notify *NotificationConfig `protobuf:"bytes,12,opt,name=notify,proto3" json:"notify,omitempty"` |
| // Fields to include in the response. See also GetBuildRequest.fields. |
| // |
| // DEPRECATED: Use mask instead. |
| // |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` |
| // What portion of the Build message to return. |
| // |
| // If not set, the default mask is used, see Build message comments for the |
| // list of fields returned by default. |
| Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` |
| // Value for Build.critical. |
| Critical Trinary `protobuf:"varint,13,opt,name=critical,proto3,enum=buildbucket.v2.Trinary" json:"critical,omitempty"` |
| // Overrides Builder.exe in the config. |
| // Supported subfields: cipd_version. |
| Exe *Executable `protobuf:"bytes,14,opt,name=exe,proto3" json:"exe,omitempty"` |
| // Swarming specific part of the build request. |
| Swarming *ScheduleBuildRequest_Swarming `protobuf:"bytes,15,opt,name=swarming,proto3" json:"swarming,omitempty"` |
| // Maximum build pending time. |
| // |
| // If set, overrides the default `expiration_secs` set in builder config. |
| // Only supports seconds precision for now. |
| // For more information, see Build.scheduling_timeout in build.proto. |
| SchedulingTimeout *durationpb.Duration `protobuf:"bytes,17,opt,name=scheduling_timeout,json=schedulingTimeout,proto3" json:"scheduling_timeout,omitempty"` |
| // Maximum build execution time. |
| // |
| // If set, overrides the default `execution_timeout_secs` set in builder config. |
| // Only supports seconds precision for now. |
| // For more information, see Build.execution_timeout in build.proto. |
| ExecutionTimeout *durationpb.Duration `protobuf:"bytes,18,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"` |
| // Amount of cleanup time after execution_timeout. |
| // |
| // If set, overrides the default `grace_period` set in builder config. |
| // Only supports seconds precision for now. |
| // For more information, see Build.grace_period in build.proto. |
| GracePeriod *durationpb.Duration `protobuf:"bytes,19,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"` |
| // Whether or not this request constitutes a dry run. |
| // |
| // A dry run returns the build proto without actually scheduling it. All |
| // fields except those which can only be computed at run-time are filled in. |
| // Does not cause side-effects. When batching, all requests must specify the |
| // same value for dry_run. |
| DryRun bool `protobuf:"varint,20,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"` |
| // Flag to control if the build can outlive its parent. |
| // |
| // If the value is UNSET, it means this build doesn't have any parent, so |
| // the request must not have a head with any BuildToken. |
| // |
| // If the value is anything other than UNSET, then the BuildToken for the |
| // parent build must be set as a header. |
| // Note: it's not currently possible to establish parent/child relationship |
| // except via the parent build at the time the build is launched. |
| // |
| // If the value is NO, it means that the build SHOULD reach a terminal status |
| // (SUCCESS, FAILURE, INFRA_FAILURE or CANCELED) before its parent. If the |
| // child fails to do so, Buildbucket will cancel it some time after the |
| // parent build reaches a terminal status. |
| // |
| // A build that can outlive its parent can also outlive its parent's ancestors. |
| // |
| // If schedule a build without parent, this field must be UNSET. |
| // |
| // If schedule a build with parent, this field should be YES or NO. |
| // But UNSET is also accepted for now, and it has the same effect as YES. |
| // TODO(crbug.com/1031205): after the parent tracking feature is stable, |
| // require this field to be set when scheduling a build with parent. |
| CanOutliveParent Trinary `protobuf:"varint,21,opt,name=can_outlive_parent,json=canOutliveParent,proto3,enum=buildbucket.v2.Trinary" json:"can_outlive_parent,omitempty"` |
| // Value for Build.retriable. |
| Retriable Trinary `protobuf:"varint,22,opt,name=retriable,proto3,enum=buildbucket.v2.Trinary" json:"retriable,omitempty"` |
| // Input for scheduling a build in the shadow bucket. |
| // |
| // If this field is set, it means the build to be scheduled will |
| // - be scheduled in the shadow bucket of the requested bucket, with shadow |
| // adjustments on service_account, dimensions and properties. |
| // - inherit its parent build's agent input and agent source if it has a |
| // parent and `inherit_from_parent` is true. |
| ShadowInput *ScheduleBuildRequest_ShadowInput `protobuf:"bytes,23,opt,name=shadow_input,json=shadowInput,proto3" json:"shadow_input,omitempty"` |
| // ResultDB-specific part of the build request. |
| Resultdb *ScheduleBuildRequest_ResultDB `protobuf:"bytes,24,opt,name=resultdb,proto3" json:"resultdb,omitempty"` |
| } |
| |
| func (x *ScheduleBuildRequest) Reset() { |
| *x = ScheduleBuildRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ScheduleBuildRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ScheduleBuildRequest) ProtoMessage() {} |
| |
| func (x *ScheduleBuildRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[6] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ScheduleBuildRequest.ProtoReflect.Descriptor instead. |
| func (*ScheduleBuildRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *ScheduleBuildRequest) GetRequestId() string { |
| if x != nil { |
| return x.RequestId |
| } |
| return "" |
| } |
| |
| func (x *ScheduleBuildRequest) GetTemplateBuildId() int64 { |
| if x != nil { |
| return x.TemplateBuildId |
| } |
| return 0 |
| } |
| |
| func (x *ScheduleBuildRequest) GetBuilder() *BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetCanary() Trinary { |
| if x != nil { |
| return x.Canary |
| } |
| return Trinary_UNSET |
| } |
| |
| func (x *ScheduleBuildRequest) GetExperimental() Trinary { |
| if x != nil { |
| return x.Experimental |
| } |
| return Trinary_UNSET |
| } |
| |
| func (x *ScheduleBuildRequest) GetExperiments() map[string]bool { |
| if x != nil { |
| return x.Experiments |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetProperties() *structpb.Struct { |
| if x != nil { |
| return x.Properties |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetGitilesCommit() *GitilesCommit { |
| if x != nil { |
| return x.GitilesCommit |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetGerritChanges() []*GerritChange { |
| if x != nil { |
| return x.GerritChanges |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetTags() []*StringPair { |
| if x != nil { |
| return x.Tags |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetDimensions() []*RequestedDimension { |
| if x != nil { |
| return x.Dimensions |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetPriority() int32 { |
| if x != nil { |
| return x.Priority |
| } |
| return 0 |
| } |
| |
| func (x *ScheduleBuildRequest) GetNotify() *NotificationConfig { |
| if x != nil { |
| return x.Notify |
| } |
| return nil |
| } |
| |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| func (x *ScheduleBuildRequest) GetFields() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.Fields |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetMask() *BuildMask { |
| if x != nil { |
| return x.Mask |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetCritical() Trinary { |
| if x != nil { |
| return x.Critical |
| } |
| return Trinary_UNSET |
| } |
| |
| func (x *ScheduleBuildRequest) GetExe() *Executable { |
| if x != nil { |
| return x.Exe |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetSwarming() *ScheduleBuildRequest_Swarming { |
| if x != nil { |
| return x.Swarming |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetSchedulingTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.SchedulingTimeout |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetExecutionTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.ExecutionTimeout |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetGracePeriod() *durationpb.Duration { |
| if x != nil { |
| return x.GracePeriod |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetDryRun() bool { |
| if x != nil { |
| return x.DryRun |
| } |
| return false |
| } |
| |
| func (x *ScheduleBuildRequest) GetCanOutliveParent() Trinary { |
| if x != nil { |
| return x.CanOutliveParent |
| } |
| return Trinary_UNSET |
| } |
| |
| func (x *ScheduleBuildRequest) GetRetriable() Trinary { |
| if x != nil { |
| return x.Retriable |
| } |
| return Trinary_UNSET |
| } |
| |
| func (x *ScheduleBuildRequest) GetShadowInput() *ScheduleBuildRequest_ShadowInput { |
| if x != nil { |
| return x.ShadowInput |
| } |
| return nil |
| } |
| |
| func (x *ScheduleBuildRequest) GetResultdb() *ScheduleBuildRequest_ResultDB { |
| if x != nil { |
| return x.Resultdb |
| } |
| return nil |
| } |
| |
| // A request message for CancelBuild RPC. |
| type CancelBuildRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ID of the build to cancel. |
| Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` |
| // Required. Value for Build.cancellation_markdown. Will be appended to |
| // Build.summary_markdown when exporting to bigquery and returned via GetBuild. |
| SummaryMarkdown string `protobuf:"bytes,2,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"` |
| // Fields to include in the response. See also GetBuildRequest.fields. |
| // |
| // DEPRECATED: Use mask instead. |
| // |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,omitempty"` |
| // What portion of the Build message to return. |
| // |
| // If not set, the default mask is used, see Build message comments for the |
| // list of fields returned by default. |
| Mask *BuildMask `protobuf:"bytes,101,opt,name=mask,proto3" json:"mask,omitempty"` |
| } |
| |
| func (x *CancelBuildRequest) Reset() { |
| *x = CancelBuildRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CancelBuildRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CancelBuildRequest) ProtoMessage() {} |
| |
| func (x *CancelBuildRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[7] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use CancelBuildRequest.ProtoReflect.Descriptor instead. |
| func (*CancelBuildRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *CancelBuildRequest) GetId() int64 { |
| if x != nil { |
| return x.Id |
| } |
| return 0 |
| } |
| |
| func (x *CancelBuildRequest) GetSummaryMarkdown() string { |
| if x != nil { |
| return x.SummaryMarkdown |
| } |
| return "" |
| } |
| |
| // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/builds_service.proto. |
| func (x *CancelBuildRequest) GetFields() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.Fields |
| } |
| return nil |
| } |
| |
| func (x *CancelBuildRequest) GetMask() *BuildMask { |
| if x != nil { |
| return x.Mask |
| } |
| return nil |
| } |
| |
| // A request message for CreateBuild RPC. |
| type CreateBuildRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The Build to be created. |
| Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` |
| // A unique identifier for this request. |
| // A random UUID is recommended. |
| // This request is only idempotent if a `request_id` is provided. |
| RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` |
| // What portion of the Build message to return. |
| // |
| // If not set, the default mask is used, see Build message comments for the |
| // list of fields returned by default. |
| Mask *BuildMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"` |
| } |
| |
| func (x *CreateBuildRequest) Reset() { |
| *x = CreateBuildRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CreateBuildRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CreateBuildRequest) ProtoMessage() {} |
| |
| func (x *CreateBuildRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[8] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use CreateBuildRequest.ProtoReflect.Descriptor instead. |
| func (*CreateBuildRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *CreateBuildRequest) GetBuild() *Build { |
| if x != nil { |
| return x.Build |
| } |
| return nil |
| } |
| |
| func (x *CreateBuildRequest) GetRequestId() string { |
| if x != nil { |
| return x.RequestId |
| } |
| return "" |
| } |
| |
| func (x *CreateBuildRequest) GetMask() *BuildMask { |
| if x != nil { |
| return x.Mask |
| } |
| return nil |
| } |
| |
| // A request message for SynthesizeBuild RPC. |
| type SynthesizeBuildRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ID of a build to use as the template. |
| // Mutually exclusive with builder. |
| TemplateBuildId int64 `protobuf:"varint,1,opt,name=template_build_id,json=templateBuildId,proto3" json:"template_build_id,omitempty"` |
| // Value for Build.builder. See its comments. |
| // Required, unless template_build_id is specified. |
| Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` |
| // Sets (or prevents) these experiments on the synthesized build. |
| // |
| // See `Builder.experiments` for well-known experiments. |
| 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"` |
| } |
| |
| func (x *SynthesizeBuildRequest) Reset() { |
| *x = SynthesizeBuildRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SynthesizeBuildRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SynthesizeBuildRequest) ProtoMessage() {} |
| |
| func (x *SynthesizeBuildRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[9] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SynthesizeBuildRequest.ProtoReflect.Descriptor instead. |
| func (*SynthesizeBuildRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *SynthesizeBuildRequest) GetTemplateBuildId() int64 { |
| if x != nil { |
| return x.TemplateBuildId |
| } |
| return 0 |
| } |
| |
| func (x *SynthesizeBuildRequest) GetBuilder() *BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| func (x *SynthesizeBuildRequest) GetExperiments() map[string]bool { |
| if x != nil { |
| return x.Experiments |
| } |
| return nil |
| } |
| |
| // A request message for StartBuild RPC. |
| type StartBuildRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A nonce to deduplicate requests. |
| RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` |
| // Id of the build to start. |
| BuildId int64 `protobuf:"varint,2,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"` |
| // Id of the task running the started build. |
| TaskId string `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` |
| } |
| |
| func (x *StartBuildRequest) Reset() { |
| *x = StartBuildRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StartBuildRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StartBuildRequest) ProtoMessage() {} |
| |
| func (x *StartBuildRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[10] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use StartBuildRequest.ProtoReflect.Descriptor instead. |
| func (*StartBuildRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (x *StartBuildRequest) GetRequestId() string { |
| if x != nil { |
| return x.RequestId |
| } |
| return "" |
| } |
| |
| func (x *StartBuildRequest) GetBuildId() int64 { |
| if x != nil { |
| return x.BuildId |
| } |
| return 0 |
| } |
| |
| func (x *StartBuildRequest) GetTaskId() string { |
| if x != nil { |
| return x.TaskId |
| } |
| return "" |
| } |
| |
| // A response message for StartBuild RPC. |
| type StartBuildResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The whole proto of the started build. |
| Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` |
| // a build token for agent to use when making subsequent UpdateBuild calls. |
| UpdateBuildToken string `protobuf:"bytes,2,opt,name=update_build_token,json=updateBuildToken,proto3" json:"update_build_token,omitempty"` |
| } |
| |
| func (x *StartBuildResponse) Reset() { |
| *x = StartBuildResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StartBuildResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StartBuildResponse) ProtoMessage() {} |
| |
| func (x *StartBuildResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[11] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use StartBuildResponse.ProtoReflect.Descriptor instead. |
| func (*StartBuildResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{11} |
| } |
| |
| func (x *StartBuildResponse) GetBuild() *Build { |
| if x != nil { |
| return x.Build |
| } |
| return nil |
| } |
| |
| func (x *StartBuildResponse) GetUpdateBuildToken() string { |
| if x != nil { |
| return x.UpdateBuildToken |
| } |
| return "" |
| } |
| |
| // A request message for GetBuildStatus RPC. |
| type GetBuildStatusRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Build ID. |
| // Mutually exclusive with builder and number. |
| Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` |
| // Builder of the build. |
| // Requires number. Mutually exclusive with id. |
| Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` |
| // Build number. |
| // Requires builder. Mutually exclusive with id. |
| BuildNumber int32 `protobuf:"varint,3,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` |
| } |
| |
| func (x *GetBuildStatusRequest) Reset() { |
| *x = GetBuildStatusRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetBuildStatusRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetBuildStatusRequest) ProtoMessage() {} |
| |
| func (x *GetBuildStatusRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[12] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use GetBuildStatusRequest.ProtoReflect.Descriptor instead. |
| func (*GetBuildStatusRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{12} |
| } |
| |
| func (x *GetBuildStatusRequest) GetId() int64 { |
| if x != nil { |
| return x.Id |
| } |
| return 0 |
| } |
| |
| func (x *GetBuildStatusRequest) GetBuilder() *BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| func (x *GetBuildStatusRequest) GetBuildNumber() int32 { |
| if x != nil { |
| return x.BuildNumber |
| } |
| return 0 |
| } |
| |
| // A request message for CustomMetricPreview RPC. |
| type CustomMetricPreviewRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ID of a build to use to test the custom metric difinition. |
| BuildId int64 `protobuf:"varint,1,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"` |
| // Definition of the custom metric. |
| MetricDefinition *CustomMetricDefinition `protobuf:"bytes,2,opt,name=metric_definition,json=metricDefinition,proto3" json:"metric_definition,omitempty"` |
| // Metric class determines which data to be collected and reported |
| // to the metric. |
| // |
| // Types that are assignable to Class: |
| // |
| // *CustomMetricPreviewRequest_MetricBase |
| Class isCustomMetricPreviewRequest_Class `protobuf_oneof:"class"` |
| } |
| |
| func (x *CustomMetricPreviewRequest) Reset() { |
| *x = CustomMetricPreviewRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CustomMetricPreviewRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CustomMetricPreviewRequest) ProtoMessage() {} |
| |
| func (x *CustomMetricPreviewRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[13] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use CustomMetricPreviewRequest.ProtoReflect.Descriptor instead. |
| func (*CustomMetricPreviewRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{13} |
| } |
| |
| func (x *CustomMetricPreviewRequest) GetBuildId() int64 { |
| if x != nil { |
| return x.BuildId |
| } |
| return 0 |
| } |
| |
| func (x *CustomMetricPreviewRequest) GetMetricDefinition() *CustomMetricDefinition { |
| if x != nil { |
| return x.MetricDefinition |
| } |
| return nil |
| } |
| |
| func (m *CustomMetricPreviewRequest) GetClass() isCustomMetricPreviewRequest_Class { |
| if m != nil { |
| return m.Class |
| } |
| return nil |
| } |
| |
| func (x *CustomMetricPreviewRequest) GetMetricBase() CustomMetricBase { |
| if x, ok := x.GetClass().(*CustomMetricPreviewRequest_MetricBase); ok { |
| return x.MetricBase |
| } |
| return CustomMetricBase_CUSTOM_METRIC_BASE_UNSET |
| } |
| |
| type isCustomMetricPreviewRequest_Class interface { |
| isCustomMetricPreviewRequest_Class() |
| } |
| |
| type CustomMetricPreviewRequest_MetricBase struct { |
| MetricBase CustomMetricBase `protobuf:"varint,3,opt,name=metric_base,json=metricBase,proto3,enum=buildbucket.CustomMetricBase,oneof"` |
| } |
| |
| func (*CustomMetricPreviewRequest_MetricBase) isCustomMetricPreviewRequest_Class() {} |
| |
| // A response message for CustomMetricPreview RPC. |
| type CustomMetricPreviewResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Response: |
| // |
| // *CustomMetricPreviewResponse_Report_ |
| // *CustomMetricPreviewResponse_Error |
| Response isCustomMetricPreviewResponse_Response `protobuf_oneof:"response"` |
| } |
| |
| func (x *CustomMetricPreviewResponse) Reset() { |
| *x = CustomMetricPreviewResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CustomMetricPreviewResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CustomMetricPreviewResponse) ProtoMessage() {} |
| |
| func (x *CustomMetricPreviewResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[14] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use CustomMetricPreviewResponse.ProtoReflect.Descriptor instead. |
| func (*CustomMetricPreviewResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{14} |
| } |
| |
| func (m *CustomMetricPreviewResponse) GetResponse() isCustomMetricPreviewResponse_Response { |
| if m != nil { |
| return m.Response |
| } |
| return nil |
| } |
| |
| func (x *CustomMetricPreviewResponse) GetReport() *CustomMetricPreviewResponse_Report { |
| if x, ok := x.GetResponse().(*CustomMetricPreviewResponse_Report_); ok { |
| return x.Report |
| } |
| return nil |
| } |
| |
| func (x *CustomMetricPreviewResponse) GetError() string { |
| if x, ok := x.GetResponse().(*CustomMetricPreviewResponse_Error); ok { |
| return x.Error |
| } |
| return "" |
| } |
| |
| type isCustomMetricPreviewResponse_Response interface { |
| isCustomMetricPreviewResponse_Response() |
| } |
| |
| type CustomMetricPreviewResponse_Report_ struct { |
| // Metric report if the build passes the metric predicate evaluation. |
| Report *CustomMetricPreviewResponse_Report `protobuf:"bytes,1,opt,name=report,proto3,oneof"` |
| } |
| |
| type CustomMetricPreviewResponse_Error struct { |
| // Error details of the evaluation. |
| Error string `protobuf:"bytes,100,opt,name=error,proto3,oneof"` |
| } |
| |
| func (*CustomMetricPreviewResponse_Report_) isCustomMetricPreviewResponse_Response() {} |
| |
| func (*CustomMetricPreviewResponse_Error) isCustomMetricPreviewResponse_Response() {} |
| |
| // Defines a subset of Build fields and properties to return. |
| type BuildMask struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Fields of the Build proto to include. |
| // |
| // Follows the standard FieldMask semantics as documented at e.g. |
| // https://pkg.go.dev/google.golang.org/protobuf/types/known/fieldmaskpb. |
| // |
| // If not set, the default mask is used, see Build message comments for the |
| // list of fields returned by default. |
| Fields *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=fields,proto3" json:"fields,omitempty"` |
| // Defines a subset of `input.properties` to return. |
| // |
| // When not empty, implicitly adds the corresponding field to `fields`. |
| InputProperties []*structmask.StructMask `protobuf:"bytes,2,rep,name=input_properties,json=inputProperties,proto3" json:"input_properties,omitempty"` |
| // Defines a subset of `output.properties` to return. |
| // |
| // When not empty, implicitly adds the corresponding field to `fields`. |
| OutputProperties []*structmask.StructMask `protobuf:"bytes,3,rep,name=output_properties,json=outputProperties,proto3" json:"output_properties,omitempty"` |
| // Defines a subset of `infra.buildbucket.requested_properties` to return. |
| // |
| // When not empty, implicitly adds the corresponding field to `fields`. |
| RequestedProperties []*structmask.StructMask `protobuf:"bytes,4,rep,name=requested_properties,json=requestedProperties,proto3" json:"requested_properties,omitempty"` |
| // Flag for including all fields. |
| // |
| // Mutually exclusive with `fields`, `input_properties`, `output_properties`, |
| // and `requested_properties`. |
| AllFields bool `protobuf:"varint,5,opt,name=all_fields,json=allFields,proto3" json:"all_fields,omitempty"` |
| // A status to filter returned `steps` by. If unspecified, no filter is |
| // applied. Otherwise filters by the union of the given statuses. |
| // |
| // No effect unless `fields` specifies that `steps` should be returned or |
| // `all_fields` is true. |
| StepStatus []Status `protobuf:"varint,6,rep,packed,name=step_status,json=stepStatus,proto3,enum=buildbucket.v2.Status" json:"step_status,omitempty"` |
| } |
| |
| func (x *BuildMask) Reset() { |
| *x = BuildMask{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BuildMask) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BuildMask) ProtoMessage() {} |
| |
| func (x *BuildMask) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[15] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BuildMask.ProtoReflect.Descriptor instead. |
| func (*BuildMask) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{15} |
| } |
| |
| func (x *BuildMask) GetFields() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.Fields |
| } |
| return nil |
| } |
| |
| func (x *BuildMask) GetInputProperties() []*structmask.StructMask { |
| if x != nil { |
| return x.InputProperties |
| } |
| return nil |
| } |
| |
| func (x *BuildMask) GetOutputProperties() []*structmask.StructMask { |
| if x != nil { |
| return x.OutputProperties |
| } |
| return nil |
| } |
| |
| func (x *BuildMask) GetRequestedProperties() []*structmask.StructMask { |
| if x != nil { |
| return x.RequestedProperties |
| } |
| return nil |
| } |
| |
| func (x *BuildMask) GetAllFields() bool { |
| if x != nil { |
| return x.AllFields |
| } |
| return false |
| } |
| |
| func (x *BuildMask) GetStepStatus() []Status { |
| if x != nil { |
| return x.StepStatus |
| } |
| return nil |
| } |
| |
| // A build predicate. |
| // |
| // At least one of the following fields is required: builder, gerrit_changes and |
| // git_commits. |
| // If a field value is empty, it is ignored, unless stated otherwise. |
| type BuildPredicate struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A build must be in this builder. |
| Builder *BuilderID `protobuf:"bytes,1,opt,name=builder,proto3" json:"builder,omitempty"` |
| // A build must have this status. |
| Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"` |
| // A build's Build.Input.gerrit_changes must include ALL of these changes. |
| GerritChanges []*GerritChange `protobuf:"bytes,3,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"` |
| // DEPRECATED |
| // |
| // Never implemented. |
| OutputGitilesCommit *GitilesCommit `protobuf:"bytes,4,opt,name=output_gitiles_commit,json=outputGitilesCommit,proto3" json:"output_gitiles_commit,omitempty"` |
| // A build must be created by this identity. |
| CreatedBy string `protobuf:"bytes,5,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` |
| // A build must have ALL of these tags. |
| // For "ANY of these tags" make separate RPCs. |
| Tags []*StringPair `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"` |
| // A build must have been created within the specified range. |
| // Both boundaries are optional. |
| CreateTime *TimeRange `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // If false (the default), equivalent to filtering by experiment |
| // "-luci.non_production". |
| // |
| // If true, has no effect (both production and non_production builds will be |
| // returned). |
| // |
| // NOTE: If you explicitly search for non_production builds with the experiment |
| // filter "+luci.non_production", this is implied to be true. |
| // |
| // See `Builder.experiments` for well-known experiments. |
| IncludeExperimental bool `protobuf:"varint,8,opt,name=include_experimental,json=includeExperimental,proto3" json:"include_experimental,omitempty"` |
| // A build must be in this build range. |
| Build *BuildRange `protobuf:"bytes,9,opt,name=build,proto3" json:"build,omitempty"` |
| // DEPRECATED |
| // |
| // If YES, equivalent to filtering by experiment |
| // "+luci.buildbucket.canary_software". |
| // |
| // If NO, equivalent to filtering by experiment |
| // "-luci.buildbucket.canary_software". |
| // |
| // See `Builder.experiments` for well-known experiments. |
| Canary Trinary `protobuf:"varint,10,opt,name=canary,proto3,enum=buildbucket.v2.Trinary" json:"canary,omitempty"` |
| // A list of experiments to include or exclude from the search results. |
| // |
| // Each entry should look like "[-+]$experiment_name". |
| // |
| // A "+" prefix means that returned builds MUST have that experiment set. |
| // A "-" prefix means that returned builds MUST NOT have that experiment set |
| // |
| // AND that experiment was known for the builder at the time the build |
| // was scheduled (either via `Builder.experiments` or via |
| // `ScheduleBuildRequest.experiments`). Well-known experiments are always |
| // considered to be available. |
| Experiments []string `protobuf:"bytes,11,rep,name=experiments,proto3" json:"experiments,omitempty"` |
| // A build ID. |
| // |
| // Returned builds will be descendants of this build (e.g. "100" means |
| // "any build transitively scheduled starting from build 100"). |
| // |
| // Mutually exclusive with `child_of`. |
| DescendantOf int64 `protobuf:"varint,12,opt,name=descendant_of,json=descendantOf,proto3" json:"descendant_of,omitempty"` |
| // A build ID. |
| // |
| // Returned builds will be only the immediate children of this build. |
| // |
| // Mutually exclusive with `descendant_of`. |
| ChildOf int64 `protobuf:"varint,13,opt,name=child_of,json=childOf,proto3" json:"child_of,omitempty"` |
| } |
| |
| func (x *BuildPredicate) Reset() { |
| *x = BuildPredicate{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BuildPredicate) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BuildPredicate) ProtoMessage() {} |
| |
| func (x *BuildPredicate) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[16] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BuildPredicate.ProtoReflect.Descriptor instead. |
| func (*BuildPredicate) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{16} |
| } |
| |
| func (x *BuildPredicate) GetBuilder() *BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| func (x *BuildPredicate) GetStatus() Status { |
| if x != nil { |
| return x.Status |
| } |
| return Status_STATUS_UNSPECIFIED |
| } |
| |
| func (x *BuildPredicate) GetGerritChanges() []*GerritChange { |
| if x != nil { |
| return x.GerritChanges |
| } |
| return nil |
| } |
| |
| func (x *BuildPredicate) GetOutputGitilesCommit() *GitilesCommit { |
| if x != nil { |
| return x.OutputGitilesCommit |
| } |
| return nil |
| } |
| |
| func (x *BuildPredicate) GetCreatedBy() string { |
| if x != nil { |
| return x.CreatedBy |
| } |
| return "" |
| } |
| |
| func (x *BuildPredicate) GetTags() []*StringPair { |
| if x != nil { |
| return x.Tags |
| } |
| return nil |
| } |
| |
| func (x *BuildPredicate) GetCreateTime() *TimeRange { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *BuildPredicate) GetIncludeExperimental() bool { |
| if x != nil { |
| return x.IncludeExperimental |
| } |
| return false |
| } |
| |
| func (x *BuildPredicate) GetBuild() *BuildRange { |
| if x != nil { |
| return x.Build |
| } |
| return nil |
| } |
| |
| func (x *BuildPredicate) GetCanary() Trinary { |
| if x != nil { |
| return x.Canary |
| } |
| return Trinary_UNSET |
| } |
| |
| func (x *BuildPredicate) GetExperiments() []string { |
| if x != nil { |
| return x.Experiments |
| } |
| return nil |
| } |
| |
| func (x *BuildPredicate) GetDescendantOf() int64 { |
| if x != nil { |
| return x.DescendantOf |
| } |
| return 0 |
| } |
| |
| func (x *BuildPredicate) GetChildOf() int64 { |
| if x != nil { |
| return x.ChildOf |
| } |
| return 0 |
| } |
| |
| // Open build range. |
| type BuildRange struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Inclusive lower (less recent build) boundary. Optional. |
| StartBuildId int64 `protobuf:"varint,1,opt,name=start_build_id,json=startBuildId,proto3" json:"start_build_id,omitempty"` |
| // Inclusive upper (more recent build) boundary. Optional. |
| EndBuildId int64 `protobuf:"varint,2,opt,name=end_build_id,json=endBuildId,proto3" json:"end_build_id,omitempty"` |
| } |
| |
| func (x *BuildRange) Reset() { |
| *x = BuildRange{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BuildRange) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BuildRange) ProtoMessage() {} |
| |
| func (x *BuildRange) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[17] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BuildRange.ProtoReflect.Descriptor instead. |
| func (*BuildRange) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{17} |
| } |
| |
| func (x *BuildRange) GetStartBuildId() int64 { |
| if x != nil { |
| return x.StartBuildId |
| } |
| return 0 |
| } |
| |
| func (x *BuildRange) GetEndBuildId() int64 { |
| if x != nil { |
| return x.EndBuildId |
| } |
| return 0 |
| } |
| |
| // One request in a batch. |
| type BatchRequest_Request struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Request: |
| // |
| // *BatchRequest_Request_GetBuild |
| // *BatchRequest_Request_SearchBuilds |
| // *BatchRequest_Request_ScheduleBuild |
| // *BatchRequest_Request_CancelBuild |
| // *BatchRequest_Request_GetBuildStatus |
| Request isBatchRequest_Request_Request `protobuf_oneof:"request"` |
| } |
| |
| func (x *BatchRequest_Request) Reset() { |
| *x = BatchRequest_Request{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BatchRequest_Request) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BatchRequest_Request) ProtoMessage() {} |
| |
| func (x *BatchRequest_Request) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[18] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BatchRequest_Request.ProtoReflect.Descriptor instead. |
| func (*BatchRequest_Request) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{3, 0} |
| } |
| |
| func (m *BatchRequest_Request) GetRequest() isBatchRequest_Request_Request { |
| if m != nil { |
| return m.Request |
| } |
| return nil |
| } |
| |
| func (x *BatchRequest_Request) GetGetBuild() *GetBuildRequest { |
| if x, ok := x.GetRequest().(*BatchRequest_Request_GetBuild); ok { |
| return x.GetBuild |
| } |
| return nil |
| } |
| |
| func (x *BatchRequest_Request) GetSearchBuilds() *SearchBuildsRequest { |
| if x, ok := x.GetRequest().(*BatchRequest_Request_SearchBuilds); ok { |
| return x.SearchBuilds |
| } |
| return nil |
| } |
| |
| func (x *BatchRequest_Request) GetScheduleBuild() *ScheduleBuildRequest { |
| if x, ok := x.GetRequest().(*BatchRequest_Request_ScheduleBuild); ok { |
| return x.ScheduleBuild |
| } |
| return nil |
| } |
| |
| func (x *BatchRequest_Request) GetCancelBuild() *CancelBuildRequest { |
| if x, ok := x.GetRequest().(*BatchRequest_Request_CancelBuild); ok { |
| return x.CancelBuild |
| } |
| return nil |
| } |
| |
| func (x *BatchRequest_Request) GetGetBuildStatus() *GetBuildStatusRequest { |
| if x, ok := x.GetRequest().(*BatchRequest_Request_GetBuildStatus); ok { |
| return x.GetBuildStatus |
| } |
| return nil |
| } |
| |
| type isBatchRequest_Request_Request interface { |
| isBatchRequest_Request_Request() |
| } |
| |
| type BatchRequest_Request_GetBuild struct { |
| GetBuild *GetBuildRequest `protobuf:"bytes,1,opt,name=get_build,json=getBuild,proto3,oneof"` |
| } |
| |
| type BatchRequest_Request_SearchBuilds struct { |
| SearchBuilds *SearchBuildsRequest `protobuf:"bytes,2,opt,name=search_builds,json=searchBuilds,proto3,oneof"` |
| } |
| |
| type BatchRequest_Request_ScheduleBuild struct { |
| ScheduleBuild *ScheduleBuildRequest `protobuf:"bytes,3,opt,name=schedule_build,json=scheduleBuild,proto3,oneof"` |
| } |
| |
| type BatchRequest_Request_CancelBuild struct { |
| CancelBuild *CancelBuildRequest `protobuf:"bytes,4,opt,name=cancel_build,json=cancelBuild,proto3,oneof"` |
| } |
| |
| type BatchRequest_Request_GetBuildStatus struct { |
| GetBuildStatus *GetBuildStatusRequest `protobuf:"bytes,5,opt,name=get_build_status,json=getBuildStatus,proto3,oneof"` |
| } |
| |
| func (*BatchRequest_Request_GetBuild) isBatchRequest_Request_Request() {} |
| |
| func (*BatchRequest_Request_SearchBuilds) isBatchRequest_Request_Request() {} |
| |
| func (*BatchRequest_Request_ScheduleBuild) isBatchRequest_Request_Request() {} |
| |
| func (*BatchRequest_Request_CancelBuild) isBatchRequest_Request_Request() {} |
| |
| func (*BatchRequest_Request_GetBuildStatus) isBatchRequest_Request_Request() {} |
| |
| // Response a BatchRequest.Response. |
| type BatchResponse_Response struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Response: |
| // |
| // *BatchResponse_Response_GetBuild |
| // *BatchResponse_Response_SearchBuilds |
| // *BatchResponse_Response_ScheduleBuild |
| // *BatchResponse_Response_CancelBuild |
| // *BatchResponse_Response_GetBuildStatus |
| // *BatchResponse_Response_Error |
| Response isBatchResponse_Response_Response `protobuf_oneof:"response"` |
| } |
| |
| func (x *BatchResponse_Response) Reset() { |
| *x = BatchResponse_Response{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BatchResponse_Response) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BatchResponse_Response) ProtoMessage() {} |
| |
| func (x *BatchResponse_Response) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[19] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BatchResponse_Response.ProtoReflect.Descriptor instead. |
| func (*BatchResponse_Response) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{4, 0} |
| } |
| |
| func (m *BatchResponse_Response) GetResponse() isBatchResponse_Response_Response { |
| if m != nil { |
| return m.Response |
| } |
| return nil |
| } |
| |
| func (x *BatchResponse_Response) GetGetBuild() *Build { |
| if x, ok := x.GetResponse().(*BatchResponse_Response_GetBuild); ok { |
| return x.GetBuild |
| } |
| return nil |
| } |
| |
| func (x *BatchResponse_Response) GetSearchBuilds() *SearchBuildsResponse { |
| if x, ok := x.GetResponse().(*BatchResponse_Response_SearchBuilds); ok { |
| return x.SearchBuilds |
| } |
| return nil |
| } |
| |
| func (x *BatchResponse_Response) GetScheduleBuild() *Build { |
| if x, ok := x.GetResponse().(*BatchResponse_Response_ScheduleBuild); ok { |
| return x.ScheduleBuild |
| } |
| return nil |
| } |
| |
| func (x *BatchResponse_Response) GetCancelBuild() *Build { |
| if x, ok := x.GetResponse().(*BatchResponse_Response_CancelBuild); ok { |
| return x.CancelBuild |
| } |
| return nil |
| } |
| |
| func (x *BatchResponse_Response) GetGetBuildStatus() *Build { |
| if x, ok := x.GetResponse().(*BatchResponse_Response_GetBuildStatus); ok { |
| return x.GetBuildStatus |
| } |
| return nil |
| } |
| |
| func (x *BatchResponse_Response) GetError() *status.Status { |
| if x, ok := x.GetResponse().(*BatchResponse_Response_Error); ok { |
| return x.Error |
| } |
| return nil |
| } |
| |
| type isBatchResponse_Response_Response interface { |
| isBatchResponse_Response_Response() |
| } |
| |
| type BatchResponse_Response_GetBuild struct { |
| GetBuild *Build `protobuf:"bytes,1,opt,name=get_build,json=getBuild,proto3,oneof"` |
| } |
| |
| type BatchResponse_Response_SearchBuilds struct { |
| SearchBuilds *SearchBuildsResponse `protobuf:"bytes,2,opt,name=search_builds,json=searchBuilds,proto3,oneof"` |
| } |
| |
| type BatchResponse_Response_ScheduleBuild struct { |
| ScheduleBuild *Build `protobuf:"bytes,3,opt,name=schedule_build,json=scheduleBuild,proto3,oneof"` |
| } |
| |
| type BatchResponse_Response_CancelBuild struct { |
| CancelBuild *Build `protobuf:"bytes,4,opt,name=cancel_build,json=cancelBuild,proto3,oneof"` |
| } |
| |
| type BatchResponse_Response_GetBuildStatus struct { |
| GetBuildStatus *Build `protobuf:"bytes,5,opt,name=get_build_status,json=getBuildStatus,proto3,oneof"` |
| } |
| |
| type BatchResponse_Response_Error struct { |
| // Error code and details of the unsuccessful RPC. |
| Error *status.Status `protobuf:"bytes,100,opt,name=error,proto3,oneof"` |
| } |
| |
| func (*BatchResponse_Response_GetBuild) isBatchResponse_Response_Response() {} |
| |
| func (*BatchResponse_Response_SearchBuilds) isBatchResponse_Response_Response() {} |
| |
| func (*BatchResponse_Response_ScheduleBuild) isBatchResponse_Response_Response() {} |
| |
| func (*BatchResponse_Response_CancelBuild) isBatchResponse_Response_Response() {} |
| |
| func (*BatchResponse_Response_GetBuildStatus) isBatchResponse_Response_Response() {} |
| |
| func (*BatchResponse_Response_Error) isBatchResponse_Response_Response() {} |
| |
| // Swarming specific part of the build request. |
| type ScheduleBuildRequest_Swarming struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If specified, parent_run_id should match actual Swarming task run ID the |
| // caller is running as and results in swarming server ensuring that the newly |
| // triggered build will not outlive its parent. |
| // |
| // Typical use is for triggering and waiting on child build(s) from within |
| // 1 parent build and if child build(s) on their own aren't useful. Then, |
| // if parent build ends for whatever reason, all not yet finished child |
| // builds aren't useful and it's desirable to terminate them, too. |
| // |
| // If the Builder config does not specify a swarming backend, the request |
| // will fail with InvalidArgument error code. |
| // |
| // The parent_run_id is assumed to be from the same swarming server as the |
| // one the new build is to be executed on. The ScheduleBuildRequest doesn't |
| // check if parent_run_id refers to actually existing task, but eventually |
| // the new build will fail if so. |
| ParentRunId string `protobuf:"bytes,1,opt,name=parent_run_id,json=parentRunId,proto3" json:"parent_run_id,omitempty"` |
| } |
| |
| func (x *ScheduleBuildRequest_Swarming) Reset() { |
| *x = ScheduleBuildRequest_Swarming{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ScheduleBuildRequest_Swarming) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ScheduleBuildRequest_Swarming) ProtoMessage() {} |
| |
| func (x *ScheduleBuildRequest_Swarming) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[21] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ScheduleBuildRequest_Swarming.ProtoReflect.Descriptor instead. |
| func (*ScheduleBuildRequest_Swarming) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{6, 1} |
| } |
| |
| func (x *ScheduleBuildRequest_Swarming) GetParentRunId() string { |
| if x != nil { |
| return x.ParentRunId |
| } |
| return "" |
| } |
| |
| // Information for scheduling a build as a shadow build. |
| type ScheduleBuildRequest_ShadowInput struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Flag for whether the build should inherit its parent build's agent input |
| // and agent source. |
| InheritFromParent bool `protobuf:"varint,1,opt,name=inherit_from_parent,json=inheritFromParent,proto3" json:"inherit_from_parent,omitempty"` |
| } |
| |
| func (x *ScheduleBuildRequest_ShadowInput) Reset() { |
| *x = ScheduleBuildRequest_ShadowInput{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[22] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ScheduleBuildRequest_ShadowInput) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ScheduleBuildRequest_ShadowInput) ProtoMessage() {} |
| |
| func (x *ScheduleBuildRequest_ShadowInput) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[22] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ScheduleBuildRequest_ShadowInput.ProtoReflect.Descriptor instead. |
| func (*ScheduleBuildRequest_ShadowInput) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{6, 2} |
| } |
| |
| func (x *ScheduleBuildRequest_ShadowInput) GetInheritFromParent() bool { |
| if x != nil { |
| return x.InheritFromParent |
| } |
| return false |
| } |
| |
| // ResultDB-specific part of build request. |
| type ScheduleBuildRequest_ResultDB struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Whether to create the ResultDB invocation for this build as an export |
| // root. See ResultDB invocation.is_export_root for more information. |
| // |
| // By default, only buildbucket builds that do not have a parent are |
| // defined as an export root, as invocations for child builds are included |
| // in their parents. |
| IsExportRootOverride bool `protobuf:"varint,1,opt,name=is_export_root_override,json=isExportRootOverride,proto3" json:"is_export_root_override,omitempty"` |
| } |
| |
| func (x *ScheduleBuildRequest_ResultDB) Reset() { |
| *x = ScheduleBuildRequest_ResultDB{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[23] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ScheduleBuildRequest_ResultDB) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ScheduleBuildRequest_ResultDB) ProtoMessage() {} |
| |
| func (x *ScheduleBuildRequest_ResultDB) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[23] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ScheduleBuildRequest_ResultDB.ProtoReflect.Descriptor instead. |
| func (*ScheduleBuildRequest_ResultDB) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{6, 3} |
| } |
| |
| func (x *ScheduleBuildRequest_ResultDB) GetIsExportRootOverride() bool { |
| if x != nil { |
| return x.IsExportRootOverride |
| } |
| return false |
| } |
| |
| type CustomMetricPreviewResponse_Report struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Metric fields with their values. |
| // Includes the base fields and extra fields for the custom metric. |
| Fields []*StringPair `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` |
| } |
| |
| func (x *CustomMetricPreviewResponse_Report) Reset() { |
| *x = CustomMetricPreviewResponse_Report{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[25] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CustomMetricPreviewResponse_Report) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CustomMetricPreviewResponse_Report) ProtoMessage() {} |
| |
| func (x *CustomMetricPreviewResponse_Report) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[25] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use CustomMetricPreviewResponse_Report.ProtoReflect.Descriptor instead. |
| func (*CustomMetricPreviewResponse_Report) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{14, 0} |
| } |
| |
| func (x *CustomMetricPreviewResponse_Report) GetFields() []*StringPair { |
| if x != nil { |
| return x.Fields |
| } |
| return nil |
| } |
| |
| var File_go_chromium_org_luci_buildbucket_proto_builds_service_proto protoreflect.FileDescriptor |
| |
| var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc = []byte{ |
| 0x0a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, |
| 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f, |
| 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, |
| 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, |
| 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, |
| 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, |
| 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, |
| 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, |
| 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, |
| 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, |
| 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, |
| 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, |
| 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, |
| 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, |
| 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, |
| 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, |
| 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x65, |
| 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, |
| 0x74, 0x6f, 0x1a, 0x3d, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, |
| 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, |
| 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x22, 0xe0, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, |
| 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, |
| 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, |
| 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x36, 0x0a, |
| 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, |
| 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, |
| 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, |
| 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xf6, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, |
| 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x09, |
| 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x1e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, |
| 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, |
| 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, |
| 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, |
| 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, |
| 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, |
| 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x65, |
| 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, |
| 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x66, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6d, 0x0a, |
| 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, |
| 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, |
| 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, |
| 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xde, 0x03, 0x0a, |
| 0x0c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, |
| 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, |
| 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, |
| 0x8b, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x67, |
| 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, |
| 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, |
| 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, |
| 0x00, 0x52, 0x08, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x4a, 0x0a, 0x0d, 0x73, |
| 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, |
| 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x4d, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, |
| 0x75, 0x6c, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, |
| 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, |
| 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, |
| 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x48, 0x00, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, |
| 0x51, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, |
| 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xdc, 0x03, |
| 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, |
| 0x44, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, |
| 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, |
| 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x84, 0x03, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, |
| 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, |
| 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x4b, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, |
| 0x63, 0x68, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, |
| 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, |
| 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, |
| 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, |
| 0x75, 0x69, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, |
| 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x12, 0x41, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, |
| 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x64, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, |
| 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, |
| 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe5, 0x01, 0x0a, |
| 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, |
| 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, |
| 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, |
| 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, |
| 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, |
| 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, |
| 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xfb, 0x0d, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, |
| 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, |
| 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, |
| 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, |
| 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, |
| 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, |
| 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x3b, |
| 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x05, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x0c, 0x65, |
| 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x57, 0x0a, 0x0b, 0x65, |
| 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x35, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, |
| 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, |
| 0x65, 0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, |
| 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, |
| 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x44, 0x0a, |
| 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, |
| 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, |
| 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, |
| 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x5f, 0x63, 0x68, |
| 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x72, |
| 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x67, 0x65, 0x72, 0x72, 0x69, |
| 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, |
| 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, |
| 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, |
| 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, |
| 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, |
| 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, |
| 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, |
| 0x66, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, |
| 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x6e, 0x6f, |
| 0x74, 0x69, 0x66, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, |
| 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, |
| 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x33, 0x0a, 0x08, 0x63, |
| 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, |
| 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, |
| 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x78, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x45, |
| 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, 0x65, 0x78, 0x65, 0x12, 0x49, |
| 0x0a, 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x52, |
| 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x12, 0x73, 0x63, 0x68, |
| 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, |
| 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, |
| 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, |
| 0x6f, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, |
| 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x67, |
| 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, |
| 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, |
| 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, |
| 0x75, 0x6e, 0x12, 0x45, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x76, |
| 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, |
| 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, |
| 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x4f, 0x75, 0x74, 0x6c, |
| 0x69, 0x76, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x74, |
| 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, |
| 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, |
| 0x12, 0x53, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, |
| 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, |
| 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x68, 0x61, |
| 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, |
| 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x49, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, |
| 0x62, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, |
| 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, |
| 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, |
| 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, |
| 0x1a, 0x2e, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0d, |
| 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x49, 0x64, |
| 0x1a, 0x3d, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, |
| 0x2e, 0x0a, 0x13, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, |
| 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x6e, |
| 0x68, 0x65, 0x72, 0x69, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x1a, |
| 0x41, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x12, 0x35, 0x0a, 0x17, 0x69, |
| 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6f, 0x76, |
| 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, |
| 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, |
| 0x64, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x6d, |
| 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, |
| 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x64, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, |
| 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x04, |
| 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0x94, 0x01, 0x0a, 0x12, |
| 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, |
| 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, |
| 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, |
| 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6d, 0x61, |
| 0x73, 0x6b, 0x22, 0x94, 0x02, 0x0a, 0x16, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, |
| 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, |
| 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, |
| 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x59, |
| 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x42, |
| 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x65, |
| 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, |
| 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x78, 0x70, |
| 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, |
| 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, |
| 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, |
| 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x75, 0x0a, 0x11, 0x53, 0x74, 0x61, |
| 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, |
| 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, |
| 0x22, 0x6f, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, |
| 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x6f, 0x6b, 0x65, |
| 0x6e, 0x22, 0x7f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, |
| 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, |
| 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, |
| 0x65, 0x72, 0x22, 0xde, 0x01, 0x0a, 0x1a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, |
| 0x72, 0x69, 0x63, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, |
| 0x64, 0x12, 0x55, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x64, 0x65, 0x66, 0x69, |
| 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, |
| 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, |
| 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x65, |
| 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, |
| 0x69, 0x63, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, |
| 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, |
| 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x61, 0x73, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x63, 0x6c, |
| 0x61, 0x73, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x1b, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, |
| 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, |
| 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, |
| 0x63, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, |
| 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, |
| 0x74, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, |
| 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x70, |
| 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, |
| 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, |
| 0x6e, 0x73, 0x65, 0x22, 0xea, 0x02, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x73, |
| 0x6b, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x06, 0x66, |
| 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x10, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, |
| 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x16, 0x2e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x72, |
| 0x75, 0x63, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, |
| 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x70, |
| 0x75, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, |
| 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x10, 0x6f, 0x75, 0x74, |
| 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x49, 0x0a, |
| 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, |
| 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, |
| 0x72, 0x75, 0x63, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4d, |
| 0x61, 0x73, 0x6b, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x72, |
| 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, |
| 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, |
| 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x73, 0x74, 0x65, 0x70, 0x5f, |
| 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, |
| 0x22, 0x90, 0x05, 0x0a, 0x0e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, |
| 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, |
| 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, |
| 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x67, 0x65, 0x72, 0x72, |
| 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, |
| 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x51, 0x0a, |
| 0x15, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, |
| 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, |
| 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x13, 0x6f, 0x75, 0x74, |
| 0x70, 0x75, 0x74, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, |
| 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, |
| 0x2e, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, |
| 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, |
| 0x3a, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, |
| 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x69, |
| 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, |
| 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, |
| 0x64, 0x65, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x30, |
| 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, |
| 0x75, 0x69, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, |
| 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, |
| 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, |
| 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, |
| 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, |
| 0x74, 0x5f, 0x6f, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, |
| 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x4f, 0x66, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, |
| 0x64, 0x5f, 0x6f, 0x66, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x68, 0x69, 0x6c, |
| 0x64, 0x4f, 0x66, 0x22, 0x54, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, |
| 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, |
| 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, |
| 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x32, 0x96, 0x07, 0x0a, 0x06, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, |
| 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, |
| 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0c, 0x53, 0x65, |
| 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x23, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x61, 0x72, |
| 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, |
| 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, |
| 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0d, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, |
| 0x75, 0x69, 0x6c, 0x64, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, |
| 0x46, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, |
| 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, |
| 0x7a, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, |
| 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, |
| 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x1a, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0a, 0x53, 0x74, 0x61, |
| 0x72, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x72, |
| 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, |
| 0x12, 0x70, 0x0a, 0x13, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, |
| 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x2a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, |
| 0x65, 0x74, 0x72, 0x69, 0x63, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, |
| 0x63, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, |
| 0x22, 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, |
| 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x33, |
| } |
| |
| var ( |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescOnce sync.Once |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc |
| ) |
| |
| func file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP() []byte { |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescOnce.Do(func() { |
| 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) |
| }) |
| return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescData |
| } |
| |
| var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes = make([]protoimpl.MessageInfo, 26) |
| var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_goTypes = []interface{}{ |
| (*GetBuildRequest)(nil), // 0: buildbucket.v2.GetBuildRequest |
| (*SearchBuildsRequest)(nil), // 1: buildbucket.v2.SearchBuildsRequest |
| (*SearchBuildsResponse)(nil), // 2: buildbucket.v2.SearchBuildsResponse |
| (*BatchRequest)(nil), // 3: buildbucket.v2.BatchRequest |
| (*BatchResponse)(nil), // 4: buildbucket.v2.BatchResponse |
| (*UpdateBuildRequest)(nil), // 5: buildbucket.v2.UpdateBuildRequest |
| (*ScheduleBuildRequest)(nil), // 6: buildbucket.v2.ScheduleBuildRequest |
| (*CancelBuildRequest)(nil), // 7: buildbucket.v2.CancelBuildRequest |
| (*CreateBuildRequest)(nil), // 8: buildbucket.v2.CreateBuildRequest |
| (*SynthesizeBuildRequest)(nil), // 9: buildbucket.v2.SynthesizeBuildRequest |
| (*StartBuildRequest)(nil), // 10: buildbucket.v2.StartBuildRequest |
| (*StartBuildResponse)(nil), // 11: buildbucket.v2.StartBuildResponse |
| (*GetBuildStatusRequest)(nil), // 12: buildbucket.v2.GetBuildStatusRequest |
| (*CustomMetricPreviewRequest)(nil), // 13: buildbucket.v2.CustomMetricPreviewRequest |
| (*CustomMetricPreviewResponse)(nil), // 14: buildbucket.v2.CustomMetricPreviewResponse |
| (*BuildMask)(nil), // 15: buildbucket.v2.BuildMask |
| (*BuildPredicate)(nil), // 16: buildbucket.v2.BuildPredicate |
| (*BuildRange)(nil), // 17: buildbucket.v2.BuildRange |
| (*BatchRequest_Request)(nil), // 18: buildbucket.v2.BatchRequest.Request |
| (*BatchResponse_Response)(nil), // 19: buildbucket.v2.BatchResponse.Response |
| nil, // 20: buildbucket.v2.ScheduleBuildRequest.ExperimentsEntry |
| (*ScheduleBuildRequest_Swarming)(nil), // 21: buildbucket.v2.ScheduleBuildRequest.Swarming |
| (*ScheduleBuildRequest_ShadowInput)(nil), // 22: buildbucket.v2.ScheduleBuildRequest.ShadowInput |
| (*ScheduleBuildRequest_ResultDB)(nil), // 23: buildbucket.v2.ScheduleBuildRequest.ResultDB |
| nil, // 24: buildbucket.v2.SynthesizeBuildRequest.ExperimentsEntry |
| (*CustomMetricPreviewResponse_Report)(nil), // 25: buildbucket.v2.CustomMetricPreviewResponse.Report |
| (*BuilderID)(nil), // 26: buildbucket.v2.BuilderID |
| (*fieldmaskpb.FieldMask)(nil), // 27: google.protobuf.FieldMask |
| (*Build)(nil), // 28: buildbucket.v2.Build |
| (Trinary)(0), // 29: buildbucket.v2.Trinary |
| (*structpb.Struct)(nil), // 30: google.protobuf.Struct |
| (*GitilesCommit)(nil), // 31: buildbucket.v2.GitilesCommit |
| (*GerritChange)(nil), // 32: buildbucket.v2.GerritChange |
| (*StringPair)(nil), // 33: buildbucket.v2.StringPair |
| (*RequestedDimension)(nil), // 34: buildbucket.v2.RequestedDimension |
| (*NotificationConfig)(nil), // 35: buildbucket.v2.NotificationConfig |
| (*Executable)(nil), // 36: buildbucket.v2.Executable |
| (*durationpb.Duration)(nil), // 37: google.protobuf.Duration |
| (*CustomMetricDefinition)(nil), // 38: buildbucket.CustomMetricDefinition |
| (CustomMetricBase)(0), // 39: buildbucket.CustomMetricBase |
| (*structmask.StructMask)(nil), // 40: structmask.StructMask |
| (Status)(0), // 41: buildbucket.v2.Status |
| (*TimeRange)(nil), // 42: buildbucket.v2.TimeRange |
| (*status.Status)(nil), // 43: google.rpc.Status |
| } |
| var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_depIdxs = []int32{ |
| 26, // 0: buildbucket.v2.GetBuildRequest.builder:type_name -> buildbucket.v2.BuilderID |
| 27, // 1: buildbucket.v2.GetBuildRequest.fields:type_name -> google.protobuf.FieldMask |
| 15, // 2: buildbucket.v2.GetBuildRequest.mask:type_name -> buildbucket.v2.BuildMask |
| 16, // 3: buildbucket.v2.SearchBuildsRequest.predicate:type_name -> buildbucket.v2.BuildPredicate |
| 27, // 4: buildbucket.v2.SearchBuildsRequest.fields:type_name -> google.protobuf.FieldMask |
| 15, // 5: buildbucket.v2.SearchBuildsRequest.mask:type_name -> buildbucket.v2.BuildMask |
| 28, // 6: buildbucket.v2.SearchBuildsResponse.builds:type_name -> buildbucket.v2.Build |
| 18, // 7: buildbucket.v2.BatchRequest.requests:type_name -> buildbucket.v2.BatchRequest.Request |
| 19, // 8: buildbucket.v2.BatchResponse.responses:type_name -> buildbucket.v2.BatchResponse.Response |
| 28, // 9: buildbucket.v2.UpdateBuildRequest.build:type_name -> buildbucket.v2.Build |
| 27, // 10: buildbucket.v2.UpdateBuildRequest.update_mask:type_name -> google.protobuf.FieldMask |
| 27, // 11: buildbucket.v2.UpdateBuildRequest.fields:type_name -> google.protobuf.FieldMask |
| 15, // 12: buildbucket.v2.UpdateBuildRequest.mask:type_name -> buildbucket.v2.BuildMask |
| 26, // 13: buildbucket.v2.ScheduleBuildRequest.builder:type_name -> buildbucket.v2.BuilderID |
| 29, // 14: buildbucket.v2.ScheduleBuildRequest.canary:type_name -> buildbucket.v2.Trinary |
| 29, // 15: buildbucket.v2.ScheduleBuildRequest.experimental:type_name -> buildbucket.v2.Trinary |
| 20, // 16: buildbucket.v2.ScheduleBuildRequest.experiments:type_name -> buildbucket.v2.ScheduleBuildRequest.ExperimentsEntry |
| 30, // 17: buildbucket.v2.ScheduleBuildRequest.properties:type_name -> google.protobuf.Struct |
| 31, // 18: buildbucket.v2.ScheduleBuildRequest.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit |
| 32, // 19: buildbucket.v2.ScheduleBuildRequest.gerrit_changes:type_name -> buildbucket.v2.GerritChange |
| 33, // 20: buildbucket.v2.ScheduleBuildRequest.tags:type_name -> buildbucket.v2.StringPair |
| 34, // 21: buildbucket.v2.ScheduleBuildRequest.dimensions:type_name -> buildbucket.v2.RequestedDimension |
| 35, // 22: buildbucket.v2.ScheduleBuildRequest.notify:type_name -> buildbucket.v2.NotificationConfig |
| 27, // 23: buildbucket.v2.ScheduleBuildRequest.fields:type_name -> google.protobuf.FieldMask |
| 15, // 24: buildbucket.v2.ScheduleBuildRequest.mask:type_name -> buildbucket.v2.BuildMask |
| 29, // 25: buildbucket.v2.ScheduleBuildRequest.critical:type_name -> buildbucket.v2.Trinary |
| 36, // 26: buildbucket.v2.ScheduleBuildRequest.exe:type_name -> buildbucket.v2.Executable |
| 21, // 27: buildbucket.v2.ScheduleBuildRequest.swarming:type_name -> buildbucket.v2.ScheduleBuildRequest.Swarming |
| 37, // 28: buildbucket.v2.ScheduleBuildRequest.scheduling_timeout:type_name -> google.protobuf.Duration |
| 37, // 29: buildbucket.v2.ScheduleBuildRequest.execution_timeout:type_name -> google.protobuf.Duration |
| 37, // 30: buildbucket.v2.ScheduleBuildRequest.grace_period:type_name -> google.protobuf.Duration |
| 29, // 31: buildbucket.v2.ScheduleBuildRequest.can_outlive_parent:type_name -> buildbucket.v2.Trinary |
| 29, // 32: buildbucket.v2.ScheduleBuildRequest.retriable:type_name -> buildbucket.v2.Trinary |
| 22, // 33: buildbucket.v2.ScheduleBuildRequest.shadow_input:type_name -> buildbucket.v2.ScheduleBuildRequest.ShadowInput |
| 23, // 34: buildbucket.v2.ScheduleBuildRequest.resultdb:type_name -> buildbucket.v2.ScheduleBuildRequest.ResultDB |
| 27, // 35: buildbucket.v2.CancelBuildRequest.fields:type_name -> google.protobuf.FieldMask |
| 15, // 36: buildbucket.v2.CancelBuildRequest.mask:type_name -> buildbucket.v2.BuildMask |
| 28, // 37: buildbucket.v2.CreateBuildRequest.build:type_name -> buildbucket.v2.Build |
| 15, // 38: buildbucket.v2.CreateBuildRequest.mask:type_name -> buildbucket.v2.BuildMask |
| 26, // 39: buildbucket.v2.SynthesizeBuildRequest.builder:type_name -> buildbucket.v2.BuilderID |
| 24, // 40: buildbucket.v2.SynthesizeBuildRequest.experiments:type_name -> buildbucket.v2.SynthesizeBuildRequest.ExperimentsEntry |
| 28, // 41: buildbucket.v2.StartBuildResponse.build:type_name -> buildbucket.v2.Build |
| 26, // 42: buildbucket.v2.GetBuildStatusRequest.builder:type_name -> buildbucket.v2.BuilderID |
| 38, // 43: buildbucket.v2.CustomMetricPreviewRequest.metric_definition:type_name -> buildbucket.CustomMetricDefinition |
| 39, // 44: buildbucket.v2.CustomMetricPreviewRequest.metric_base:type_name -> buildbucket.CustomMetricBase |
| 25, // 45: buildbucket.v2.CustomMetricPreviewResponse.report:type_name -> buildbucket.v2.CustomMetricPreviewResponse.Report |
| 27, // 46: buildbucket.v2.BuildMask.fields:type_name -> google.protobuf.FieldMask |
| 40, // 47: buildbucket.v2.BuildMask.input_properties:type_name -> structmask.StructMask |
| 40, // 48: buildbucket.v2.BuildMask.output_properties:type_name -> structmask.StructMask |
| 40, // 49: buildbucket.v2.BuildMask.requested_properties:type_name -> structmask.StructMask |
| 41, // 50: buildbucket.v2.BuildMask.step_status:type_name -> buildbucket.v2.Status |
| 26, // 51: buildbucket.v2.BuildPredicate.builder:type_name -> buildbucket.v2.BuilderID |
| 41, // 52: buildbucket.v2.BuildPredicate.status:type_name -> buildbucket.v2.Status |
| 32, // 53: buildbucket.v2.BuildPredicate.gerrit_changes:type_name -> buildbucket.v2.GerritChange |
| 31, // 54: buildbucket.v2.BuildPredicate.output_gitiles_commit:type_name -> buildbucket.v2.GitilesCommit |
| 33, // 55: buildbucket.v2.BuildPredicate.tags:type_name -> buildbucket.v2.StringPair |
| 42, // 56: buildbucket.v2.BuildPredicate.create_time:type_name -> buildbucket.v2.TimeRange |
| 17, // 57: buildbucket.v2.BuildPredicate.build:type_name -> buildbucket.v2.BuildRange |
| 29, // 58: buildbucket.v2.BuildPredicate.canary:type_name -> buildbucket.v2.Trinary |
| 0, // 59: buildbucket.v2.BatchRequest.Request.get_build:type_name -> buildbucket.v2.GetBuildRequest |
| 1, // 60: buildbucket.v2.BatchRequest.Request.search_builds:type_name -> buildbucket.v2.SearchBuildsRequest |
| 6, // 61: buildbucket.v2.BatchRequest.Request.schedule_build:type_name -> buildbucket.v2.ScheduleBuildRequest |
| 7, // 62: buildbucket.v2.BatchRequest.Request.cancel_build:type_name -> buildbucket.v2.CancelBuildRequest |
| 12, // 63: buildbucket.v2.BatchRequest.Request.get_build_status:type_name -> buildbucket.v2.GetBuildStatusRequest |
| 28, // 64: buildbucket.v2.BatchResponse.Response.get_build:type_name -> buildbucket.v2.Build |
| 2, // 65: buildbucket.v2.BatchResponse.Response.search_builds:type_name -> buildbucket.v2.SearchBuildsResponse |
| 28, // 66: buildbucket.v2.BatchResponse.Response.schedule_build:type_name -> buildbucket.v2.Build |
| 28, // 67: buildbucket.v2.BatchResponse.Response.cancel_build:type_name -> buildbucket.v2.Build |
| 28, // 68: buildbucket.v2.BatchResponse.Response.get_build_status:type_name -> buildbucket.v2.Build |
| 43, // 69: buildbucket.v2.BatchResponse.Response.error:type_name -> google.rpc.Status |
| 33, // 70: buildbucket.v2.CustomMetricPreviewResponse.Report.fields:type_name -> buildbucket.v2.StringPair |
| 0, // 71: buildbucket.v2.Builds.GetBuild:input_type -> buildbucket.v2.GetBuildRequest |
| 1, // 72: buildbucket.v2.Builds.SearchBuilds:input_type -> buildbucket.v2.SearchBuildsRequest |
| 5, // 73: buildbucket.v2.Builds.UpdateBuild:input_type -> buildbucket.v2.UpdateBuildRequest |
| 6, // 74: buildbucket.v2.Builds.ScheduleBuild:input_type -> buildbucket.v2.ScheduleBuildRequest |
| 7, // 75: buildbucket.v2.Builds.CancelBuild:input_type -> buildbucket.v2.CancelBuildRequest |
| 3, // 76: buildbucket.v2.Builds.Batch:input_type -> buildbucket.v2.BatchRequest |
| 8, // 77: buildbucket.v2.Builds.CreateBuild:input_type -> buildbucket.v2.CreateBuildRequest |
| 9, // 78: buildbucket.v2.Builds.SynthesizeBuild:input_type -> buildbucket.v2.SynthesizeBuildRequest |
| 12, // 79: buildbucket.v2.Builds.GetBuildStatus:input_type -> buildbucket.v2.GetBuildStatusRequest |
| 10, // 80: buildbucket.v2.Builds.StartBuild:input_type -> buildbucket.v2.StartBuildRequest |
| 13, // 81: buildbucket.v2.Builds.CustomMetricPreview:input_type -> buildbucket.v2.CustomMetricPreviewRequest |
| 28, // 82: buildbucket.v2.Builds.GetBuild:output_type -> buildbucket.v2.Build |
| 2, // 83: buildbucket.v2.Builds.SearchBuilds:output_type -> buildbucket.v2.SearchBuildsResponse |
| 28, // 84: buildbucket.v2.Builds.UpdateBuild:output_type -> buildbucket.v2.Build |
| 28, // 85: buildbucket.v2.Builds.ScheduleBuild:output_type -> buildbucket.v2.Build |
| 28, // 86: buildbucket.v2.Builds.CancelBuild:output_type -> buildbucket.v2.Build |
| 4, // 87: buildbucket.v2.Builds.Batch:output_type -> buildbucket.v2.BatchResponse |
| 28, // 88: buildbucket.v2.Builds.CreateBuild:output_type -> buildbucket.v2.Build |
| 28, // 89: buildbucket.v2.Builds.SynthesizeBuild:output_type -> buildbucket.v2.Build |
| 28, // 90: buildbucket.v2.Builds.GetBuildStatus:output_type -> buildbucket.v2.Build |
| 11, // 91: buildbucket.v2.Builds.StartBuild:output_type -> buildbucket.v2.StartBuildResponse |
| 14, // 92: buildbucket.v2.Builds.CustomMetricPreview:output_type -> buildbucket.v2.CustomMetricPreviewResponse |
| 82, // [82:93] is the sub-list for method output_type |
| 71, // [71:82] is the sub-list for method input_type |
| 71, // [71:71] is the sub-list for extension type_name |
| 71, // [71:71] is the sub-list for extension extendee |
| 0, // [0:71] is the sub-list for field type_name |
| } |
| |
| func init() { file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_init() } |
| func file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_init() { |
| if File_go_chromium_org_luci_buildbucket_proto_builds_service_proto != nil { |
| return |
| } |
| file_go_chromium_org_luci_buildbucket_proto_build_proto_init() |
| file_go_chromium_org_luci_buildbucket_proto_builder_common_proto_init() |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_init() |
| file_go_chromium_org_luci_buildbucket_proto_notification_proto_init() |
| file_go_chromium_org_luci_buildbucket_proto_project_config_proto_init() |
| file_go_chromium_org_luci_buildbucket_proto_service_config_proto_init() |
| if !protoimpl.UnsafeEnabled { |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetBuildRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchBuildsRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchBuildsResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BatchRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BatchResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UpdateBuildRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ScheduleBuildRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CancelBuildRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CreateBuildRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SynthesizeBuildRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StartBuildRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StartBuildResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetBuildStatusRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CustomMetricPreviewRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CustomMetricPreviewResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BuildMask); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BuildPredicate); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BuildRange); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BatchRequest_Request); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BatchResponse_Response); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ScheduleBuildRequest_Swarming); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ScheduleBuildRequest_ShadowInput); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ScheduleBuildRequest_ResultDB); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CustomMetricPreviewResponse_Report); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[13].OneofWrappers = []interface{}{ |
| (*CustomMetricPreviewRequest_MetricBase)(nil), |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[14].OneofWrappers = []interface{}{ |
| (*CustomMetricPreviewResponse_Report_)(nil), |
| (*CustomMetricPreviewResponse_Error)(nil), |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[18].OneofWrappers = []interface{}{ |
| (*BatchRequest_Request_GetBuild)(nil), |
| (*BatchRequest_Request_SearchBuilds)(nil), |
| (*BatchRequest_Request_ScheduleBuild)(nil), |
| (*BatchRequest_Request_CancelBuild)(nil), |
| (*BatchRequest_Request_GetBuildStatus)(nil), |
| } |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[19].OneofWrappers = []interface{}{ |
| (*BatchResponse_Response_GetBuild)(nil), |
| (*BatchResponse_Response_SearchBuilds)(nil), |
| (*BatchResponse_Response_ScheduleBuild)(nil), |
| (*BatchResponse_Response_CancelBuild)(nil), |
| (*BatchResponse_Response_GetBuildStatus)(nil), |
| (*BatchResponse_Response_Error)(nil), |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc, |
| NumEnums: 0, |
| NumMessages: 26, |
| NumExtensions: 0, |
| NumServices: 1, |
| }, |
| GoTypes: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_goTypes, |
| DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_depIdxs, |
| MessageInfos: file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes, |
| }.Build() |
| File_go_chromium_org_luci_buildbucket_proto_builds_service_proto = out.File |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDesc = nil |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_goTypes = nil |
| file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_depIdxs = nil |
| } |
| |
| // Reference imports to suppress errors if they are not otherwise used. |
| var _ context.Context |
| var _ grpc.ClientConnInterface |
| |
| // This is a compile-time assertion to ensure that this generated file |
| // is compatible with the grpc package it is being compiled against. |
| const _ = grpc.SupportPackageIsVersion6 |
| |
| // BuildsClient is the client API for Builds service. |
| // |
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. |
| type BuildsClient interface { |
| // Gets a build. |
| // |
| // By default the returned build does not include all fields. |
| // See GetBuildRequest.mask. |
| // |
| // Buildbot: if the specified build is a buildbot build, converts it to Build |
| // message with the following rules: |
| // - bucket names are full, e.g. "luci.infra.try". Note that LUCI buckets |
| // in v2 are shortened, e.g. "try". |
| // - if a v2 Build field does not make sense in V1, it is unset/empty. |
| // - step support is not implemented for Buildbot builds. |
| // |
| // Note that it does not support getting a buildbot build by build number. |
| // Examples: go/buildbucket-rpc#getbuild |
| // |
| // GetBuild is good for getting detailed information for a build. |
| // For use cases that only requires build status checking (e.g. wait for a |
| // build to complete), please use GetBuildStatus instead. |
| GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) |
| // Searches for builds. |
| // Examples: go/buildbucket-rpc#searchbuilds |
| SearchBuilds(ctx context.Context, in *SearchBuildsRequest, opts ...grpc.CallOption) (*SearchBuildsResponse, error) |
| // Updates a build. |
| // |
| // RPC metadata must include "x-buildbucket-token" key with a token |
| // generated by the server when scheduling the build. |
| UpdateBuild(ctx context.Context, in *UpdateBuildRequest, opts ...grpc.CallOption) (*Build, error) |
| // Schedules a new build. |
| // The requester must have at least SCHEDULER role in the destination bucket. |
| // Example: go/buildbucket-rpc#schedulebuild |
| ScheduleBuild(ctx context.Context, in *ScheduleBuildRequest, opts ...grpc.CallOption) (*Build, error) |
| // Cancels a build. |
| // The requester must have at least SCHEDULER role in the destination bucket. |
| // Note that cancelling a build in ended state (meaning build is not in |
| // STATUS_UNSPECIFIED, SCHEDULED or STARTED status) will be a no-op and |
| // directly return up-to-date Build message. |
| // |
| // When called, Buildbucket will set the build's cancelTime to "now". It |
| // will also recursively start the cancellation process for any children of |
| // this build which are marked as can_outlive_parent=false. |
| // |
| // The next time the build checks in (which happens periodically in |
| // `bbagent`), bbagent will see the cancelTime, and start the cancellation |
| // process described by the 'deadline' section in |
| // https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md. |
| // |
| // If the build ends before the build's grace_period, then the final status |
| // reported from the build is accepted; this is considered 'graceful termination'. |
| // |
| // If the build doesn't end within the build's grace_period, Buildbucket will |
| // forcibly cancel the build. |
| CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) |
| // Executes multiple requests in a batch. |
| // The response code is always OK. |
| // Examples: go/buildbucket-rpc#batch |
| Batch(ctx context.Context, in *BatchRequest, opts ...grpc.CallOption) (*BatchResponse, error) |
| // Creates a new build for the provided build proto. |
| // |
| // If build with the given ID already exists, returns ALREADY_EXISTS |
| // error code. |
| CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*Build, error) |
| // Synthesizes a build proto. |
| // |
| // This RPC is exclusively for generating led builds. |
| SynthesizeBuild(ctx context.Context, in *SynthesizeBuildRequest, opts ...grpc.CallOption) (*Build, error) |
| // Gets a build's status. |
| // |
| // The returned build contains the requested build id or |
| // (builder + build number), and build status. |
| // |
| // It's useful when a user only wants to check the build's status (i.e. wait |
| // for a build to complete). |
| GetBuildStatus(ctx context.Context, in *GetBuildStatusRequest, opts ...grpc.CallOption) (*Build, error) |
| // Starts a build. |
| // |
| // RPC metadata must include "x-buildbucket-token" key with |
| // - a BUILD type token generated by the server when it creates a Swarming |
| // task for the build (builds on Swarming) or |
| // - a START_BUILD type token generated by the server when it attempts to run |
| // a backend task (builds on TaskBackend). |
| // |
| // Agent must call it before making any UpdateBuild calls. |
| // |
| // StartBuild will associate a task with a build if the association is not done |
| // after RunTaskResponse is returned to buildbucket. |
| StartBuild(ctx context.Context, in *StartBuildRequest, opts ...grpc.CallOption) (*StartBuildResponse, error) |
| // Preview a custom metric definition with a build. |
| // It's useful for builder owners to test the CEL expressions they plan to |
| // use in their custom metric predicates and extra_fields. |
| CustomMetricPreview(ctx context.Context, in *CustomMetricPreviewRequest, opts ...grpc.CallOption) (*CustomMetricPreviewResponse, error) |
| } |
| type buildsPRPCClient struct { |
| client *prpc.Client |
| } |
| |
| func NewBuildsPRPCClient(client *prpc.Client) BuildsClient { |
| return &buildsPRPCClient{client} |
| } |
| |
| func (c *buildsPRPCClient) GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "GetBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) SearchBuilds(ctx context.Context, in *SearchBuildsRequest, opts ...grpc.CallOption) (*SearchBuildsResponse, error) { |
| out := new(SearchBuildsResponse) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "SearchBuilds", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) UpdateBuild(ctx context.Context, in *UpdateBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "UpdateBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) ScheduleBuild(ctx context.Context, in *ScheduleBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "ScheduleBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "CancelBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) Batch(ctx context.Context, in *BatchRequest, opts ...grpc.CallOption) (*BatchResponse, error) { |
| out := new(BatchResponse) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "Batch", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "CreateBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) SynthesizeBuild(ctx context.Context, in *SynthesizeBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "SynthesizeBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) GetBuildStatus(ctx context.Context, in *GetBuildStatusRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "GetBuildStatus", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) StartBuild(ctx context.Context, in *StartBuildRequest, opts ...grpc.CallOption) (*StartBuildResponse, error) { |
| out := new(StartBuildResponse) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "StartBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsPRPCClient) CustomMetricPreview(ctx context.Context, in *CustomMetricPreviewRequest, opts ...grpc.CallOption) (*CustomMetricPreviewResponse, error) { |
| out := new(CustomMetricPreviewResponse) |
| err := c.client.Call(ctx, "buildbucket.v2.Builds", "CustomMetricPreview", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| type buildsClient struct { |
| cc grpc.ClientConnInterface |
| } |
| |
| func NewBuildsClient(cc grpc.ClientConnInterface) BuildsClient { |
| return &buildsClient{cc} |
| } |
| |
| func (c *buildsClient) GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/GetBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) SearchBuilds(ctx context.Context, in *SearchBuildsRequest, opts ...grpc.CallOption) (*SearchBuildsResponse, error) { |
| out := new(SearchBuildsResponse) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/SearchBuilds", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) UpdateBuild(ctx context.Context, in *UpdateBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/UpdateBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) ScheduleBuild(ctx context.Context, in *ScheduleBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/ScheduleBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/CancelBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) Batch(ctx context.Context, in *BatchRequest, opts ...grpc.CallOption) (*BatchResponse, error) { |
| out := new(BatchResponse) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/Batch", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/CreateBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) SynthesizeBuild(ctx context.Context, in *SynthesizeBuildRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/SynthesizeBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) GetBuildStatus(ctx context.Context, in *GetBuildStatusRequest, opts ...grpc.CallOption) (*Build, error) { |
| out := new(Build) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/GetBuildStatus", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) StartBuild(ctx context.Context, in *StartBuildRequest, opts ...grpc.CallOption) (*StartBuildResponse, error) { |
| out := new(StartBuildResponse) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/StartBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *buildsClient) CustomMetricPreview(ctx context.Context, in *CustomMetricPreviewRequest, opts ...grpc.CallOption) (*CustomMetricPreviewResponse, error) { |
| out := new(CustomMetricPreviewResponse) |
| err := c.cc.Invoke(ctx, "/buildbucket.v2.Builds/CustomMetricPreview", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| // BuildsServer is the server API for Builds service. |
| type BuildsServer interface { |
| // Gets a build. |
| // |
| // By default the returned build does not include all fields. |
| // See GetBuildRequest.mask. |
| // |
| // Buildbot: if the specified build is a buildbot build, converts it to Build |
| // message with the following rules: |
| // - bucket names are full, e.g. "luci.infra.try". Note that LUCI buckets |
| // in v2 are shortened, e.g. "try". |
| // - if a v2 Build field does not make sense in V1, it is unset/empty. |
| // - step support is not implemented for Buildbot builds. |
| // |
| // Note that it does not support getting a buildbot build by build number. |
| // Examples: go/buildbucket-rpc#getbuild |
| // |
| // GetBuild is good for getting detailed information for a build. |
| // For use cases that only requires build status checking (e.g. wait for a |
| // build to complete), please use GetBuildStatus instead. |
| GetBuild(context.Context, *GetBuildRequest) (*Build, error) |
| // Searches for builds. |
| // Examples: go/buildbucket-rpc#searchbuilds |
| SearchBuilds(context.Context, *SearchBuildsRequest) (*SearchBuildsResponse, error) |
| // Updates a build. |
| // |
| // RPC metadata must include "x-buildbucket-token" key with a token |
| // generated by the server when scheduling the build. |
| UpdateBuild(context.Context, *UpdateBuildRequest) (*Build, error) |
| // Schedules a new build. |
| // The requester must have at least SCHEDULER role in the destination bucket. |
| // Example: go/buildbucket-rpc#schedulebuild |
| ScheduleBuild(context.Context, *ScheduleBuildRequest) (*Build, error) |
| // Cancels a build. |
| // The requester must have at least SCHEDULER role in the destination bucket. |
| // Note that cancelling a build in ended state (meaning build is not in |
| // STATUS_UNSPECIFIED, SCHEDULED or STARTED status) will be a no-op and |
| // directly return up-to-date Build message. |
| // |
| // When called, Buildbucket will set the build's cancelTime to "now". It |
| // will also recursively start the cancellation process for any children of |
| // this build which are marked as can_outlive_parent=false. |
| // |
| // The next time the build checks in (which happens periodically in |
| // `bbagent`), bbagent will see the cancelTime, and start the cancellation |
| // process described by the 'deadline' section in |
| // https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md. |
| // |
| // If the build ends before the build's grace_period, then the final status |
| // reported from the build is accepted; this is considered 'graceful termination'. |
| // |
| // If the build doesn't end within the build's grace_period, Buildbucket will |
| // forcibly cancel the build. |
| CancelBuild(context.Context, *CancelBuildRequest) (*Build, error) |
| // Executes multiple requests in a batch. |
| // The response code is always OK. |
| // Examples: go/buildbucket-rpc#batch |
| Batch(context.Context, *BatchRequest) (*BatchResponse, error) |
| // Creates a new build for the provided build proto. |
| // |
| // If build with the given ID already exists, returns ALREADY_EXISTS |
| // error code. |
| CreateBuild(context.Context, *CreateBuildRequest) (*Build, error) |
| // Synthesizes a build proto. |
| // |
| // This RPC is exclusively for generating led builds. |
| SynthesizeBuild(context.Context, *SynthesizeBuildRequest) (*Build, error) |
| // Gets a build's status. |
| // |
| // The returned build contains the requested build id or |
| // (builder + build number), and build status. |
| // |
| // It's useful when a user only wants to check the build's status (i.e. wait |
| // for a build to complete). |
| GetBuildStatus(context.Context, *GetBuildStatusRequest) (*Build, error) |
| // Starts a build. |
| // |
| // RPC metadata must include "x-buildbucket-token" key with |
| // - a BUILD type token generated by the server when it creates a Swarming |
| // task for the build (builds on Swarming) or |
| // - a START_BUILD type token generated by the server when it attempts to run |
| // a backend task (builds on TaskBackend). |
| // |
| // Agent must call it before making any UpdateBuild calls. |
| // |
| // StartBuild will associate a task with a build if the association is not done |
| // after RunTaskResponse is returned to buildbucket. |
| StartBuild(context.Context, *StartBuildRequest) (*StartBuildResponse, error) |
| // Preview a custom metric definition with a build. |
| // It's useful for builder owners to test the CEL expressions they plan to |
| // use in their custom metric predicates and extra_fields. |
| CustomMetricPreview(context.Context, *CustomMetricPreviewRequest) (*CustomMetricPreviewResponse, error) |
| } |
| |
| // UnimplementedBuildsServer can be embedded to have forward compatible implementations. |
| type UnimplementedBuildsServer struct { |
| } |
| |
| func (*UnimplementedBuildsServer) GetBuild(context.Context, *GetBuildRequest) (*Build, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method GetBuild not implemented") |
| } |
| func (*UnimplementedBuildsServer) SearchBuilds(context.Context, *SearchBuildsRequest) (*SearchBuildsResponse, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method SearchBuilds not implemented") |
| } |
| func (*UnimplementedBuildsServer) UpdateBuild(context.Context, *UpdateBuildRequest) (*Build, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method UpdateBuild not implemented") |
| } |
| func (*UnimplementedBuildsServer) ScheduleBuild(context.Context, *ScheduleBuildRequest) (*Build, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method ScheduleBuild not implemented") |
| } |
| func (*UnimplementedBuildsServer) CancelBuild(context.Context, *CancelBuildRequest) (*Build, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method CancelBuild not implemented") |
| } |
| func (*UnimplementedBuildsServer) Batch(context.Context, *BatchRequest) (*BatchResponse, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method Batch not implemented") |
| } |
| func (*UnimplementedBuildsServer) CreateBuild(context.Context, *CreateBuildRequest) (*Build, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method CreateBuild not implemented") |
| } |
| func (*UnimplementedBuildsServer) SynthesizeBuild(context.Context, *SynthesizeBuildRequest) (*Build, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method SynthesizeBuild not implemented") |
| } |
| func (*UnimplementedBuildsServer) GetBuildStatus(context.Context, *GetBuildStatusRequest) (*Build, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method GetBuildStatus not implemented") |
| } |
| func (*UnimplementedBuildsServer) StartBuild(context.Context, *StartBuildRequest) (*StartBuildResponse, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method StartBuild not implemented") |
| } |
| func (*UnimplementedBuildsServer) CustomMetricPreview(context.Context, *CustomMetricPreviewRequest) (*CustomMetricPreviewResponse, error) { |
| return nil, status1.Errorf(codes.Unimplemented, "method CustomMetricPreview not implemented") |
| } |
| |
| func RegisterBuildsServer(s prpc.Registrar, srv BuildsServer) { |
| s.RegisterService(&_Builds_serviceDesc, srv) |
| } |
| |
| func _Builds_GetBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).GetBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/GetBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).GetBuild(ctx, req.(*GetBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_SearchBuilds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(SearchBuildsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).SearchBuilds(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/SearchBuilds", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).SearchBuilds(ctx, req.(*SearchBuildsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_UpdateBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(UpdateBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).UpdateBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/UpdateBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).UpdateBuild(ctx, req.(*UpdateBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_ScheduleBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ScheduleBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).ScheduleBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/ScheduleBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).ScheduleBuild(ctx, req.(*ScheduleBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_CancelBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CancelBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).CancelBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/CancelBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).CancelBuild(ctx, req.(*CancelBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_Batch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(BatchRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).Batch(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/Batch", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).Batch(ctx, req.(*BatchRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_CreateBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CreateBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).CreateBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/CreateBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).CreateBuild(ctx, req.(*CreateBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_SynthesizeBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(SynthesizeBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).SynthesizeBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/SynthesizeBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).SynthesizeBuild(ctx, req.(*SynthesizeBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_GetBuildStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetBuildStatusRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).GetBuildStatus(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/GetBuildStatus", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).GetBuildStatus(ctx, req.(*GetBuildStatusRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_StartBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(StartBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).StartBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/StartBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).StartBuild(ctx, req.(*StartBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Builds_CustomMetricPreview_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CustomMetricPreviewRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(BuildsServer).CustomMetricPreview(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/buildbucket.v2.Builds/CustomMetricPreview", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(BuildsServer).CustomMetricPreview(ctx, req.(*CustomMetricPreviewRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| var _Builds_serviceDesc = grpc.ServiceDesc{ |
| ServiceName: "buildbucket.v2.Builds", |
| HandlerType: (*BuildsServer)(nil), |
| Methods: []grpc.MethodDesc{ |
| { |
| MethodName: "GetBuild", |
| Handler: _Builds_GetBuild_Handler, |
| }, |
| { |
| MethodName: "SearchBuilds", |
| Handler: _Builds_SearchBuilds_Handler, |
| }, |
| { |
| MethodName: "UpdateBuild", |
| Handler: _Builds_UpdateBuild_Handler, |
| }, |
| { |
| MethodName: "ScheduleBuild", |
| Handler: _Builds_ScheduleBuild_Handler, |
| }, |
| { |
| MethodName: "CancelBuild", |
| Handler: _Builds_CancelBuild_Handler, |
| }, |
| { |
| MethodName: "Batch", |
| Handler: _Builds_Batch_Handler, |
| }, |
| { |
| MethodName: "CreateBuild", |
| Handler: _Builds_CreateBuild_Handler, |
| }, |
| { |
| MethodName: "SynthesizeBuild", |
| Handler: _Builds_SynthesizeBuild_Handler, |
| }, |
| { |
| MethodName: "GetBuildStatus", |
| Handler: _Builds_GetBuildStatus_Handler, |
| }, |
| { |
| MethodName: "StartBuild", |
| Handler: _Builds_StartBuild_Handler, |
| }, |
| { |
| MethodName: "CustomMetricPreview", |
| Handler: _Builds_CustomMetricPreview_Handler, |
| }, |
| }, |
| Streams: []grpc.StreamDesc{}, |
| Metadata: "go.chromium.org/luci/buildbucket/proto/builds_service.proto", |
| } |