blob: 776f126f88deebbd2870c872a6f3503ea0e24c06 [file] [log] [blame]
// 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.26.0
// protoc v3.17.0
// source: go.chromium.org/luci/buildbucket/proto/builds_service.proto
package buildbucketpb
import prpc "go.chromium.org/luci/grpc/prpc"
import (
context "context"
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.
// 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".
Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,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
}
func (x *GetBuildRequest) GetFields() *fieldmaskpb.FieldMask {
if x != nil {
return x.Fields
}
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.
// Note that this applies to the response, not each build, so e.g. steps must
// be requested with a path "builds.*.steps".
Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,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
}
func (x *SearchBuildsRequest) GetFields() *fieldmaskpb.FieldMask {
if x != nil {
return x.Fields
}
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).
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"`
// Required. 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.status
// - build.status_details
// - build.steps
// - build.summary_markdown
// - build.tags
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.
Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,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
}
func (x *UpdateBuildRequest) GetFields() *fieldmaskpb.FieldMask {
if x != nil {
return x.Fields
}
return nil
}
// A request message for ScheduleBuild rpc.
//
// Next ID: 21.
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:
// * ["buildbucket"]
// * ["buildername"]
// * ["blamelist""]
// * ["$recipe_engine/runtime", "is_experimental"]
//
// 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.
//
// 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.
Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,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"`
}
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
}
func (x *ScheduleBuildRequest) GetFields() *fieldmaskpb.FieldMask {
if x != nil {
return x.Fields
}
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
}
// 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.summary_markdown.
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.
Fields *fieldmaskpb.FieldMask `protobuf:"bytes,100,opt,name=fields,proto3" json:"fields,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 ""
}
func (x *CancelBuildRequest) GetFields() *fieldmaskpb.FieldMask {
if x != nil {
return x.Fields
}
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"`
}
func (x *BuildPredicate) Reset() {
*x = BuildPredicate{}
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 *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[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 BuildPredicate.ProtoReflect.Descriptor instead.
func (*BuildPredicate) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{8}
}
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
}
// 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[9]
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[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 BuildRange.ProtoReflect.Descriptor instead.
func (*BuildRange) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_rawDescGZIP(), []int{9}
}
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
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[10]
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[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 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
}
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"`
}
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() {}
// 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_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[11]
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[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 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) 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_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_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[13]
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[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 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 ""
}
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, 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, 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, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 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,
0x22, 0xad, 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, 0x32, 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, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73,
0x22, 0xc3, 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, 0x32, 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, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 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, 0x8b, 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, 0xb8, 0x02, 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, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x22, 0x99, 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, 0xc1, 0x02, 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, 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,
0xb2, 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, 0x32, 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, 0x52, 0x06, 0x66, 0x69,
0x65, 0x6c, 0x64, 0x73, 0x22, 0xa8, 0x0a, 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, 0x32, 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,
0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 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, 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, 0x22,
0x83, 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, 0x32, 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, 0x52, 0x06, 0x66,
0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xd0, 0x04, 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, 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, 0xdb,
0x03, 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, 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, 14)
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
(*BuildPredicate)(nil), // 8: buildbucket.v2.BuildPredicate
(*BuildRange)(nil), // 9: buildbucket.v2.BuildRange
(*BatchRequest_Request)(nil), // 10: buildbucket.v2.BatchRequest.Request
(*BatchResponse_Response)(nil), // 11: buildbucket.v2.BatchResponse.Response
nil, // 12: buildbucket.v2.ScheduleBuildRequest.ExperimentsEntry
(*ScheduleBuildRequest_Swarming)(nil), // 13: buildbucket.v2.ScheduleBuildRequest.Swarming
(*BuilderID)(nil), // 14: buildbucket.v2.BuilderID
(*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask
(*Build)(nil), // 16: buildbucket.v2.Build
(Trinary)(0), // 17: buildbucket.v2.Trinary
(*structpb.Struct)(nil), // 18: google.protobuf.Struct
(*GitilesCommit)(nil), // 19: buildbucket.v2.GitilesCommit
(*GerritChange)(nil), // 20: buildbucket.v2.GerritChange
(*StringPair)(nil), // 21: buildbucket.v2.StringPair
(*RequestedDimension)(nil), // 22: buildbucket.v2.RequestedDimension
(*NotificationConfig)(nil), // 23: buildbucket.v2.NotificationConfig
(*Executable)(nil), // 24: buildbucket.v2.Executable
(*durationpb.Duration)(nil), // 25: google.protobuf.Duration
(Status)(0), // 26: buildbucket.v2.Status
(*TimeRange)(nil), // 27: buildbucket.v2.TimeRange
(*status.Status)(nil), // 28: google.rpc.Status
}
var file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_depIdxs = []int32{
14, // 0: buildbucket.v2.GetBuildRequest.builder:type_name -> buildbucket.v2.BuilderID
15, // 1: buildbucket.v2.GetBuildRequest.fields:type_name -> google.protobuf.FieldMask
8, // 2: buildbucket.v2.SearchBuildsRequest.predicate:type_name -> buildbucket.v2.BuildPredicate
15, // 3: buildbucket.v2.SearchBuildsRequest.fields:type_name -> google.protobuf.FieldMask
16, // 4: buildbucket.v2.SearchBuildsResponse.builds:type_name -> buildbucket.v2.Build
10, // 5: buildbucket.v2.BatchRequest.requests:type_name -> buildbucket.v2.BatchRequest.Request
11, // 6: buildbucket.v2.BatchResponse.responses:type_name -> buildbucket.v2.BatchResponse.Response
16, // 7: buildbucket.v2.UpdateBuildRequest.build:type_name -> buildbucket.v2.Build
15, // 8: buildbucket.v2.UpdateBuildRequest.update_mask:type_name -> google.protobuf.FieldMask
15, // 9: buildbucket.v2.UpdateBuildRequest.fields:type_name -> google.protobuf.FieldMask
14, // 10: buildbucket.v2.ScheduleBuildRequest.builder:type_name -> buildbucket.v2.BuilderID
17, // 11: buildbucket.v2.ScheduleBuildRequest.canary:type_name -> buildbucket.v2.Trinary
17, // 12: buildbucket.v2.ScheduleBuildRequest.experimental:type_name -> buildbucket.v2.Trinary
12, // 13: buildbucket.v2.ScheduleBuildRequest.experiments:type_name -> buildbucket.v2.ScheduleBuildRequest.ExperimentsEntry
18, // 14: buildbucket.v2.ScheduleBuildRequest.properties:type_name -> google.protobuf.Struct
19, // 15: buildbucket.v2.ScheduleBuildRequest.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit
20, // 16: buildbucket.v2.ScheduleBuildRequest.gerrit_changes:type_name -> buildbucket.v2.GerritChange
21, // 17: buildbucket.v2.ScheduleBuildRequest.tags:type_name -> buildbucket.v2.StringPair
22, // 18: buildbucket.v2.ScheduleBuildRequest.dimensions:type_name -> buildbucket.v2.RequestedDimension
23, // 19: buildbucket.v2.ScheduleBuildRequest.notify:type_name -> buildbucket.v2.NotificationConfig
15, // 20: buildbucket.v2.ScheduleBuildRequest.fields:type_name -> google.protobuf.FieldMask
17, // 21: buildbucket.v2.ScheduleBuildRequest.critical:type_name -> buildbucket.v2.Trinary
24, // 22: buildbucket.v2.ScheduleBuildRequest.exe:type_name -> buildbucket.v2.Executable
13, // 23: buildbucket.v2.ScheduleBuildRequest.swarming:type_name -> buildbucket.v2.ScheduleBuildRequest.Swarming
25, // 24: buildbucket.v2.ScheduleBuildRequest.scheduling_timeout:type_name -> google.protobuf.Duration
25, // 25: buildbucket.v2.ScheduleBuildRequest.execution_timeout:type_name -> google.protobuf.Duration
25, // 26: buildbucket.v2.ScheduleBuildRequest.grace_period:type_name -> google.protobuf.Duration
15, // 27: buildbucket.v2.CancelBuildRequest.fields:type_name -> google.protobuf.FieldMask
14, // 28: buildbucket.v2.BuildPredicate.builder:type_name -> buildbucket.v2.BuilderID
26, // 29: buildbucket.v2.BuildPredicate.status:type_name -> buildbucket.v2.Status
20, // 30: buildbucket.v2.BuildPredicate.gerrit_changes:type_name -> buildbucket.v2.GerritChange
19, // 31: buildbucket.v2.BuildPredicate.output_gitiles_commit:type_name -> buildbucket.v2.GitilesCommit
21, // 32: buildbucket.v2.BuildPredicate.tags:type_name -> buildbucket.v2.StringPair
27, // 33: buildbucket.v2.BuildPredicate.create_time:type_name -> buildbucket.v2.TimeRange
9, // 34: buildbucket.v2.BuildPredicate.build:type_name -> buildbucket.v2.BuildRange
17, // 35: buildbucket.v2.BuildPredicate.canary:type_name -> buildbucket.v2.Trinary
0, // 36: buildbucket.v2.BatchRequest.Request.get_build:type_name -> buildbucket.v2.GetBuildRequest
1, // 37: buildbucket.v2.BatchRequest.Request.search_builds:type_name -> buildbucket.v2.SearchBuildsRequest
6, // 38: buildbucket.v2.BatchRequest.Request.schedule_build:type_name -> buildbucket.v2.ScheduleBuildRequest
7, // 39: buildbucket.v2.BatchRequest.Request.cancel_build:type_name -> buildbucket.v2.CancelBuildRequest
16, // 40: buildbucket.v2.BatchResponse.Response.get_build:type_name -> buildbucket.v2.Build
2, // 41: buildbucket.v2.BatchResponse.Response.search_builds:type_name -> buildbucket.v2.SearchBuildsResponse
16, // 42: buildbucket.v2.BatchResponse.Response.schedule_build:type_name -> buildbucket.v2.Build
16, // 43: buildbucket.v2.BatchResponse.Response.cancel_build:type_name -> buildbucket.v2.Build
28, // 44: buildbucket.v2.BatchResponse.Response.error:type_name -> google.rpc.Status
0, // 45: buildbucket.v2.Builds.GetBuild:input_type -> buildbucket.v2.GetBuildRequest
1, // 46: buildbucket.v2.Builds.SearchBuilds:input_type -> buildbucket.v2.SearchBuildsRequest
5, // 47: buildbucket.v2.Builds.UpdateBuild:input_type -> buildbucket.v2.UpdateBuildRequest
6, // 48: buildbucket.v2.Builds.ScheduleBuild:input_type -> buildbucket.v2.ScheduleBuildRequest
7, // 49: buildbucket.v2.Builds.CancelBuild:input_type -> buildbucket.v2.CancelBuildRequest
3, // 50: buildbucket.v2.Builds.Batch:input_type -> buildbucket.v2.BatchRequest
16, // 51: buildbucket.v2.Builds.GetBuild:output_type -> buildbucket.v2.Build
2, // 52: buildbucket.v2.Builds.SearchBuilds:output_type -> buildbucket.v2.SearchBuildsResponse
16, // 53: buildbucket.v2.Builds.UpdateBuild:output_type -> buildbucket.v2.Build
16, // 54: buildbucket.v2.Builds.ScheduleBuild:output_type -> buildbucket.v2.Build
16, // 55: buildbucket.v2.Builds.CancelBuild:output_type -> buildbucket.v2.Build
4, // 56: buildbucket.v2.Builds.Batch:output_type -> buildbucket.v2.BatchResponse
51, // [51:57] is the sub-list for method output_type
45, // [45:51] is the sub-list for method input_type
45, // [45:45] is the sub-list for extension type_name
45, // [45:45] is the sub-list for extension extendee
0, // [0:45] 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_proto_init()
file_go_chromium_org_luci_buildbucket_proto_common_proto_init()
file_go_chromium_org_luci_buildbucket_proto_notification_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.(*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[9].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[10].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[11].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[13].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[10].OneofWrappers = []interface{}{
(*BatchRequest_Request_GetBuild)(nil),
(*BatchRequest_Request_SearchBuilds)(nil),
(*BatchRequest_Request_ScheduleBuild)(nil),
(*BatchRequest_Request_CancelBuild)(nil),
}
file_go_chromium_org_luci_buildbucket_proto_builds_service_proto_msgTypes[11].OneofWrappers = []interface{}{
(*BatchResponse_Response_GetBuild)(nil),
(*BatchResponse_Response_SearchBuilds)(nil),
(*BatchResponse_Response_ScheduleBuild)(nil),
(*BatchResponse_Response_CancelBuild)(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: 14,
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.fields.
//
// 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.
GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error)
// Searches for builds.
SearchBuilds(ctx context.Context, in *SearchBuildsRequest, opts ...grpc.CallOption) (*SearchBuildsResponse, error)
// Updates a build. Returns an empty build.
//
// RPC metadata must include "X-Build-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.
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
CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error)
// Executes multiple requests in a batch.
// The response code is always OK.
Batch(ctx context.Context, in *BatchRequest, opts ...grpc.CallOption) (*BatchResponse, 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
}
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
}
// 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.fields.
//
// 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.
GetBuild(context.Context, *GetBuildRequest) (*Build, error)
// Searches for builds.
SearchBuilds(context.Context, *SearchBuildsRequest) (*SearchBuildsResponse, error)
// Updates a build. Returns an empty build.
//
// RPC metadata must include "X-Build-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.
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
CancelBuild(context.Context, *CancelBuildRequest) (*Build, error)
// Executes multiple requests in a batch.
// The response code is always OK.
Batch(context.Context, *BatchRequest) (*BatchResponse, 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 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)
}
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,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "go.chromium.org/luci/buildbucket/proto/builds_service.proto",
}