go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/buildbucket/proto/builds_service.pb.go (about)

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