blob: 9888ec3804007902d497ac20a8b8ed0ac8c2d5a4 [file] [log] [blame]
// Copyright 2018 The LUCI Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
// protoc v3.17.0
// source: go.chromium.org/luci/buildbucket/proto/build.proto
package buildbucketpb
import (
api "go.chromium.org/luci/swarming/proto/api"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
structpb "google.golang.org/protobuf/types/known/structpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// A single build, identified by an int64 id.
// Belongs to a builder.
//
// RPC: see Builds service for build creation and retrieval.
// Some Build fields are marked as excluded from responses by default.
// Use build_fields request field to specify that a field must be included.
//
// BigQuery: this message also defines schema of a BigQuery table of completed builds.
// A BigQuery row is inserted soon after build ends, i.e. a row represents a state of
// a build at completion time and does not change after that.
// All fields are included.
//
// Next id: 30.
type Build struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identifier of the build, unique per LUCI deployment.
// IDs are monotonically decreasing.
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// Required. The builder this build belongs to.
//
// Tuple (builder.project, builder.bucket) defines build ACL
// which may change after build has ended.
Builder *BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"`
// Human-readable identifier of the build with the following properties:
// - unique within the builder
// - a monotonically increasing number
// - mostly contiguous
// - much shorter than id
//
// Caution: populated (positive number) iff build numbers were enabled
// in the builder configuration at the time of build creation.
//
// Caution: Build numbers are not guaranteed to be contiguous.
// There may be gaps during outages.
//
// Caution: Build numbers, while monotonically increasing, do not
// necessarily reflect source-code order. For example, force builds
// or rebuilds can allocate new, higher, numbers, but build an older-
// than-HEAD version of the source.
Number int32 `protobuf:"varint,3,opt,name=number,proto3" json:"number,omitempty"`
// Verified LUCI identity that created this build.
CreatedBy string `protobuf:"bytes,4,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
// Verified LUCI identity that canceled this build.
CanceledBy string `protobuf:"bytes,23,opt,name=canceled_by,json=canceledBy,proto3" json:"canceled_by,omitempty"`
// When the build was created.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// When the build started.
// Required iff status is STARTED, SUCCESS or FAILURE.
StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// When the build ended.
// Present iff status is terminal.
// MUST NOT be before start_time.
EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// When the build was most recently updated.
//
// RPC: can be > end_time if, e.g. new tags were attached to a completed
// build.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// Status of the build.
// Must be specified, i.e. not STATUS_UNSPECIFIED.
//
// RPC: Responses have most current status.
//
// BigQuery: Final status of the build. Cannot be SCHEDULED or STARTED.
Status Status `protobuf:"varint,12,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"`
// Human-readable summary of the build in Markdown format
// (https://spec.commonmark.org/0.28/).
// Explains status.
// Up to 4 KB.
//
// BigQuery: excluded from rows.
SummaryMarkdown string `protobuf:"bytes,20,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"`
// If NO, then the build status SHOULD NOT be used to assess correctness of
// the input gitiles_commit or gerrit_changes.
// For example, if a pre-submit build has failed, CQ MAY still land the CL.
// For example, if a post-submit build has failed, CLs MAY continue landing.
Critical Trinary `protobuf:"varint,21,opt,name=critical,proto3,enum=buildbucket.v2.Trinary" json:"critical,omitempty"`
// Machine-readable details of the current status.
// Human-readable status reason is available in summary_markdown.
StatusDetails *StatusDetails `protobuf:"bytes,22,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"`
// Input to the build executable.
Input *Build_Input `protobuf:"bytes,15,opt,name=input,proto3" json:"input,omitempty"`
// Output of the build executable.
// SHOULD depend only on input field and NOT other fields.
// MUST be unset if build status is SCHEDULED.
//
// RPC: By default, this field is excluded from responses.
// Updated while the build is running and finalized when the build ends.
Output *Build_Output `protobuf:"bytes,16,opt,name=output,proto3" json:"output,omitempty"`
// Current list of build steps.
// Updated as build runs.
//
// May take up to 1MB after zlib compression.
// MUST be unset if build status is SCHEDULED.
//
// RPC: By default, this field is excluded from responses.
Steps []*Step `protobuf:"bytes,17,rep,name=steps,proto3" json:"steps,omitempty"`
// Build infrastructure used by the build.
//
// RPC: By default, this field is excluded from responses.
Infra *BuildInfra `protobuf:"bytes,18,opt,name=infra,proto3" json:"infra,omitempty"`
// Arbitrary annotations for the build.
// One key may have multiple values, which is why this is not a map<string,string>.
// Indexed by the server, see also BuildPredicate.tags.
Tags []*StringPair `protobuf:"bytes,19,rep,name=tags,proto3" json:"tags,omitempty"`
// What to run when the build is ready to start.
Exe *Executable `protobuf:"bytes,24,opt,name=exe,proto3" json:"exe,omitempty"`
// DEPRECATED
//
// Equivalent to `"luci.buildbucket.canary_software" in input.experiments`.
//
// See `Builder.experiments` for well-known experiments.
Canary bool `protobuf:"varint,25,opt,name=canary,proto3" json:"canary,omitempty"`
// Maximum build pending time.
// If the timeout is reached, the build is marked as INFRA_FAILURE status
// and both status_details.{timeout, resource_exhaustion} are set.
SchedulingTimeout *durationpb.Duration `protobuf:"bytes,26,opt,name=scheduling_timeout,json=schedulingTimeout,proto3" json:"scheduling_timeout,omitempty"`
// Maximum build execution time.
//
// Not to be confused with scheduling_timeout.
//
// If the timeout is reached, the task will be signaled according to the
// `deadline` section of
// https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md
// and status_details.timeout is set.
//
// The task will have `grace_period` amount of time to handle cleanup
// before being forcefully terminated.
ExecutionTimeout *durationpb.Duration `protobuf:"bytes,27,opt,name=execution_timeout,json=executionTimeout,proto3" json:"execution_timeout,omitempty"`
// Amount of cleanup time after execution_timeout.
//
// After being signaled according to execution_timeout, the task will
// have this duration to clean up before being forcefully terminated.
//
// The signalling process is explained in the `deadline` section of
// https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md.
GracePeriod *durationpb.Duration `protobuf:"bytes,29,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"`
// If set, swarming was requested to wait until it sees at least one bot
// report a superset of the build's requested dimensions.
WaitForCapacity bool `protobuf:"varint,28,opt,name=wait_for_capacity,json=waitForCapacity,proto3" json:"wait_for_capacity,omitempty"`
}
func (x *Build) Reset() {
*x = Build{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Build) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Build) ProtoMessage() {}
func (x *Build) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Build.ProtoReflect.Descriptor instead.
func (*Build) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0}
}
func (x *Build) GetId() int64 {
if x != nil {
return x.Id
}
return 0
}
func (x *Build) GetBuilder() *BuilderID {
if x != nil {
return x.Builder
}
return nil
}
func (x *Build) GetNumber() int32 {
if x != nil {
return x.Number
}
return 0
}
func (x *Build) GetCreatedBy() string {
if x != nil {
return x.CreatedBy
}
return ""
}
func (x *Build) GetCanceledBy() string {
if x != nil {
return x.CanceledBy
}
return ""
}
func (x *Build) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Build) GetStartTime() *timestamppb.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *Build) GetEndTime() *timestamppb.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *Build) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *Build) GetStatus() Status {
if x != nil {
return x.Status
}
return Status_STATUS_UNSPECIFIED
}
func (x *Build) GetSummaryMarkdown() string {
if x != nil {
return x.SummaryMarkdown
}
return ""
}
func (x *Build) GetCritical() Trinary {
if x != nil {
return x.Critical
}
return Trinary_UNSET
}
func (x *Build) GetStatusDetails() *StatusDetails {
if x != nil {
return x.StatusDetails
}
return nil
}
func (x *Build) GetInput() *Build_Input {
if x != nil {
return x.Input
}
return nil
}
func (x *Build) GetOutput() *Build_Output {
if x != nil {
return x.Output
}
return nil
}
func (x *Build) GetSteps() []*Step {
if x != nil {
return x.Steps
}
return nil
}
func (x *Build) GetInfra() *BuildInfra {
if x != nil {
return x.Infra
}
return nil
}
func (x *Build) GetTags() []*StringPair {
if x != nil {
return x.Tags
}
return nil
}
func (x *Build) GetExe() *Executable {
if x != nil {
return x.Exe
}
return nil
}
func (x *Build) GetCanary() bool {
if x != nil {
return x.Canary
}
return false
}
func (x *Build) GetSchedulingTimeout() *durationpb.Duration {
if x != nil {
return x.SchedulingTimeout
}
return nil
}
func (x *Build) GetExecutionTimeout() *durationpb.Duration {
if x != nil {
return x.ExecutionTimeout
}
return nil
}
func (x *Build) GetGracePeriod() *durationpb.Duration {
if x != nil {
return x.GracePeriod
}
return nil
}
func (x *Build) GetWaitForCapacity() bool {
if x != nil {
return x.WaitForCapacity
}
return false
}
// Build infrastructure that was used for a particular build.
type BuildInfra struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Buildbucket *BuildInfra_Buildbucket `protobuf:"bytes,1,opt,name=buildbucket,proto3" json:"buildbucket,omitempty"`
Swarming *BuildInfra_Swarming `protobuf:"bytes,2,opt,name=swarming,proto3" json:"swarming,omitempty"`
Logdog *BuildInfra_LogDog `protobuf:"bytes,3,opt,name=logdog,proto3" json:"logdog,omitempty"`
Recipe *BuildInfra_Recipe `protobuf:"bytes,4,opt,name=recipe,proto3" json:"recipe,omitempty"`
Resultdb *BuildInfra_ResultDB `protobuf:"bytes,5,opt,name=resultdb,proto3" json:"resultdb,omitempty"`
}
func (x *BuildInfra) Reset() {
*x = BuildInfra{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra) ProtoMessage() {}
func (x *BuildInfra) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra.ProtoReflect.Descriptor instead.
func (*BuildInfra) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1}
}
func (x *BuildInfra) GetBuildbucket() *BuildInfra_Buildbucket {
if x != nil {
return x.Buildbucket
}
return nil
}
func (x *BuildInfra) GetSwarming() *BuildInfra_Swarming {
if x != nil {
return x.Swarming
}
return nil
}
func (x *BuildInfra) GetLogdog() *BuildInfra_LogDog {
if x != nil {
return x.Logdog
}
return nil
}
func (x *BuildInfra) GetRecipe() *BuildInfra_Recipe {
if x != nil {
return x.Recipe
}
return nil
}
func (x *BuildInfra) GetResultdb() *BuildInfra_ResultDB {
if x != nil {
return x.Resultdb
}
return nil
}
// Defines what to build/test.
//
// Behavior of a build executable MAY depend on Input.
// It MAY NOT modify its behavior based on anything outside of Input.
// It MAY read non-Input fields to display for debugging or to pass-through to
// triggered builds. For example the "tags" field may be passed to triggered
// builds, or the "infra" field may be printed for debugging purposes.
type Build_Input struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Arbitrary JSON object. Available at build run time.
//
// RPC: By default, this field is excluded from responses.
//
// V1 equivalent: corresponds to "properties" key in "parameters_json".
Properties *structpb.Struct `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"`
// The Gitiles commit to run against.
// Usually present in CI builds, set by LUCI Scheduler.
// If not present, the build may checkout "refs/heads/master".
// NOT a blamelist.
//
// V1 equivalent: supersedes "revision" property and "buildset"
// tag that starts with "commit/gitiles/".
GitilesCommit *GitilesCommit `protobuf:"bytes,2,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"`
// Gerrit patchsets to run against.
// Usually present in tryjobs, set by CQ, Gerrit, git-cl-try.
// Applied on top of gitiles_commit if specified, otherwise tip of the tree.
//
// V1 equivalent: supersedes patch_* properties and "buildset"
// tag that starts with "patch/gerrit/".
GerritChanges []*GerritChange `protobuf:"bytes,3,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"`
// DEPRECATED
//
// Equivalent to `"luci.non_production" in experiments`.
//
// See `Builder.experiments` for well-known experiments.
Experimental bool `protobuf:"varint,5,opt,name=experimental,proto3" json:"experimental,omitempty"`
// The sorted list of experiments enabled on this build.
//
// See `Builder.experiments` for well-known experiments.
Experiments []string `protobuf:"bytes,6,rep,name=experiments,proto3" json:"experiments,omitempty"`
}
func (x *Build_Input) Reset() {
*x = Build_Input{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Build_Input) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Build_Input) ProtoMessage() {}
func (x *Build_Input) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Build_Input.ProtoReflect.Descriptor instead.
func (*Build_Input) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Build_Input) GetProperties() *structpb.Struct {
if x != nil {
return x.Properties
}
return nil
}
func (x *Build_Input) GetGitilesCommit() *GitilesCommit {
if x != nil {
return x.GitilesCommit
}
return nil
}
func (x *Build_Input) GetGerritChanges() []*GerritChange {
if x != nil {
return x.GerritChanges
}
return nil
}
func (x *Build_Input) GetExperimental() bool {
if x != nil {
return x.Experimental
}
return false
}
func (x *Build_Input) GetExperiments() []string {
if x != nil {
return x.Experiments
}
return nil
}
// Result of the build executable.
type Build_Output struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Arbitrary JSON object produced by the build.
//
// In recipes, use step_result.presentation.properties to set these,
// for example
//
// step_result = api.step(['echo'])
// step_result.presentation.properties['foo'] = 'bar'
//
// More docs: https://chromium.googlesource.com/infra/luci/recipes-py/+/HEAD/doc/old_user_guide.md#Setting-properties
//
// V1 equivalent: corresponds to "properties" key in
// "result_details_json".
// In V1 output properties are not populated until build ends.
Properties *structpb.Struct `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"`
// Build checked out and executed on this commit.
//
// Should correspond to Build.Input.gitiles_commit.
// May be present even if Build.Input.gitiles_commit is not set, for example
// in cron builders.
//
// V1 equivalent: this supersedes all got_revision output property.
GitilesCommit *GitilesCommit `protobuf:"bytes,3,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"`
// Logs produced by the build script, typically "stdout" and "stderr".
Logs []*Log `protobuf:"bytes,5,rep,name=logs,proto3" json:"logs,omitempty"`
}
func (x *Build_Output) Reset() {
*x = Build_Output{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Build_Output) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Build_Output) ProtoMessage() {}
func (x *Build_Output) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Build_Output.ProtoReflect.Descriptor instead.
func (*Build_Output) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Build_Output) GetProperties() *structpb.Struct {
if x != nil {
return x.Properties
}
return nil
}
func (x *Build_Output) GetGitilesCommit() *GitilesCommit {
if x != nil {
return x.GitilesCommit
}
return nil
}
func (x *Build_Output) GetLogs() []*Log {
if x != nil {
return x.Logs
}
return nil
}
// Buildbucket-specific information, captured at the build creation time.
type BuildInfra_Buildbucket struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Version of swarming task template. Defines
// versions of kitchen, git, git wrapper, python, vpython, etc.
ServiceConfigRevision string `protobuf:"bytes,2,opt,name=service_config_revision,json=serviceConfigRevision,proto3" json:"service_config_revision,omitempty"`
// Properties that were specified in ScheduleBuildRequest to create this
// build.
//
// In particular, CQ uses this to decide whether the build created by
// someone else is appropriate for CQ, e.g. it was created with the same
// properties that CQ would use.
RequestedProperties *structpb.Struct `protobuf:"bytes,5,opt,name=requested_properties,json=requestedProperties,proto3" json:"requested_properties,omitempty"`
// Dimensions that were specified in ScheduleBuildRequest to create this
// build.
RequestedDimensions []*RequestedDimension `protobuf:"bytes,6,rep,name=requested_dimensions,json=requestedDimensions,proto3" json:"requested_dimensions,omitempty"`
// Buildbucket hostname, e.g. "cr-buildbucket.appspot.com".
Hostname string `protobuf:"bytes,7,opt,name=hostname,proto3" json:"hostname,omitempty"`
}
func (x *BuildInfra_Buildbucket) Reset() {
*x = BuildInfra_Buildbucket{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Buildbucket) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Buildbucket) ProtoMessage() {}
func (x *BuildInfra_Buildbucket) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Buildbucket.ProtoReflect.Descriptor instead.
func (*BuildInfra_Buildbucket) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 0}
}
func (x *BuildInfra_Buildbucket) GetServiceConfigRevision() string {
if x != nil {
return x.ServiceConfigRevision
}
return ""
}
func (x *BuildInfra_Buildbucket) GetRequestedProperties() *structpb.Struct {
if x != nil {
return x.RequestedProperties
}
return nil
}
func (x *BuildInfra_Buildbucket) GetRequestedDimensions() []*RequestedDimension {
if x != nil {
return x.RequestedDimensions
}
return nil
}
func (x *BuildInfra_Buildbucket) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
// Swarming-specific information.
//
// Next ID: 10.
type BuildInfra_Swarming struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Swarming hostname, e.g. "chromium-swarm.appspot.com".
// Populated at the build creation time.
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
// Swarming task id.
// Not guaranteed to be populated at the build creation time.
TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
// Swarming run id of the parent task from which this build is triggered.
// If set, swarming promises to ensure this build won't outlive its parent
// swarming task (which may or may not itself be a Buildbucket build).
// Populated at the build creation time.
ParentRunId string `protobuf:"bytes,9,opt,name=parent_run_id,json=parentRunId,proto3" json:"parent_run_id,omitempty"`
// Task service account email address.
// This is the service account used for all authenticated requests by the
// build.
TaskServiceAccount string `protobuf:"bytes,3,opt,name=task_service_account,json=taskServiceAccount,proto3" json:"task_service_account,omitempty"`
// Priority of the task. The lower the more important.
// Valid values are [20..255].
Priority int32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"`
// Swarming dimensions for the task.
TaskDimensions []*RequestedDimension `protobuf:"bytes,5,rep,name=task_dimensions,json=taskDimensions,proto3" json:"task_dimensions,omitempty"`
// Swarming dimensions of the bot used for the task.
BotDimensions []*StringPair `protobuf:"bytes,6,rep,name=bot_dimensions,json=botDimensions,proto3" json:"bot_dimensions,omitempty"`
// Caches requested by this build.
Caches []*BuildInfra_Swarming_CacheEntry `protobuf:"bytes,7,rep,name=caches,proto3" json:"caches,omitempty"`
// Swarming task containment for the task.
Containment *api.Containment `protobuf:"bytes,8,opt,name=containment,proto3" json:"containment,omitempty"`
}
func (x *BuildInfra_Swarming) Reset() {
*x = BuildInfra_Swarming{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Swarming) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Swarming) ProtoMessage() {}
func (x *BuildInfra_Swarming) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Swarming.ProtoReflect.Descriptor instead.
func (*BuildInfra_Swarming) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 1}
}
func (x *BuildInfra_Swarming) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
func (x *BuildInfra_Swarming) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *BuildInfra_Swarming) GetParentRunId() string {
if x != nil {
return x.ParentRunId
}
return ""
}
func (x *BuildInfra_Swarming) GetTaskServiceAccount() string {
if x != nil {
return x.TaskServiceAccount
}
return ""
}
func (x *BuildInfra_Swarming) GetPriority() int32 {
if x != nil {
return x.Priority
}
return 0
}
func (x *BuildInfra_Swarming) GetTaskDimensions() []*RequestedDimension {
if x != nil {
return x.TaskDimensions
}
return nil
}
func (x *BuildInfra_Swarming) GetBotDimensions() []*StringPair {
if x != nil {
return x.BotDimensions
}
return nil
}
func (x *BuildInfra_Swarming) GetCaches() []*BuildInfra_Swarming_CacheEntry {
if x != nil {
return x.Caches
}
return nil
}
func (x *BuildInfra_Swarming) GetContainment() *api.Containment {
if x != nil {
return x.Containment
}
return nil
}
// LogDog-specific information.
type BuildInfra_LogDog struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// LogDog hostname, e.g. "logs.chromium.org".
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
// LogDog project, e.g. "chromium".
// Typically matches Build.builder.project.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// A slash-separated path prefix shared by all logs and artifacts of this
// build.
// No other build can have the same prefix.
// Can be used to discover logs and/or load log contents.
//
// Can be used to construct URL of a page that displays stdout/stderr of all
// steps of a build. In pseudo-JS:
// q_stdout = `${project}/${prefix}/+/**/stdout`;
// q_stderr = `${project}/${prefix}/+/**/stderr`;
// url = `https://${host}/v/?s=${urlquote(q_stdout)}&s=${urlquote(q_stderr)}`;
Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
}
func (x *BuildInfra_LogDog) Reset() {
*x = BuildInfra_LogDog{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_LogDog) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_LogDog) ProtoMessage() {}
func (x *BuildInfra_LogDog) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_LogDog.ProtoReflect.Descriptor instead.
func (*BuildInfra_LogDog) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 2}
}
func (x *BuildInfra_LogDog) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
func (x *BuildInfra_LogDog) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *BuildInfra_LogDog) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
// Recipe-specific information.
type BuildInfra_Recipe struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// CIPD package name containing the recipe used to run this build.
CipdPackage string `protobuf:"bytes,1,opt,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"`
// Name of the recipe used to run this build.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *BuildInfra_Recipe) Reset() {
*x = BuildInfra_Recipe{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Recipe) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Recipe) ProtoMessage() {}
func (x *BuildInfra_Recipe) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Recipe.ProtoReflect.Descriptor instead.
func (*BuildInfra_Recipe) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 3}
}
func (x *BuildInfra_Recipe) GetCipdPackage() string {
if x != nil {
return x.CipdPackage
}
return ""
}
func (x *BuildInfra_Recipe) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// ResultDB-specific information.
type BuildInfra_ResultDB struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Hostname of the ResultDB instance, such as "results.api.cr.dev".
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
// Name of the invocation for results of this build.
// Typically "invocations/build:<build_id>".
Invocation string `protobuf:"bytes,2,opt,name=invocation,proto3" json:"invocation,omitempty"`
}
func (x *BuildInfra_ResultDB) Reset() {
*x = BuildInfra_ResultDB{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_ResultDB) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_ResultDB) ProtoMessage() {}
func (x *BuildInfra_ResultDB) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_ResultDB.ProtoReflect.Descriptor instead.
func (*BuildInfra_ResultDB) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 4}
}
func (x *BuildInfra_ResultDB) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
func (x *BuildInfra_ResultDB) GetInvocation() string {
if x != nil {
return x.Invocation
}
return ""
}
// Describes a cache directory persisted on a bot.
//
// If a build requested a cache, the cache directory is available on build
// startup. If the cache was present on the bot, the directory contains
// files from the previous run on that bot.
// The build can read/write to the cache directory while it runs.
// After build completes, the cache directory is persisted.
// The next time another build requests the same cache and runs on the same
// bot, the files will still be there (unless the cache was evicted,
// perhaps due to disk space reasons).
//
// One bot can keep multiple caches at the same time and one build can request
// multiple different caches.
// A cache is identified by its name and mapped to a path.
//
// If the bot is running out of space, caches are evicted in LRU manner
// before the next build on this bot starts.
//
// Builder cache.
//
// Buildbucket implicitly declares cache
// {"name": "<hash(project/bucket/builder)>", "path": "builder"}.
// This means that any LUCI builder has a "personal disk space" on the bot.
// Builder cache is often a good start before customizing caching.
// In recipes, it is available at api.buildbucket.builder_cache_path.
//
type BuildInfra_Swarming_CacheEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identifier of the cache. Required. Length is limited to 128.
// Must be unique in the build.
//
// If the pool of swarming bots is shared among multiple LUCI projects and
// projects use same cache name, the cache will be shared across projects.
// To avoid affecting and being affected by other projects, prefix the
// cache name with something project-specific, e.g. "v8-".
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Relative path where the cache in mapped into. Required.
//
// Must use POSIX format (forward slashes).
// In most cases, it does not need slashes at all.
//
// In recipes, use api.path['cache'].join(path) to get absolute path.
//
// Must be unique in the build.
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
// Duration to wait for a bot with a warm cache to pick up the
// task, before falling back to a bot with a cold (non-existent) cache.
//
// The default is 0, which means that no preference will be chosen for a
// bot with this or without this cache, and a bot without this cache may
// be chosen instead.
//
// If no bot has this cache warm, the task will skip this wait and will
// immediately fallback to a cold cache request.
//
// The value must be multiples of 60 seconds.
WaitForWarmCache *durationpb.Duration `protobuf:"bytes,3,opt,name=wait_for_warm_cache,json=waitForWarmCache,proto3" json:"wait_for_warm_cache,omitempty"`
// Environment variable with this name will be set to the path to the cache
// directory.
EnvVar string `protobuf:"bytes,4,opt,name=env_var,json=envVar,proto3" json:"env_var,omitempty"`
}
func (x *BuildInfra_Swarming_CacheEntry) Reset() {
*x = BuildInfra_Swarming_CacheEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Swarming_CacheEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Swarming_CacheEntry) ProtoMessage() {}
func (x *BuildInfra_Swarming_CacheEntry) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Swarming_CacheEntry.ProtoReflect.Descriptor instead.
func (*BuildInfra_Swarming_CacheEntry) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 1, 0}
}
func (x *BuildInfra_Swarming_CacheEntry) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BuildInfra_Swarming_CacheEntry) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *BuildInfra_Swarming_CacheEntry) GetWaitForWarmCache() *durationpb.Duration {
if x != nil {
return x.WaitForWarmCache
}
return nil
}
func (x *BuildInfra_Swarming_CacheEntry) GetEnvVar() string {
if x != nil {
return x.EnvVar
}
return ""
}
var File_go_chromium_org_luci_buildbucket_proto_build_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc = []byte{
0x0a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x2e, 0x76, 0x32, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68,
0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f,
0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31,
0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x65, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x36, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f,
0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x0d, 0x0a, 0x05, 0x42, 0x75,
0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52,
0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12,
0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x17,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x42, 0x79,
0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a,
0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73,
0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x06,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x10,
0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e,
0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4d,
0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69,
0x63, 0x61, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61,
0x72, 0x79, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x44, 0x0a, 0x0e,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x16,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69,
0x6c, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e,
0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x05,
0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18,
0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x4f, 0x75, 0x74,
0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x73,
0x74, 0x65, 0x70, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x65, 0x70,
0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x72, 0x61,
0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75,
0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66,
0x72, 0x61, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x61, 0x67,
0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50,
0x61, 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x78, 0x65,
0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75,
0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62,
0x6c, 0x65, 0x52, 0x03, 0x65, 0x78, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72,
0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x12,
0x48, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69,
0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x65, 0x78, 0x65,
0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x1b,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f,
0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12,
0x2a, 0x0a, 0x11, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61,
0x63, 0x69, 0x74, 0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x61, 0x69, 0x74,
0x46, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x1a, 0x91, 0x02, 0x0a, 0x05,
0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75,
0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x44,
0x0a, 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75,
0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43,
0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f,
0x6d, 0x6d, 0x69, 0x74, 0x12, 0x43, 0x0a, 0x0e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x5f, 0x63,
0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65,
0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x67, 0x65, 0x72, 0x72,
0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70,
0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x20, 0x0a,
0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a,
0xbc, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72,
0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x69, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63,
0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74,
0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x67, 0x69, 0x74, 0x69,
0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x6f, 0x67,
0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f,
0x67, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04,
0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f,
0x22, 0x9e, 0x0b, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x12,
0x48, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61,
0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0b, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69,
0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x52, 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x0a, 0x06, 0x6c, 0x6f,
0x67, 0x64, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c,
0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x6f, 0x67, 0x52, 0x06, 0x6c,
0x6f, 0x67, 0x64, 0x6f, 0x67, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72,
0x61, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x52, 0x06, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65,
0x12, 0x3f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x52,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64,
0x62, 0x1a, 0x8a, 0x02, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x14, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65,
0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x65, 0x64, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69,
0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08,
0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x1a, 0xdf,
0x04, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68,
0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68,
0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69,
0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52,
0x75, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69,
0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69,
0x74, 0x79, 0x12, 0x4b, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52,
0x0e, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x41, 0x0a, 0x0e, 0x62, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50,
0x61, 0x69, 0x72, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x53,
0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x63, 0x6f,
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f,
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61,
0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x97, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x48, 0x0a,
0x13, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x5f, 0x63,
0x61, 0x63, 0x68, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x57, 0x61,
0x72, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x5f, 0x76,
0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x76, 0x56, 0x61, 0x72,
0x1a, 0x56, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x44, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f,
0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f,
0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0x3f, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x69,
0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61,
0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x69, 0x70, 0x64, 0x50, 0x61,
0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x46, 0x0a, 0x08, 0x52, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x44, 0x42, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc
)
func file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData)
})
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescData
}
var file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_go_chromium_org_luci_buildbucket_proto_build_proto_goTypes = []interface{}{
(*Build)(nil), // 0: buildbucket.v2.Build
(*BuildInfra)(nil), // 1: buildbucket.v2.BuildInfra
(*Build_Input)(nil), // 2: buildbucket.v2.Build.Input
(*Build_Output)(nil), // 3: buildbucket.v2.Build.Output
(*BuildInfra_Buildbucket)(nil), // 4: buildbucket.v2.BuildInfra.Buildbucket
(*BuildInfra_Swarming)(nil), // 5: buildbucket.v2.BuildInfra.Swarming
(*BuildInfra_LogDog)(nil), // 6: buildbucket.v2.BuildInfra.LogDog
(*BuildInfra_Recipe)(nil), // 7: buildbucket.v2.BuildInfra.Recipe
(*BuildInfra_ResultDB)(nil), // 8: buildbucket.v2.BuildInfra.ResultDB
(*BuildInfra_Swarming_CacheEntry)(nil), // 9: buildbucket.v2.BuildInfra.Swarming.CacheEntry
(*BuilderID)(nil), // 10: buildbucket.v2.BuilderID
(*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp
(Status)(0), // 12: buildbucket.v2.Status
(Trinary)(0), // 13: buildbucket.v2.Trinary
(*StatusDetails)(nil), // 14: buildbucket.v2.StatusDetails
(*Step)(nil), // 15: buildbucket.v2.Step
(*StringPair)(nil), // 16: buildbucket.v2.StringPair
(*Executable)(nil), // 17: buildbucket.v2.Executable
(*durationpb.Duration)(nil), // 18: google.protobuf.Duration
(*structpb.Struct)(nil), // 19: google.protobuf.Struct
(*GitilesCommit)(nil), // 20: buildbucket.v2.GitilesCommit
(*GerritChange)(nil), // 21: buildbucket.v2.GerritChange
(*Log)(nil), // 22: buildbucket.v2.Log
(*RequestedDimension)(nil), // 23: buildbucket.v2.RequestedDimension
(*api.Containment)(nil), // 24: swarming.v1.Containment
}
var file_go_chromium_org_luci_buildbucket_proto_build_proto_depIdxs = []int32{
10, // 0: buildbucket.v2.Build.builder:type_name -> buildbucket.v2.BuilderID
11, // 1: buildbucket.v2.Build.create_time:type_name -> google.protobuf.Timestamp
11, // 2: buildbucket.v2.Build.start_time:type_name -> google.protobuf.Timestamp
11, // 3: buildbucket.v2.Build.end_time:type_name -> google.protobuf.Timestamp
11, // 4: buildbucket.v2.Build.update_time:type_name -> google.protobuf.Timestamp
12, // 5: buildbucket.v2.Build.status:type_name -> buildbucket.v2.Status
13, // 6: buildbucket.v2.Build.critical:type_name -> buildbucket.v2.Trinary
14, // 7: buildbucket.v2.Build.status_details:type_name -> buildbucket.v2.StatusDetails
2, // 8: buildbucket.v2.Build.input:type_name -> buildbucket.v2.Build.Input
3, // 9: buildbucket.v2.Build.output:type_name -> buildbucket.v2.Build.Output
15, // 10: buildbucket.v2.Build.steps:type_name -> buildbucket.v2.Step
1, // 11: buildbucket.v2.Build.infra:type_name -> buildbucket.v2.BuildInfra
16, // 12: buildbucket.v2.Build.tags:type_name -> buildbucket.v2.StringPair
17, // 13: buildbucket.v2.Build.exe:type_name -> buildbucket.v2.Executable
18, // 14: buildbucket.v2.Build.scheduling_timeout:type_name -> google.protobuf.Duration
18, // 15: buildbucket.v2.Build.execution_timeout:type_name -> google.protobuf.Duration
18, // 16: buildbucket.v2.Build.grace_period:type_name -> google.protobuf.Duration
4, // 17: buildbucket.v2.BuildInfra.buildbucket:type_name -> buildbucket.v2.BuildInfra.Buildbucket
5, // 18: buildbucket.v2.BuildInfra.swarming:type_name -> buildbucket.v2.BuildInfra.Swarming
6, // 19: buildbucket.v2.BuildInfra.logdog:type_name -> buildbucket.v2.BuildInfra.LogDog
7, // 20: buildbucket.v2.BuildInfra.recipe:type_name -> buildbucket.v2.BuildInfra.Recipe
8, // 21: buildbucket.v2.BuildInfra.resultdb:type_name -> buildbucket.v2.BuildInfra.ResultDB
19, // 22: buildbucket.v2.Build.Input.properties:type_name -> google.protobuf.Struct
20, // 23: buildbucket.v2.Build.Input.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit
21, // 24: buildbucket.v2.Build.Input.gerrit_changes:type_name -> buildbucket.v2.GerritChange
19, // 25: buildbucket.v2.Build.Output.properties:type_name -> google.protobuf.Struct
20, // 26: buildbucket.v2.Build.Output.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit
22, // 27: buildbucket.v2.Build.Output.logs:type_name -> buildbucket.v2.Log
19, // 28: buildbucket.v2.BuildInfra.Buildbucket.requested_properties:type_name -> google.protobuf.Struct
23, // 29: buildbucket.v2.BuildInfra.Buildbucket.requested_dimensions:type_name -> buildbucket.v2.RequestedDimension
23, // 30: buildbucket.v2.BuildInfra.Swarming.task_dimensions:type_name -> buildbucket.v2.RequestedDimension
16, // 31: buildbucket.v2.BuildInfra.Swarming.bot_dimensions:type_name -> buildbucket.v2.StringPair
9, // 32: buildbucket.v2.BuildInfra.Swarming.caches:type_name -> buildbucket.v2.BuildInfra.Swarming.CacheEntry
24, // 33: buildbucket.v2.BuildInfra.Swarming.containment:type_name -> swarming.v1.Containment
18, // 34: buildbucket.v2.BuildInfra.Swarming.CacheEntry.wait_for_warm_cache:type_name -> google.protobuf.Duration
35, // [35:35] is the sub-list for method output_type
35, // [35:35] is the sub-list for method input_type
35, // [35:35] is the sub-list for extension type_name
35, // [35:35] is the sub-list for extension extendee
0, // [0:35] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_buildbucket_proto_build_proto_init() }
func file_go_chromium_org_luci_buildbucket_proto_build_proto_init() {
if File_go_chromium_org_luci_buildbucket_proto_build_proto != nil {
return
}
file_go_chromium_org_luci_buildbucket_proto_builder_proto_init()
file_go_chromium_org_luci_buildbucket_proto_common_proto_init()
file_go_chromium_org_luci_buildbucket_proto_step_proto_init()
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Build); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Build_Input); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Build_Output); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Buildbucket); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Swarming); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_LogDog); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Recipe); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_ResultDB); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Swarming_CacheEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc,
NumEnums: 0,
NumMessages: 10,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_go_chromium_org_luci_buildbucket_proto_build_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_build_proto_depIdxs,
MessageInfos: file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_buildbucket_proto_build_proto = out.File
file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDesc = nil
file_go_chromium_org_luci_buildbucket_proto_build_proto_goTypes = nil
file_go_chromium_org_luci_buildbucket_proto_build_proto_depIdxs = nil
}