blob: 874abde489e9a3d6620b609c4bf9bdc4dd4f5b6d [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.33.0
// protoc v5.26.1
// source: go.chromium.org/luci/buildbucket/proto/build.proto
package buildbucketpb
import (
v1 "go.chromium.org/luci/resultdb/proto/v1"
_ "google.golang.org/genproto/googleapis/api/annotations"
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)
)
type BuildInfra_Buildbucket_ExperimentReason int32
const (
// This value is unused (i.e. if you see this, it's a bug).
BuildInfra_Buildbucket_EXPERIMENT_REASON_UNSET BuildInfra_Buildbucket_ExperimentReason = 0
// This experiment was configured from the 'default_value' of a global
// experiment.
//
// See go/buildbucket-settings.cfg for the list of global experiments.
BuildInfra_Buildbucket_EXPERIMENT_REASON_GLOBAL_DEFAULT BuildInfra_Buildbucket_ExperimentReason = 1
// This experiment was configured from the Builder configuration.
BuildInfra_Buildbucket_EXPERIMENT_REASON_BUILDER_CONFIG BuildInfra_Buildbucket_ExperimentReason = 2
// This experiment was configured from the 'minimum_value' of a global
// experiment.
//
// See go/buildbucket-settings.cfg for the list of global experiments.
BuildInfra_Buildbucket_EXPERIMENT_REASON_GLOBAL_MINIMUM BuildInfra_Buildbucket_ExperimentReason = 3
// This experiment was explicitly set from the ScheduleBuildRequest.
BuildInfra_Buildbucket_EXPERIMENT_REASON_REQUESTED BuildInfra_Buildbucket_ExperimentReason = 4
// This experiment is inactive and so was removed from the Build.
//
// See go/buildbucket-settings.cfg for the list of global experiments.
BuildInfra_Buildbucket_EXPERIMENT_REASON_GLOBAL_INACTIVE BuildInfra_Buildbucket_ExperimentReason = 5
)
// Enum value maps for BuildInfra_Buildbucket_ExperimentReason.
var (
BuildInfra_Buildbucket_ExperimentReason_name = map[int32]string{
0: "EXPERIMENT_REASON_UNSET",
1: "EXPERIMENT_REASON_GLOBAL_DEFAULT",
2: "EXPERIMENT_REASON_BUILDER_CONFIG",
3: "EXPERIMENT_REASON_GLOBAL_MINIMUM",
4: "EXPERIMENT_REASON_REQUESTED",
5: "EXPERIMENT_REASON_GLOBAL_INACTIVE",
}
BuildInfra_Buildbucket_ExperimentReason_value = map[string]int32{
"EXPERIMENT_REASON_UNSET": 0,
"EXPERIMENT_REASON_GLOBAL_DEFAULT": 1,
"EXPERIMENT_REASON_BUILDER_CONFIG": 2,
"EXPERIMENT_REASON_GLOBAL_MINIMUM": 3,
"EXPERIMENT_REASON_REQUESTED": 4,
"EXPERIMENT_REASON_GLOBAL_INACTIVE": 5,
}
)
func (x BuildInfra_Buildbucket_ExperimentReason) Enum() *BuildInfra_Buildbucket_ExperimentReason {
p := new(BuildInfra_Buildbucket_ExperimentReason)
*p = x
return p
}
func (x BuildInfra_Buildbucket_ExperimentReason) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (BuildInfra_Buildbucket_ExperimentReason) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[0].Descriptor()
}
func (BuildInfra_Buildbucket_ExperimentReason) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[0]
}
func (x BuildInfra_Buildbucket_ExperimentReason) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use BuildInfra_Buildbucket_ExperimentReason.Descriptor instead.
func (BuildInfra_Buildbucket_ExperimentReason) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0}
}
type BuildInfra_Buildbucket_Agent_Purpose int32
const (
// No categorized/known purpose.
BuildInfra_Buildbucket_Agent_PURPOSE_UNSPECIFIED BuildInfra_Buildbucket_Agent_Purpose = 0
// This path contains the contents of the build's `exe.cipd_package`.
BuildInfra_Buildbucket_Agent_PURPOSE_EXE_PAYLOAD BuildInfra_Buildbucket_Agent_Purpose = 1
// This path contains data specifically for bbagent's own use.
//
// There's a proposal currently to add `nsjail` support to bbagent, and it
// would need to bring a copy of `nsjail` in order to run the user binary
// but we wouldn't necessarily want to expose it to the user binary.
BuildInfra_Buildbucket_Agent_PURPOSE_BBAGENT_UTILITY BuildInfra_Buildbucket_Agent_Purpose = 2
)
// Enum value maps for BuildInfra_Buildbucket_Agent_Purpose.
var (
BuildInfra_Buildbucket_Agent_Purpose_name = map[int32]string{
0: "PURPOSE_UNSPECIFIED",
1: "PURPOSE_EXE_PAYLOAD",
2: "PURPOSE_BBAGENT_UTILITY",
}
BuildInfra_Buildbucket_Agent_Purpose_value = map[string]int32{
"PURPOSE_UNSPECIFIED": 0,
"PURPOSE_EXE_PAYLOAD": 1,
"PURPOSE_BBAGENT_UTILITY": 2,
}
)
func (x BuildInfra_Buildbucket_Agent_Purpose) Enum() *BuildInfra_Buildbucket_Agent_Purpose {
p := new(BuildInfra_Buildbucket_Agent_Purpose)
*p = x
return p
}
func (x BuildInfra_Buildbucket_Agent_Purpose) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (BuildInfra_Buildbucket_Agent_Purpose) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[1].Descriptor()
}
func (BuildInfra_Buildbucket_Agent_Purpose) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes[1]
}
func (x BuildInfra_Buildbucket_Agent_Purpose) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use BuildInfra_Buildbucket_Agent_Purpose.Descriptor instead.
func (BuildInfra_Buildbucket_Agent_Purpose) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 0}
}
// 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 "mask" 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: 36.
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"`
BuilderInfo *Build_BuilderInfo `protobuf:"bytes,34,opt,name=builder_info,json=builderInfo,proto3" json:"builder_info,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"`
// Redirect url for the build.
ViewUrl string `protobuf:"bytes,5,opt,name=view_url,json=viewUrl,proto3" json:"view_url,omitempty"`
// Verified LUCI identity that canceled this build.
//
// Special values:
// * buildbucket: The build is canceled by buildbucket. This can happen if the
// build's parent has ended, and the build cannot outlive its parent.
// * backend: The build's backend task is canceled. For example the build's
// Swarming task is killed.
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"`
// When the cancel process of the build started.
// Note it's not the time that the cancellation completed, which would be
// tracked by end_time.
//
// During the cancel process, the build still accepts updates.
//
// bbagent checks this field at the frequency of
// buildbucket.MinUpdateBuildInterval. When bbagent sees the build is in
// cancel process, there are two states:
// - it has NOT yet started the exe payload,
// - it HAS started the exe payload.
//
// In the first state, bbagent will immediately terminate the build without
// invoking the exe payload at all.
//
// In the second state, bbagent will send SIGTERM/CTRL-BREAK to the exe
// (according to the deadline protocol described in
// https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md).
// After grace_period it will then try to kill the exe.
//
// NOTE: There is a race condition here; If bbagent starts the luciexe and
// then immediately notices that the build is canceled, it's possible that
// bbagent can send SIGTERM/CTRL-BREAK to the exe before that exe sets up
// interrupt handlers. There is a bug on file (crbug.com/1311821)
// which we plan to implement at some point as a mitigation for this.
//
// Additionally, the Buildbucket service itself will launch an asynchronous
// task to terminate the build via the backend API (e.g. Swarming cancellation)
// if bbagent cannot successfully terminate the exe in time.
CancelTime *timestamppb.Timestamp `protobuf:"bytes,32,opt,name=cancel_time,json=cancelTime,proto3" json:"cancel_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.
SummaryMarkdown string `protobuf:"bytes,20,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"`
// Markdown reasoning for cancelling the build.
// Human readable and should be following https://spec.commonmark.org/0.28/.
CancellationMarkdown string `protobuf:"bytes,33,opt,name=cancellation_markdown,json=cancellationMarkdown,proto3" json:"cancellation_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"`
// Flag to control if the build can outlive its parent.
//
// This field is only meaningful if the build has ancestors.
// If the build has ancestors and the value is false, it means that the build
// SHOULD reach a terminal status (SUCCESS, FAILURE, INFRA_FAILURE or
// CANCELED) before its parent. If the child fails to do so, Buildbucket will
// cancel it some time after the parent build reaches a terminal status.
//
// A build that can outlive its parent can also outlive its parent's ancestors.
CanOutliveParent bool `protobuf:"varint,30,opt,name=can_outlive_parent,json=canOutliveParent,proto3" json:"can_outlive_parent,omitempty"`
// IDs of the build's ancestors. This includes all parents/grandparents/etc.
// This is ordered from top-to-bottom so `ancestor_ids[0]` is the root of
// the builds tree, and `ancestor_ids[-1]` is this build's immediate parent.
// This does not include any "siblings" at higher levels of the tree, just
// the direct chain of ancestors from root to this build.
AncestorIds []int64 `protobuf:"varint,31,rep,packed,name=ancestor_ids,json=ancestorIds,proto3" json:"ancestor_ids,omitempty"`
// If UNSET, retrying the build is implicitly allowed;
// If YES, retrying the build is explicitly allowed;
// If NO, retrying the build is explicitly disallowed,
// - any UI displaying the build should remove "retry" button(s),
// - ScheduleBuild using the build as template should fail,
// - but the build can still be synthesized by SynthesizeBuild.
Retriable Trinary `protobuf:"varint,35,opt,name=retriable,proto3,enum=buildbucket.v2.Trinary" json:"retriable,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) GetBuilderInfo() *Build_BuilderInfo {
if x != nil {
return x.BuilderInfo
}
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) GetViewUrl() string {
if x != nil {
return x.ViewUrl
}
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) GetCancelTime() *timestamppb.Timestamp {
if x != nil {
return x.CancelTime
}
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) GetCancellationMarkdown() string {
if x != nil {
return x.CancellationMarkdown
}
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
}
func (x *Build) GetCanOutliveParent() bool {
if x != nil {
return x.CanOutliveParent
}
return false
}
func (x *Build) GetAncestorIds() []int64 {
if x != nil {
return x.AncestorIds
}
return nil
}
func (x *Build) GetRetriable() Trinary {
if x != nil {
return x.Retriable
}
return Trinary_UNSET
}
type InputDataRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to DataType:
//
// *InputDataRef_Cas
// *InputDataRef_Cipd
DataType isInputDataRef_DataType `protobuf_oneof:"data_type"`
// TODO(crbug.com/1266060): TBD. `on_path` may need to move out to be incorporated into a field which captures other envvars.
// Subdirectories relative to the root of `ref` which should be set as a prefix to
// the $PATH variable.
//
// A substitute of `env_prefixes` in SwarmingRpcsTaskProperties field -
// https://chromium.googlesource.com/infra/luci/luci-go/+/0048a84944e872776fba3542aa96d5943ae64bab/common/api/swarming/swarming/v1/swarming-gen.go#1495
OnPath []string `protobuf:"bytes,3,rep,name=on_path,json=onPath,proto3" json:"on_path,omitempty"`
}
func (x *InputDataRef) Reset() {
*x = InputDataRef{}
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 *InputDataRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InputDataRef) ProtoMessage() {}
func (x *InputDataRef) 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 InputDataRef.ProtoReflect.Descriptor instead.
func (*InputDataRef) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1}
}
func (m *InputDataRef) GetDataType() isInputDataRef_DataType {
if m != nil {
return m.DataType
}
return nil
}
func (x *InputDataRef) GetCas() *InputDataRef_CAS {
if x, ok := x.GetDataType().(*InputDataRef_Cas); ok {
return x.Cas
}
return nil
}
func (x *InputDataRef) GetCipd() *InputDataRef_CIPD {
if x, ok := x.GetDataType().(*InputDataRef_Cipd); ok {
return x.Cipd
}
return nil
}
func (x *InputDataRef) GetOnPath() []string {
if x != nil {
return x.OnPath
}
return nil
}
type isInputDataRef_DataType interface {
isInputDataRef_DataType()
}
type InputDataRef_Cas struct {
Cas *InputDataRef_CAS `protobuf:"bytes,1,opt,name=cas,proto3,oneof"`
}
type InputDataRef_Cipd struct {
Cipd *InputDataRef_CIPD `protobuf:"bytes,2,opt,name=cipd,proto3,oneof"`
}
func (*InputDataRef_Cas) isInputDataRef_DataType() {}
func (*InputDataRef_Cipd) isInputDataRef_DataType() {}
type ResolvedDataRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to DataType:
//
// *ResolvedDataRef_Cas
// *ResolvedDataRef_Cipd
DataType isResolvedDataRef_DataType `protobuf_oneof:"data_type"`
}
func (x *ResolvedDataRef) Reset() {
*x = ResolvedDataRef{}
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 *ResolvedDataRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResolvedDataRef) ProtoMessage() {}
func (x *ResolvedDataRef) 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 ResolvedDataRef.ProtoReflect.Descriptor instead.
func (*ResolvedDataRef) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2}
}
func (m *ResolvedDataRef) GetDataType() isResolvedDataRef_DataType {
if m != nil {
return m.DataType
}
return nil
}
func (x *ResolvedDataRef) GetCas() *ResolvedDataRef_CAS {
if x, ok := x.GetDataType().(*ResolvedDataRef_Cas); ok {
return x.Cas
}
return nil
}
func (x *ResolvedDataRef) GetCipd() *ResolvedDataRef_CIPD {
if x, ok := x.GetDataType().(*ResolvedDataRef_Cipd); ok {
return x.Cipd
}
return nil
}
type isResolvedDataRef_DataType interface {
isResolvedDataRef_DataType()
}
type ResolvedDataRef_Cas struct {
Cas *ResolvedDataRef_CAS `protobuf:"bytes,1,opt,name=cas,proto3,oneof"`
}
type ResolvedDataRef_Cipd struct {
Cipd *ResolvedDataRef_CIPD `protobuf:"bytes,2,opt,name=cipd,proto3,oneof"`
}
func (*ResolvedDataRef_Cas) isResolvedDataRef_DataType() {}
func (*ResolvedDataRef_Cipd) isResolvedDataRef_DataType() {}
// 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"`
Bbagent *BuildInfra_BBAgent `protobuf:"bytes,6,opt,name=bbagent,proto3" json:"bbagent,omitempty"`
Backend *BuildInfra_Backend `protobuf:"bytes,7,opt,name=backend,proto3" json:"backend,omitempty"`
// It should only be set for led builds.
Led *BuildInfra_Led `protobuf:"bytes,8,opt,name=led,proto3" json:"led,omitempty"`
}
func (x *BuildInfra) Reset() {
*x = BuildInfra{}
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 *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[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 BuildInfra.ProtoReflect.Descriptor instead.
func (*BuildInfra) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3}
}
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
}
func (x *BuildInfra) GetBbagent() *BuildInfra_BBAgent {
if x != nil {
return x.Bbagent
}
return nil
}
func (x *BuildInfra) GetBackend() *BuildInfra_Backend {
if x != nil {
return x.Backend
}
return nil
}
func (x *BuildInfra) GetLed() *BuildInfra_Led {
if x != nil {
return x.Led
}
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 a detailed breakdown on how experiments
// work, and go/buildbucket-settings.cfg for the current state of global
// 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[4]
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[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 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"`
// Build status which is reported by the client via StartBuild or UpdateBuild.
Status Status `protobuf:"varint,6,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"`
StatusDetails *StatusDetails `protobuf:"bytes,7,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"`
// Deprecated. Use summary_markdown instead.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
SummaryHtml string `protobuf:"bytes,8,opt,name=summary_html,json=summaryHtml,proto3" json:"summary_html,omitempty"`
SummaryMarkdown string `protobuf:"bytes,2,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"`
}
func (x *Build_Output) Reset() {
*x = Build_Output{}
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 *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[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 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
}
func (x *Build_Output) GetStatus() Status {
if x != nil {
return x.Status
}
return Status_STATUS_UNSPECIFIED
}
func (x *Build_Output) GetStatusDetails() *StatusDetails {
if x != nil {
return x.StatusDetails
}
return nil
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
func (x *Build_Output) GetSummaryHtml() string {
if x != nil {
return x.SummaryHtml
}
return ""
}
func (x *Build_Output) GetSummaryMarkdown() string {
if x != nil {
return x.SummaryMarkdown
}
return ""
}
// Information of the builder, propagated from builder config.
//
// The info captures the state of the builder at creation time.
// If any information is updated, all future builds will have the new
// information, while the historical builds persist the old information.
type Build_BuilderInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
}
func (x *Build_BuilderInfo) Reset() {
*x = Build_BuilderInfo{}
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 *Build_BuilderInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Build_BuilderInfo) ProtoMessage() {}
func (x *Build_BuilderInfo) 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 Build_BuilderInfo.ProtoReflect.Descriptor instead.
func (*Build_BuilderInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Build_BuilderInfo) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
type InputDataRef_CAS struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Full name of RBE-CAS instance. `projects/{project_id}/instances/{instance}`.
// e.g. projects/chromium-swarm/instances/default_instance
CasInstance string `protobuf:"bytes,1,opt,name=cas_instance,json=casInstance,proto3" json:"cas_instance,omitempty"`
Digest *InputDataRef_CAS_Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
}
func (x *InputDataRef_CAS) Reset() {
*x = InputDataRef_CAS{}
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 *InputDataRef_CAS) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InputDataRef_CAS) ProtoMessage() {}
func (x *InputDataRef_CAS) 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 InputDataRef_CAS.ProtoReflect.Descriptor instead.
func (*InputDataRef_CAS) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 0}
}
func (x *InputDataRef_CAS) GetCasInstance() string {
if x != nil {
return x.CasInstance
}
return ""
}
func (x *InputDataRef_CAS) GetDigest() *InputDataRef_CAS_Digest {
if x != nil {
return x.Digest
}
return nil
}
type InputDataRef_CIPD struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
Specs []*InputDataRef_CIPD_PkgSpec `protobuf:"bytes,2,rep,name=specs,proto3" json:"specs,omitempty"`
}
func (x *InputDataRef_CIPD) Reset() {
*x = InputDataRef_CIPD{}
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 *InputDataRef_CIPD) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InputDataRef_CIPD) ProtoMessage() {}
func (x *InputDataRef_CIPD) 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 InputDataRef_CIPD.ProtoReflect.Descriptor instead.
func (*InputDataRef_CIPD) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 1}
}
func (x *InputDataRef_CIPD) GetServer() string {
if x != nil {
return x.Server
}
return ""
}
func (x *InputDataRef_CIPD) GetSpecs() []*InputDataRef_CIPD_PkgSpec {
if x != nil {
return x.Specs
}
return nil
}
// This is a [Digest][build.bazel.remote.execution.v2.Digest] of a blob on
// RBE-CAS. See the explanations at the original definition.
// https://github.com/bazelbuild/remote-apis/blob/77cfb44a88577a7ade5dd2400425f6d50469ec6d/build/bazel/remote/execution/v2/remote_execution.proto#L753-L791
type InputDataRef_CAS_Digest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
}
func (x *InputDataRef_CAS_Digest) Reset() {
*x = InputDataRef_CAS_Digest{}
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 *InputDataRef_CAS_Digest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InputDataRef_CAS_Digest) ProtoMessage() {}
func (x *InputDataRef_CAS_Digest) 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 InputDataRef_CAS_Digest.ProtoReflect.Descriptor instead.
func (*InputDataRef_CAS_Digest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 0, 0}
}
func (x *InputDataRef_CAS_Digest) GetHash() string {
if x != nil {
return x.Hash
}
return ""
}
func (x *InputDataRef_CAS_Digest) GetSizeBytes() int64 {
if x != nil {
return x.SizeBytes
}
return 0
}
type InputDataRef_CIPD_PkgSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Package MAY include CIPD variables, including conditional variables like
// `${os=windows}`. Additionally, version may be a ref or a tag.
Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"`
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
}
func (x *InputDataRef_CIPD_PkgSpec) Reset() {
*x = InputDataRef_CIPD_PkgSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *InputDataRef_CIPD_PkgSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InputDataRef_CIPD_PkgSpec) ProtoMessage() {}
func (x *InputDataRef_CIPD_PkgSpec) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use InputDataRef_CIPD_PkgSpec.ProtoReflect.Descriptor instead.
func (*InputDataRef_CIPD_PkgSpec) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{1, 1, 0}
}
func (x *InputDataRef_CIPD_PkgSpec) GetPackage() string {
if x != nil {
return x.Package
}
return ""
}
func (x *InputDataRef_CIPD_PkgSpec) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
type ResolvedDataRef_Timing struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FetchDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=fetch_duration,json=fetchDuration,proto3" json:"fetch_duration,omitempty"`
InstallDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=install_duration,json=installDuration,proto3" json:"install_duration,omitempty"`
}
func (x *ResolvedDataRef_Timing) Reset() {
*x = ResolvedDataRef_Timing{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResolvedDataRef_Timing) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResolvedDataRef_Timing) ProtoMessage() {}
func (x *ResolvedDataRef_Timing) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResolvedDataRef_Timing.ProtoReflect.Descriptor instead.
func (*ResolvedDataRef_Timing) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 0}
}
func (x *ResolvedDataRef_Timing) GetFetchDuration() *durationpb.Duration {
if x != nil {
return x.FetchDuration
}
return nil
}
func (x *ResolvedDataRef_Timing) GetInstallDuration() *durationpb.Duration {
if x != nil {
return x.InstallDuration
}
return nil
}
type ResolvedDataRef_CAS struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// TODO(crbug.com/1266060): potential fields can be
// int64 cache_hits = ?;
// int64 cache_hit_size = ?:
// int64 cache_misses = ?;
// int64 cache_miss_size = ?;
// need more thinking and better to determine when starting writing code
// to download binaries in bbagent.
Timing *ResolvedDataRef_Timing `protobuf:"bytes,1,opt,name=timing,proto3" json:"timing,omitempty"`
}
func (x *ResolvedDataRef_CAS) Reset() {
*x = ResolvedDataRef_CAS{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResolvedDataRef_CAS) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResolvedDataRef_CAS) ProtoMessage() {}
func (x *ResolvedDataRef_CAS) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResolvedDataRef_CAS.ProtoReflect.Descriptor instead.
func (*ResolvedDataRef_CAS) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 1}
}
func (x *ResolvedDataRef_CAS) GetTiming() *ResolvedDataRef_Timing {
if x != nil {
return x.Timing
}
return nil
}
type ResolvedDataRef_CIPD struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Specs []*ResolvedDataRef_CIPD_PkgSpec `protobuf:"bytes,2,rep,name=specs,proto3" json:"specs,omitempty"`
}
func (x *ResolvedDataRef_CIPD) Reset() {
*x = ResolvedDataRef_CIPD{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResolvedDataRef_CIPD) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResolvedDataRef_CIPD) ProtoMessage() {}
func (x *ResolvedDataRef_CIPD) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResolvedDataRef_CIPD.ProtoReflect.Descriptor instead.
func (*ResolvedDataRef_CIPD) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 2}
}
func (x *ResolvedDataRef_CIPD) GetSpecs() []*ResolvedDataRef_CIPD_PkgSpec {
if x != nil {
return x.Specs
}
return nil
}
type ResolvedDataRef_CIPD_PkgSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// True if this package wasn't installed because `package` contained a
// non-applicable conditional (e.g. ${os=windows} on a mac machine).
Skipped bool `protobuf:"varint,1,opt,name=skipped,proto3" json:"skipped,omitempty"`
Package string `protobuf:"bytes,2,opt,name=package,proto3" json:"package,omitempty"` // fully resolved
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` // fully resolved
WasCached Trinary `protobuf:"varint,4,opt,name=was_cached,json=wasCached,proto3,enum=buildbucket.v2.Trinary" json:"was_cached,omitempty"`
Timing *ResolvedDataRef_Timing `protobuf:"bytes,5,opt,name=timing,proto3" json:"timing,omitempty"` // optional
}
func (x *ResolvedDataRef_CIPD_PkgSpec) Reset() {
*x = ResolvedDataRef_CIPD_PkgSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResolvedDataRef_CIPD_PkgSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResolvedDataRef_CIPD_PkgSpec) ProtoMessage() {}
func (x *ResolvedDataRef_CIPD_PkgSpec) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResolvedDataRef_CIPD_PkgSpec.ProtoReflect.Descriptor instead.
func (*ResolvedDataRef_CIPD_PkgSpec) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{2, 2, 0}
}
func (x *ResolvedDataRef_CIPD_PkgSpec) GetSkipped() bool {
if x != nil {
return x.Skipped
}
return false
}
func (x *ResolvedDataRef_CIPD_PkgSpec) GetPackage() string {
if x != nil {
return x.Package
}
return ""
}
func (x *ResolvedDataRef_CIPD_PkgSpec) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *ResolvedDataRef_CIPD_PkgSpec) GetWasCached() Trinary {
if x != nil {
return x.WasCached
}
return Trinary_UNSET
}
func (x *ResolvedDataRef_CIPD_PkgSpec) GetTiming() *ResolvedDataRef_Timing {
if x != nil {
return x.Timing
}
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"`
// This contains a map of all the experiments involved for this build, as
// well as which bit of configuration lead to them being set (or unset).
//
// Note that if the reason here is EXPERIMENT_REASON_GLOBAL_INACTIVE,
// then that means that the experiment is completely disabled and has no
// effect, but your builder or ScheduleBuildRequest still indicated that
// the experiment should be set. If you see this, then please remove it
// from your configuration and/or requests.
ExperimentReasons map[string]BuildInfra_Buildbucket_ExperimentReason `protobuf:"bytes,8,rep,name=experiment_reasons,json=experimentReasons,proto3" json:"experiment_reasons,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=buildbucket.v2.BuildInfra_Buildbucket_ExperimentReason"`
// The agent binary (bbagent or kitchen) resolutions Buildbucket made for this build.
// This includes all agent_executable references supplied to
// the TaskBackend in "original" (CIPD) form, to facilitate debugging.
// DEPRECATED: Use agent.source instead.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
AgentExecutable map[string]*ResolvedDataRef `protobuf:"bytes,9,rep,name=agent_executable,json=agentExecutable,proto3" json:"agent_executable,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Agent *BuildInfra_Buildbucket_Agent `protobuf:"bytes,10,opt,name=agent,proto3" json:"agent,omitempty"`
KnownPublicGerritHosts []string `protobuf:"bytes,11,rep,name=known_public_gerrit_hosts,json=knownPublicGerritHosts,proto3" json:"known_public_gerrit_hosts,omitempty"`
// Flag for if the build should have a build number.
BuildNumber bool `protobuf:"varint,12,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"`
}
func (x *BuildInfra_Buildbucket) Reset() {
*x = BuildInfra_Buildbucket{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[15]
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[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Buildbucket.ProtoReflect.Descriptor instead.
func (*BuildInfra_Buildbucket) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 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 ""
}
func (x *BuildInfra_Buildbucket) GetExperimentReasons() map[string]BuildInfra_Buildbucket_ExperimentReason {
if x != nil {
return x.ExperimentReasons
}
return nil
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
func (x *BuildInfra_Buildbucket) GetAgentExecutable() map[string]*ResolvedDataRef {
if x != nil {
return x.AgentExecutable
}
return nil
}
func (x *BuildInfra_Buildbucket) GetAgent() *BuildInfra_Buildbucket_Agent {
if x != nil {
return x.Agent
}
return nil
}
func (x *BuildInfra_Buildbucket) GetKnownPublicGerritHosts() []string {
if x != nil {
return x.KnownPublicGerritHosts
}
return nil
}
func (x *BuildInfra_Buildbucket) GetBuildNumber() bool {
if x != nil {
return x.BuildNumber
}
return false
}
// 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"`
}
func (x *BuildInfra_Swarming) Reset() {
*x = BuildInfra_Swarming{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[16]
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[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Swarming.ProtoReflect.Descriptor instead.
func (*BuildInfra_Swarming) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 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
}
// 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.
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[17]
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[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_LogDog.ProtoReflect.Descriptor instead.
func (*BuildInfra_LogDog) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 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[18]
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[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Recipe.ProtoReflect.Descriptor instead.
func (*BuildInfra_Recipe) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 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"`
// Whether to enable ResultDB:Buildbucket integration.
Enable bool `protobuf:"varint,3,opt,name=enable,proto3" json:"enable,omitempty"`
// Configuration for exporting test results to BigQuery.
// This can have multiple values to export results to multiple BigQuery
// tables, or to support multiple test result predicates.
BqExports []*v1.BigQueryExport `protobuf:"bytes,4,rep,name=bq_exports,json=bqExports,proto3" json:"bq_exports,omitempty"`
// Deprecated. Any values specified here are ignored.
HistoryOptions *v1.HistoryOptions `protobuf:"bytes,5,opt,name=history_options,json=historyOptions,proto3" json:"history_options,omitempty"`
}
func (x *BuildInfra_ResultDB) Reset() {
*x = BuildInfra_ResultDB{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[19]
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[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_ResultDB.ProtoReflect.Descriptor instead.
func (*BuildInfra_ResultDB) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 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 ""
}
func (x *BuildInfra_ResultDB) GetEnable() bool {
if x != nil {
return x.Enable
}
return false
}
func (x *BuildInfra_ResultDB) GetBqExports() []*v1.BigQueryExport {
if x != nil {
return x.BqExports
}
return nil
}
func (x *BuildInfra_ResultDB) GetHistoryOptions() *v1.HistoryOptions {
if x != nil {
return x.HistoryOptions
}
return nil
}
// Led specific information.
type BuildInfra_Led struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The original bucket this led build is shadowing.
ShadowedBucket string `protobuf:"bytes,1,opt,name=shadowed_bucket,json=shadowedBucket,proto3" json:"shadowed_bucket,omitempty"`
}
func (x *BuildInfra_Led) Reset() {
*x = BuildInfra_Led{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Led) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Led) ProtoMessage() {}
func (x *BuildInfra_Led) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[20]
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_Led.ProtoReflect.Descriptor instead.
func (*BuildInfra_Led) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 5}
}
func (x *BuildInfra_Led) GetShadowedBucket() string {
if x != nil {
return x.ShadowedBucket
}
return ""
}
// BBAgent-specific information.
//
// All paths are relateive to bbagent's working directory, and must be delimited
// with slashes ("/"), regardless of the host OS.
type BuildInfra_BBAgent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Path to the base of the user executable package.
//
// Required.
PayloadPath string `protobuf:"bytes,1,opt,name=payload_path,json=payloadPath,proto3" json:"payload_path,omitempty"`
// Path to a directory where each subdirectory is a cache dir.
//
// Required.
CacheDir string `protobuf:"bytes,2,opt,name=cache_dir,json=cacheDir,proto3" json:"cache_dir,omitempty"`
// List of Gerrit hosts to force git authentication for.
//
// By default public hosts are accessed anonymously, and the anonymous access
// has very low quota. Context needs to know all such hostnames in advance to
// be able to force authenticated access to them.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
KnownPublicGerritHosts []string `protobuf:"bytes,3,rep,name=known_public_gerrit_hosts,json=knownPublicGerritHosts,proto3" json:"known_public_gerrit_hosts,omitempty"`
// DEPRECATED: Use build.Infra.Buildbucket.Agent.Input instead.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
Input *BuildInfra_BBAgent_Input `protobuf:"bytes,4,opt,name=input,proto3" json:"input,omitempty"`
}
func (x *BuildInfra_BBAgent) Reset() {
*x = BuildInfra_BBAgent{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_BBAgent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_BBAgent) ProtoMessage() {}
func (x *BuildInfra_BBAgent) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_BBAgent.ProtoReflect.Descriptor instead.
func (*BuildInfra_BBAgent) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 6}
}
func (x *BuildInfra_BBAgent) GetPayloadPath() string {
if x != nil {
return x.PayloadPath
}
return ""
}
func (x *BuildInfra_BBAgent) GetCacheDir() string {
if x != nil {
return x.CacheDir
}
return ""
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
func (x *BuildInfra_BBAgent) GetKnownPublicGerritHosts() []string {
if x != nil {
return x.KnownPublicGerritHosts
}
return nil
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
func (x *BuildInfra_BBAgent) GetInput() *BuildInfra_BBAgent_Input {
if x != nil {
return x.Input
}
return nil
}
// Backend-specific information.
type BuildInfra_Backend struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Configuration supplied to the backend at the time it was instructed to
// run this build.
Config *structpb.Struct `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
// Current backend task status.
// Updated as build runs.
Task *Task `protobuf:"bytes,2,opt,name=task,proto3" json:"task,omitempty"`
// Caches requested by this build.
Caches []*CacheEntry `protobuf:"bytes,3,rep,name=caches,proto3" json:"caches,omitempty"`
// Dimensions for the task.
TaskDimensions []*RequestedDimension `protobuf:"bytes,5,rep,name=task_dimensions,json=taskDimensions,proto3" json:"task_dimensions,omitempty"`
// Hostname is the hostname for the backend itself.
Hostname string `protobuf:"bytes,6,opt,name=hostname,proto3" json:"hostname,omitempty"`
}
func (x *BuildInfra_Backend) Reset() {
*x = BuildInfra_Backend{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Backend) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Backend) ProtoMessage() {}
func (x *BuildInfra_Backend) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Backend.ProtoReflect.Descriptor instead.
func (*BuildInfra_Backend) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 7}
}
func (x *BuildInfra_Backend) GetConfig() *structpb.Struct {
if x != nil {
return x.Config
}
return nil
}
func (x *BuildInfra_Backend) GetTask() *Task {
if x != nil {
return x.Task
}
return nil
}
func (x *BuildInfra_Backend) GetCaches() []*CacheEntry {
if x != nil {
return x.Caches
}
return nil
}
func (x *BuildInfra_Backend) GetTaskDimensions() []*RequestedDimension {
if x != nil {
return x.TaskDimensions
}
return nil
}
func (x *BuildInfra_Backend) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
// bbagent will interpret Agent.input, as well as update Agent.output.
type BuildInfra_Buildbucket_Agent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// TODO(crbug.com/1297809): for a long-term solution, we may need to add
// a top-level `on_path` array field in the input and read the value from
// configuration files (eg.settings.cfg, builder configs). So it can store
// the intended order of PATH env var. Then the per-inputDataRef level
// `on_path` field will be deprecated.
// Currently, the new BBagent flow merges all inputDataRef-level `on_path`
// values and sort. This mimics the same behavior of PyBB backend in order
// to have the cipd_installation migration to roll out first under a minimal risk.
Input *BuildInfra_Buildbucket_Agent_Input `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"`
Output *BuildInfra_Buildbucket_Agent_Output `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"`
Source *BuildInfra_Buildbucket_Agent_Source `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
// Maps the relative-to-root directory path in both `input` and `output`
// to the Purpose of the software in that directory.
//
// If a path is not listed here, it is the same as PURPOSE_UNSPECIFIED.
Purposes map[string]BuildInfra_Buildbucket_Agent_Purpose `protobuf:"bytes,4,rep,name=purposes,proto3" json:"purposes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=buildbucket.v2.BuildInfra_Buildbucket_Agent_Purpose"`
// Cache for the cipd client.
// The cache name should be in the format like `cipd_client_<sha(client_version)>`.
CipdClientCache *CacheEntry `protobuf:"bytes,5,opt,name=cipd_client_cache,json=cipdClientCache,proto3" json:"cipd_client_cache,omitempty"`
// Cache for the cipd packages.
// The cache name should be in the format like `cipd_cache_<sha(task_service_account)>`.
CipdPackagesCache *CacheEntry `protobuf:"bytes,6,opt,name=cipd_packages_cache,json=cipdPackagesCache,proto3" json:"cipd_packages_cache,omitempty"`
}
func (x *BuildInfra_Buildbucket_Agent) Reset() {
*x = BuildInfra_Buildbucket_Agent{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Buildbucket_Agent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Buildbucket_Agent) ProtoMessage() {}
func (x *BuildInfra_Buildbucket_Agent) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildInfra_Buildbucket_Agent.ProtoReflect.Descriptor instead.
func (*BuildInfra_Buildbucket_Agent) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0}
}
func (x *BuildInfra_Buildbucket_Agent) GetInput() *BuildInfra_Buildbucket_Agent_Input {
if x != nil {
return x.Input
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent) GetOutput() *BuildInfra_Buildbucket_Agent_Output {
if x != nil {
return x.Output
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent) GetSource() *BuildInfra_Buildbucket_Agent_Source {
if x != nil {
return x.Source
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent) GetPurposes() map[string]BuildInfra_Buildbucket_Agent_Purpose {
if x != nil {
return x.Purposes
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent) GetCipdClientCache() *CacheEntry {
if x != nil {
return x.CipdClientCache
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent) GetCipdPackagesCache() *CacheEntry {
if x != nil {
return x.CipdPackagesCache
}
return nil
}
// Source describes where the Agent should be fetched from.
type BuildInfra_Buildbucket_Agent_Source struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to DataType:
//
// *BuildInfra_Buildbucket_Agent_Source_Cipd
DataType isBuildInfra_Buildbucket_Agent_Source_DataType `protobuf_oneof:"data_type"`
}
func (x *BuildInfra_Buildbucket_Agent_Source) Reset() {
*x = BuildInfra_Buildbucket_Agent_Source{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Buildbucket_Agent_Source) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Buildbucket_Agent_Source) ProtoMessage() {}
func (x *BuildInfra_Buildbucket_Agent_Source) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[26]
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_Agent_Source.ProtoReflect.Descriptor instead.
func (*BuildInfra_Buildbucket_Agent_Source) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 0}
}
func (m *BuildInfra_Buildbucket_Agent_Source) GetDataType() isBuildInfra_Buildbucket_Agent_Source_DataType {
if m != nil {
return m.DataType
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent_Source) GetCipd() *BuildInfra_Buildbucket_Agent_Source_CIPD {
if x, ok := x.GetDataType().(*BuildInfra_Buildbucket_Agent_Source_Cipd); ok {
return x.Cipd
}
return nil
}
type isBuildInfra_Buildbucket_Agent_Source_DataType interface {
isBuildInfra_Buildbucket_Agent_Source_DataType()
}
type BuildInfra_Buildbucket_Agent_Source_Cipd struct {
Cipd *BuildInfra_Buildbucket_Agent_Source_CIPD `protobuf:"bytes,1,opt,name=cipd,proto3,oneof"`
}
func (*BuildInfra_Buildbucket_Agent_Source_Cipd) isBuildInfra_Buildbucket_Agent_Source_DataType() {}
type BuildInfra_Buildbucket_Agent_Input struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Maps relative-to-root directory to the data.
//
// For now, data is only allowed at the 'leaves', e.g. you cannot
// specify data at "a/b/c" and "a/b" (but "a/b/c" and "a/q" would be OK).
// All directories beginning with "luci." are reserved for Buildbucket's own use.
//
// TODO(crbug.com/1266060): Enforce the above constraints in a later phase.
// Currently users don't have the flexibility to set the parent directory path.
Data map[string]*InputDataRef `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Maps relative-to-root directory to the cipd package itself.
// This is the CIPD client itself and should be downloaded first so that
// the packages in the data field above can be downloaded.
CipdSource map[string]*InputDataRef `protobuf:"bytes,2,rep,name=cipd_source,json=cipdSource,proto3" json:"cipd_source,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *BuildInfra_Buildbucket_Agent_Input) Reset() {
*x = BuildInfra_Buildbucket_Agent_Input{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Buildbucket_Agent_Input) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Buildbucket_Agent_Input) ProtoMessage() {}
func (x *BuildInfra_Buildbucket_Agent_Input) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[27]
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_Agent_Input.ProtoReflect.Descriptor instead.
func (*BuildInfra_Buildbucket_Agent_Input) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 1}
}
func (x *BuildInfra_Buildbucket_Agent_Input) GetData() map[string]*InputDataRef {
if x != nil {
return x.Data
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent_Input) GetCipdSource() map[string]*InputDataRef {
if x != nil {
return x.CipdSource
}
return nil
}
type BuildInfra_Buildbucket_Agent_Output struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Maps relative-to-root directory to the fully-resolved ref.
//
// This will always have 1:1 mapping to Agent.Input.data
ResolvedData map[string]*ResolvedDataRef `protobuf:"bytes,1,rep,name=resolved_data,json=resolvedData,proto3" json:"resolved_data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"`
StatusDetails *StatusDetails `protobuf:"bytes,3,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"`
// Deprecated. Use summary_markdown instead.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
SummaryHtml string `protobuf:"bytes,4,opt,name=summary_html,json=summaryHtml,proto3" json:"summary_html,omitempty"`
// The agent's resolved CIPD ${platform} (e.g. "linux-amd64",
// "windows-386", etc.).
//
// This is trivial for bbagent to calculate (unlike trying to embed
// its cipd package version inside or along with the executable).
// Buildbucket is doing a full package -> instance ID resolution at
// CreateBuild time anyway, so Agent.Source.resolved_instances
// will give the mapping from `agent_platform` to a precise instance_id
// which was used.
AgentPlatform string `protobuf:"bytes,5,opt,name=agent_platform,json=agentPlatform,proto3" json:"agent_platform,omitempty"`
// Total installation duration for all input data. Currently only record
// cipd packages installation time.
TotalDuration *durationpb.Duration `protobuf:"bytes,6,opt,name=total_duration,json=totalDuration,proto3" json:"total_duration,omitempty"`
SummaryMarkdown string `protobuf:"bytes,7,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"`
}
func (x *BuildInfra_Buildbucket_Agent_Output) Reset() {
*x = BuildInfra_Buildbucket_Agent_Output{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Buildbucket_Agent_Output) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Buildbucket_Agent_Output) ProtoMessage() {}
func (x *BuildInfra_Buildbucket_Agent_Output) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[28]
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_Agent_Output.ProtoReflect.Descriptor instead.
func (*BuildInfra_Buildbucket_Agent_Output) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 2}
}
func (x *BuildInfra_Buildbucket_Agent_Output) GetResolvedData() map[string]*ResolvedDataRef {
if x != nil {
return x.ResolvedData
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent_Output) GetStatus() Status {
if x != nil {
return x.Status
}
return Status_STATUS_UNSPECIFIED
}
func (x *BuildInfra_Buildbucket_Agent_Output) GetStatusDetails() *StatusDetails {
if x != nil {
return x.StatusDetails
}
return nil
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/build.proto.
func (x *BuildInfra_Buildbucket_Agent_Output) GetSummaryHtml() string {
if x != nil {
return x.SummaryHtml
}
return ""
}
func (x *BuildInfra_Buildbucket_Agent_Output) GetAgentPlatform() string {
if x != nil {
return x.AgentPlatform
}
return ""
}
func (x *BuildInfra_Buildbucket_Agent_Output) GetTotalDuration() *durationpb.Duration {
if x != nil {
return x.TotalDuration
}
return nil
}
func (x *BuildInfra_Buildbucket_Agent_Output) GetSummaryMarkdown() string {
if x != nil {
return x.SummaryMarkdown
}
return ""
}
type BuildInfra_Buildbucket_Agent_Source_CIPD struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The CIPD package to use for the agent.
//
// Must end in "/${platform}" with no other CIPD variables.
//
// If using an experimental agent binary, please make sure the package
// prefix has been configured here -
// https://chrome-internal.googlesource.com/infradata/config/+/refs/heads/main/configs/chrome-infra-packages/bootstrap.cfg
Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"`
// The CIPD version to use for the agent.
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
// The CIPD server to use.
Server string `protobuf:"bytes,3,opt,name=server,proto3" json:"server,omitempty"`
// maps ${platform} -> instance_id for resolved agent packages.
//
// Will be overwritten at CreateBuild time, should be left empty
// when creating a new Build.
ResolvedInstances map[string]string `protobuf:"bytes,4,rep,name=resolved_instances,json=resolvedInstances,proto3" json:"resolved_instances,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) Reset() {
*x = BuildInfra_Buildbucket_Agent_Source_CIPD{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_Buildbucket_Agent_Source_CIPD) ProtoMessage() {}
func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[30]
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_Agent_Source_CIPD.ProtoReflect.Descriptor instead.
func (*BuildInfra_Buildbucket_Agent_Source_CIPD) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 0, 0, 0, 0}
}
func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetPackage() string {
if x != nil {
return x.Package
}
return ""
}
func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetServer() string {
if x != nil {
return x.Server
}
return ""
}
func (x *BuildInfra_Buildbucket_Agent_Source_CIPD) GetResolvedInstances() map[string]string {
if x != nil {
return x.ResolvedInstances
}
return nil
}
// 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_dir.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[35]
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[35]
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{3, 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 ""
}
// BBAgent-specific input.
type BuildInfra_BBAgent_Input struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CipdPackages []*BuildInfra_BBAgent_Input_CIPDPackage `protobuf:"bytes,1,rep,name=cipd_packages,json=cipdPackages,proto3" json:"cipd_packages,omitempty"`
}
func (x *BuildInfra_BBAgent_Input) Reset() {
*x = BuildInfra_BBAgent_Input{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_BBAgent_Input) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_BBAgent_Input) ProtoMessage() {}
func (x *BuildInfra_BBAgent_Input) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[36]
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_BBAgent_Input.ProtoReflect.Descriptor instead.
func (*BuildInfra_BBAgent_Input) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 6, 0}
}
func (x *BuildInfra_BBAgent_Input) GetCipdPackages() []*BuildInfra_BBAgent_Input_CIPDPackage {
if x != nil {
return x.CipdPackages
}
return nil
}
// CIPD Packages to make available for this build.
type BuildInfra_BBAgent_Input_CIPDPackage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of this CIPD package.
//
// Required.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// CIPD package version.
//
// Required.
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
// CIPD server to fetch this package from.
//
// Required.
Server string `protobuf:"bytes,3,opt,name=server,proto3" json:"server,omitempty"`
// Path where this CIPD package should be installed.
//
// Required.
Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *BuildInfra_BBAgent_Input_CIPDPackage) Reset() {
*x = BuildInfra_BBAgent_Input_CIPDPackage{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildInfra_BBAgent_Input_CIPDPackage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildInfra_BBAgent_Input_CIPDPackage) ProtoMessage() {}
func (x *BuildInfra_BBAgent_Input_CIPDPackage) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[37]
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_BBAgent_Input_CIPDPackage.ProtoReflect.Descriptor instead.
func (*BuildInfra_BBAgent_Input_CIPDPackage) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_build_proto_rawDescGZIP(), []int{3, 6, 0, 0}
}
func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetServer() string {
if x != nil {
return x.Server
}
return ""
}
func (x *BuildInfra_BBAgent_Input_CIPDPackage) GetPath() string {
if x != nil {
return x.Path
}
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, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 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, 0x43, 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, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68,
0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f,
0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f, 0x2e,
0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63,
0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 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, 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, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x37, 0x67, 0x6f,
0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75,
0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x13, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12,
0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x08, 0xe0, 0x41, 0x03,
0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x40, 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, 0x42, 0x0b, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0xb8, 0xce, 0xbc,
0x03, 0x02, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x0c, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x22, 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, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72,
0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64,
0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02,
0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x19, 0x0a, 0x08,
0x76, 0x69, 0x65, 0x77, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65,
0x6c, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x12, 0x45, 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, 0x42, 0x08,
0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 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, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x09,
0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 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, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03,
0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 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, 0x42, 0x08, 0xe0, 0x41, 0x03,
0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x45, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x20, 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, 0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x0a, 0x63, 0x61,
0x6e, 0x63, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 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,
0x42, 0x0b, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42,
0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x0f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3b, 0x0a, 0x15, 0x63, 0x61, 0x6e, 0x63,
0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77,
0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52,
0x14, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72,
0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x3a, 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,
0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61,
0x6c, 0x12, 0x51, 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, 0x42, 0x0b, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03,
0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74,
0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 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,
0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12,
0x3c, 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, 0x42, 0x06, 0x8a,
0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 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, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70,
0x73, 0x12, 0x38, 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, 0x42, 0x06, 0x8a, 0xc3,
0x1a, 0x02, 0x08, 0x02, 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, 0x34, 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, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 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, 0x12, 0x33, 0x0a, 0x12, 0x63, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74,
0x6c, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28,
0x08, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x4f, 0x75, 0x74,
0x6c, 0x69, 0x76, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x0c, 0x61, 0x6e,
0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x03,
0x42, 0x08, 0xe0, 0x41, 0x03, 0xb8, 0xce, 0xbc, 0x03, 0x03, 0x52, 0x0b, 0x61, 0x6e, 0x63, 0x65,
0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69,
0x61, 0x62, 0x6c, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e,
0x61, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x9f,
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, 0x4b, 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, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x02, 0x52,
0x0d, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x4a,
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, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03, 0x02, 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, 0xfe, 0x02, 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, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 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, 0x44, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65,
0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x07, 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, 0x25, 0x0a, 0x0c, 0x73, 0x75, 0x6d,
0x6d, 0x61, 0x72, 0x79, 0x5f, 0x68, 0x74, 0x6d, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42,
0x02, 0x18, 0x01, 0x52, 0x0b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x74, 0x6d, 0x6c,
0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x72, 0x6b,
0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x6d, 0x6d,
0x61, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x4a, 0x04, 0x08, 0x04, 0x10,
0x05, 0x1a, 0x2f, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x22, 0xf3,
0x03, 0x0a, 0x0c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x12,
0x34, 0x0a, 0x03, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e,
0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x43, 0x41, 0x53, 0x48, 0x00,
0x52, 0x03, 0x63, 0x61, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x69, 0x70, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65,
0x66, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x48, 0x00, 0x52, 0x04, 0x63, 0x69, 0x70, 0x64, 0x12, 0x17,
0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
0x06, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x1a, 0xa6, 0x01, 0x0a, 0x03, 0x43, 0x41, 0x53, 0x12,
0x21, 0x0a, 0x0c, 0x63, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
0x63, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66,
0x2e, 0x43, 0x41, 0x53, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67,
0x65, 0x73, 0x74, 0x1a, 0x3b, 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73,
0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18,
0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73,
0x1a, 0x9e, 0x01, 0x0a, 0x04, 0x43, 0x49, 0x50, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72,
0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x29, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76,
0x32, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x43,
0x49, 0x50, 0x44, 0x2e, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x73, 0x70, 0x65,
0x63, 0x73, 0x1a, 0x3d, 0x0a, 0x07, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a,
0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04,
0x08, 0x04, 0x10, 0x05, 0x22, 0x8c, 0x05, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65,
0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x12, 0x37, 0x0a, 0x03, 0x63, 0x61, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44,
0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x43, 0x41, 0x53, 0x48, 0x00, 0x52, 0x03, 0x63, 0x61,
0x73, 0x12, 0x3a, 0x0a, 0x04, 0x63, 0x69, 0x70, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x24, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32,
0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66,
0x2e, 0x43, 0x49, 0x50, 0x44, 0x48, 0x00, 0x52, 0x04, 0x63, 0x69, 0x70, 0x64, 0x1a, 0x90, 0x01,
0x0a, 0x06, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x0e, 0x66, 0x65, 0x74, 0x63,
0x68, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 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, 0x0d, 0x66, 0x65, 0x74,
0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x10, 0x69, 0x6e,
0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
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,
0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x1a, 0x45, 0x0a, 0x03, 0x43, 0x41, 0x53, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65,
0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52,
0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x1a, 0x9c, 0x02, 0x0a, 0x04, 0x43, 0x49, 0x50, 0x44,
0x12, 0x42, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x2c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32,
0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66,
0x2e, 0x43, 0x49, 0x50, 0x44, 0x2e, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x73,
0x70, 0x65, 0x63, 0x73, 0x1a, 0xcf, 0x01, 0x0a, 0x07, 0x50, 0x6b, 0x67, 0x53, 0x70, 0x65, 0x63,
0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x08, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61,
0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63,
0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36,
0x0a, 0x0a, 0x77, 0x61, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x09, 0x77, 0x61, 0x73,
0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75,
0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64,
0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x06,
0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x22, 0xda, 0x29, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66,
0x72, 0x61, 0x12, 0x50, 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, 0x42,
0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 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, 0x41, 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, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02,
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, 0x46, 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, 0x42, 0x05, 0xb8, 0xce, 0xbc, 0x03,
0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x12, 0x3c, 0x0a, 0x07, 0x62,
0x62, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 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, 0x42, 0x41, 0x67, 0x65, 0x6e, 0x74,
0x52, 0x07, 0x62, 0x62, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x07, 0x62, 0x61, 0x63,
0x6b, 0x65, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 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, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07,
0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x30, 0x0a, 0x03, 0x6c, 0x65, 0x64, 0x18, 0x08,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61,
0x2e, 0x4c, 0x65, 0x64, 0x52, 0x03, 0x6c, 0x65, 0x64, 0x1a, 0xa5, 0x18, 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,
0x12, 0x6c, 0x0a, 0x12, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72,
0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 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, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52,
0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x65, 0x78, 0x70,
0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x6a,
0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62,
0x6c, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 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,
0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x61, 0x67, 0x65, 0x6e, 0x74,
0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x4a, 0x0a, 0x05, 0x61, 0x67,
0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 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, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52,
0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f,
0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x5f, 0x68, 0x6f,
0x73, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x48, 0x6f, 0x73, 0x74,
0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x1a, 0xc4, 0x0f, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x50,
0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e,
0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42,
0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75,
0x74, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74,
0x12, 0x53, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x33, 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, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4f,
0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x03, 0x52, 0x06, 0x6f,
0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x53, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 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, 0x2e, 0x41, 0x67,
0x65, 0x6e, 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02,
0x08, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x70, 0x75,
0x72, 0x70, 0x6f, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 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, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x75, 0x72, 0x70, 0x6f,
0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73,
0x65, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e,
0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43,
0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x69, 0x70, 0x64, 0x43,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x63, 0x69,
0x70, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68,
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x1a, 0x86, 0x03, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x12, 0x4e, 0x0a, 0x04, 0x63, 0x69, 0x70, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x38, 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, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x48, 0x00, 0x52, 0x04, 0x63, 0x69, 0x70,
0x64, 0x1a, 0x9e, 0x02, 0x0a, 0x04, 0x43, 0x49, 0x50, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61,
0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63,
0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16,
0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x83, 0x01, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x6c,
0x76, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x4f, 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, 0x2e, 0x41, 0x67, 0x65, 0x6e,
0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x2e, 0x52, 0x65,
0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x6c,
0x76, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x44, 0x0a, 0x16,
0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a,
0xf2, 0x02, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x50, 0x0a, 0x04, 0x64, 0x61, 0x74,
0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 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, 0x2e,
0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x0b, 0x63,
0x69, 0x70, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x42, 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, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x1a, 0x55, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e,
0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x0f, 0x43, 0x69, 0x70, 0x64, 0x53,
0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x70,
0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x1a, 0x87, 0x04, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12,
0x6a, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 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, 0x2e, 0x41,
0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x6f,
0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x72,
0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 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, 0x25, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x68, 0x74, 0x6d,
0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x73, 0x75, 0x6d,
0x6d, 0x61, 0x72, 0x79, 0x48, 0x74, 0x6d, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e,
0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12,
0x40, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x06, 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, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x72,
0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x6d,
0x6d, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x1a, 0x60, 0x0a, 0x11,
0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61,
0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x71,
0x0a, 0x0d, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x4a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x34, 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, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x50,
0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x22, 0x58, 0x0a, 0x07, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x13,
0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45,
0x5f, 0x45, 0x58, 0x45, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1b,
0x0a, 0x17, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x5f, 0x42, 0x42, 0x41, 0x47, 0x45, 0x4e,
0x54, 0x5f, 0x55, 0x54, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x02, 0x1a, 0x7d, 0x0a, 0x16, 0x45,
0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 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, 0x2e, 0x45,
0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x14, 0x41, 0x67,
0x65, 0x6e, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74,
0x61, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
0xe9, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45,
0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10,
0x00, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x5f,
0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x44, 0x45,
0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x45, 0x52,
0x49, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x55, 0x49,
0x4c, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x02, 0x12, 0x24, 0x0a,
0x20, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53,
0x4f, 0x4e, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x55,
0x4d, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e,
0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54,
0x45, 0x44, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45,
0x4e, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c,
0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x04, 0x10,
0x05, 0x1a, 0xb0, 0x04, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x22,
0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 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, 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, 0x5e, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x44, 0x6f, 0x67, 0x12, 0x22,
0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 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, 0xf7, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x44, 0x42, 0x12, 0x22, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0x8a, 0xc3, 0x1a, 0x02, 0x08, 0x02, 0x52, 0x08, 0x68, 0x6f,
0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61,
0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x62, 0x71, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74,
0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75,
0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x62, 0x71, 0x45, 0x78, 0x70,
0x6f, 0x72, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f,
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31,
0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a,
0x2e, 0x0a, 0x03, 0x4c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77,
0x65, 0x64, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a,
0x9a, 0x03, 0x0a, 0x07, 0x42, 0x42, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70,
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1b,
0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x72, 0x12, 0x3d, 0x0a, 0x19, 0x6b,
0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x67, 0x65, 0x72, 0x72,
0x69, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02,
0x18, 0x01, 0x52, 0x16, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47,
0x65, 0x72, 0x72, 0x69, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x6e,
0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 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, 0x42, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e,
0x70, 0x75, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0xcb,
0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x69, 0x70, 0x64,
0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x34, 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, 0x42, 0x41, 0x67,
0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x43, 0x49, 0x50, 0x44, 0x50, 0x61,
0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61,
0x67, 0x65, 0x73, 0x1a, 0x67, 0x0a, 0x0b, 0x43, 0x49, 0x50, 0x44, 0x50, 0x61, 0x63, 0x6b, 0x61,
0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x1a, 0x81, 0x02, 0x0a,
0x07, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 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, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x61, 0x73,
0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74,
0x61, 0x73, 0x6b, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 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, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65,
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_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes = make([]protoimpl.MessageInfo, 38)
var file_go_chromium_org_luci_buildbucket_proto_build_proto_goTypes = []interface{}{
(BuildInfra_Buildbucket_ExperimentReason)(0), // 0: buildbucket.v2.BuildInfra.Buildbucket.ExperimentReason
(BuildInfra_Buildbucket_Agent_Purpose)(0), // 1: buildbucket.v2.BuildInfra.Buildbucket.Agent.Purpose
(*Build)(nil), // 2: buildbucket.v2.Build
(*InputDataRef)(nil), // 3: buildbucket.v2.InputDataRef
(*ResolvedDataRef)(nil), // 4: buildbucket.v2.ResolvedDataRef
(*BuildInfra)(nil), // 5: buildbucket.v2.BuildInfra
(*Build_Input)(nil), // 6: buildbucket.v2.Build.Input
(*Build_Output)(nil), // 7: buildbucket.v2.Build.Output
(*Build_BuilderInfo)(nil), // 8: buildbucket.v2.Build.BuilderInfo
(*InputDataRef_CAS)(nil), // 9: buildbucket.v2.InputDataRef.CAS
(*InputDataRef_CIPD)(nil), // 10: buildbucket.v2.InputDataRef.CIPD
(*InputDataRef_CAS_Digest)(nil), // 11: buildbucket.v2.InputDataRef.CAS.Digest
(*InputDataRef_CIPD_PkgSpec)(nil), // 12: buildbucket.v2.InputDataRef.CIPD.PkgSpec
(*ResolvedDataRef_Timing)(nil), // 13: buildbucket.v2.ResolvedDataRef.Timing
(*ResolvedDataRef_CAS)(nil), // 14: buildbucket.v2.ResolvedDataRef.CAS
(*ResolvedDataRef_CIPD)(nil), // 15: buildbucket.v2.ResolvedDataRef.CIPD
(*ResolvedDataRef_CIPD_PkgSpec)(nil), // 16: buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec
(*BuildInfra_Buildbucket)(nil), // 17: buildbucket.v2.BuildInfra.Buildbucket
(*BuildInfra_Swarming)(nil), // 18: buildbucket.v2.BuildInfra.Swarming
(*BuildInfra_LogDog)(nil), // 19: buildbucket.v2.BuildInfra.LogDog
(*BuildInfra_Recipe)(nil), // 20: buildbucket.v2.BuildInfra.Recipe
(*BuildInfra_ResultDB)(nil), // 21: buildbucket.v2.BuildInfra.ResultDB
(*BuildInfra_Led)(nil), // 22: buildbucket.v2.BuildInfra.Led
(*BuildInfra_BBAgent)(nil), // 23: buildbucket.v2.BuildInfra.BBAgent
(*BuildInfra_Backend)(nil), // 24: buildbucket.v2.BuildInfra.Backend
(*BuildInfra_Buildbucket_Agent)(nil), // 25: buildbucket.v2.BuildInfra.Buildbucket.Agent
nil, // 26: buildbucket.v2.BuildInfra.Buildbucket.ExperimentReasonsEntry
nil, // 27: buildbucket.v2.BuildInfra.Buildbucket.AgentExecutableEntry
(*BuildInfra_Buildbucket_Agent_Source)(nil), // 28: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source
(*BuildInfra_Buildbucket_Agent_Input)(nil), // 29: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input
(*BuildInfra_Buildbucket_Agent_Output)(nil), // 30: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output
nil, // 31: buildbucket.v2.BuildInfra.Buildbucket.Agent.PurposesEntry
(*BuildInfra_Buildbucket_Agent_Source_CIPD)(nil), // 32: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD
nil, // 33: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD.ResolvedInstancesEntry
nil, // 34: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.DataEntry
nil, // 35: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.CipdSourceEntry
nil, // 36: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.ResolvedDataEntry
(*BuildInfra_Swarming_CacheEntry)(nil), // 37: buildbucket.v2.BuildInfra.Swarming.CacheEntry
(*BuildInfra_BBAgent_Input)(nil), // 38: buildbucket.v2.BuildInfra.BBAgent.Input
(*BuildInfra_BBAgent_Input_CIPDPackage)(nil), // 39: buildbucket.v2.BuildInfra.BBAgent.Input.CIPDPackage
(*BuilderID)(nil), // 40: buildbucket.v2.BuilderID
(*timestamppb.Timestamp)(nil), // 41: google.protobuf.Timestamp
(Status)(0), // 42: buildbucket.v2.Status
(Trinary)(0), // 43: buildbucket.v2.Trinary
(*StatusDetails)(nil), // 44: buildbucket.v2.StatusDetails
(*Step)(nil), // 45: buildbucket.v2.Step
(*StringPair)(nil), // 46: buildbucket.v2.StringPair
(*Executable)(nil), // 47: buildbucket.v2.Executable
(*durationpb.Duration)(nil), // 48: google.protobuf.Duration
(*structpb.Struct)(nil), // 49: google.protobuf.Struct
(*GitilesCommit)(nil), // 50: buildbucket.v2.GitilesCommit
(*GerritChange)(nil), // 51: buildbucket.v2.GerritChange
(*Log)(nil), // 52: buildbucket.v2.Log
(*RequestedDimension)(nil), // 53: buildbucket.v2.RequestedDimension
(*v1.BigQueryExport)(nil), // 54: luci.resultdb.v1.BigQueryExport
(*v1.HistoryOptions)(nil), // 55: luci.resultdb.v1.HistoryOptions
(*Task)(nil), // 56: buildbucket.v2.Task
(*CacheEntry)(nil), // 57: buildbucket.v2.CacheEntry
}
var file_go_chromium_org_luci_buildbucket_proto_build_proto_depIdxs = []int32{
40, // 0: buildbucket.v2.Build.builder:type_name -> buildbucket.v2.BuilderID
8, // 1: buildbucket.v2.Build.builder_info:type_name -> buildbucket.v2.Build.BuilderInfo
41, // 2: buildbucket.v2.Build.create_time:type_name -> google.protobuf.Timestamp
41, // 3: buildbucket.v2.Build.start_time:type_name -> google.protobuf.Timestamp
41, // 4: buildbucket.v2.Build.end_time:type_name -> google.protobuf.Timestamp
41, // 5: buildbucket.v2.Build.update_time:type_name -> google.protobuf.Timestamp
41, // 6: buildbucket.v2.Build.cancel_time:type_name -> google.protobuf.Timestamp
42, // 7: buildbucket.v2.Build.status:type_name -> buildbucket.v2.Status
43, // 8: buildbucket.v2.Build.critical:type_name -> buildbucket.v2.Trinary
44, // 9: buildbucket.v2.Build.status_details:type_name -> buildbucket.v2.StatusDetails
6, // 10: buildbucket.v2.Build.input:type_name -> buildbucket.v2.Build.Input
7, // 11: buildbucket.v2.Build.output:type_name -> buildbucket.v2.Build.Output
45, // 12: buildbucket.v2.Build.steps:type_name -> buildbucket.v2.Step
5, // 13: buildbucket.v2.Build.infra:type_name -> buildbucket.v2.BuildInfra
46, // 14: buildbucket.v2.Build.tags:type_name -> buildbucket.v2.StringPair
47, // 15: buildbucket.v2.Build.exe:type_name -> buildbucket.v2.Executable
48, // 16: buildbucket.v2.Build.scheduling_timeout:type_name -> google.protobuf.Duration
48, // 17: buildbucket.v2.Build.execution_timeout:type_name -> google.protobuf.Duration
48, // 18: buildbucket.v2.Build.grace_period:type_name -> google.protobuf.Duration
43, // 19: buildbucket.v2.Build.retriable:type_name -> buildbucket.v2.Trinary
9, // 20: buildbucket.v2.InputDataRef.cas:type_name -> buildbucket.v2.InputDataRef.CAS
10, // 21: buildbucket.v2.InputDataRef.cipd:type_name -> buildbucket.v2.InputDataRef.CIPD
14, // 22: buildbucket.v2.ResolvedDataRef.cas:type_name -> buildbucket.v2.ResolvedDataRef.CAS
15, // 23: buildbucket.v2.ResolvedDataRef.cipd:type_name -> buildbucket.v2.ResolvedDataRef.CIPD
17, // 24: buildbucket.v2.BuildInfra.buildbucket:type_name -> buildbucket.v2.BuildInfra.Buildbucket
18, // 25: buildbucket.v2.BuildInfra.swarming:type_name -> buildbucket.v2.BuildInfra.Swarming
19, // 26: buildbucket.v2.BuildInfra.logdog:type_name -> buildbucket.v2.BuildInfra.LogDog
20, // 27: buildbucket.v2.BuildInfra.recipe:type_name -> buildbucket.v2.BuildInfra.Recipe
21, // 28: buildbucket.v2.BuildInfra.resultdb:type_name -> buildbucket.v2.BuildInfra.ResultDB
23, // 29: buildbucket.v2.BuildInfra.bbagent:type_name -> buildbucket.v2.BuildInfra.BBAgent
24, // 30: buildbucket.v2.BuildInfra.backend:type_name -> buildbucket.v2.BuildInfra.Backend
22, // 31: buildbucket.v2.BuildInfra.led:type_name -> buildbucket.v2.BuildInfra.Led
49, // 32: buildbucket.v2.Build.Input.properties:type_name -> google.protobuf.Struct
50, // 33: buildbucket.v2.Build.Input.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit
51, // 34: buildbucket.v2.Build.Input.gerrit_changes:type_name -> buildbucket.v2.GerritChange
49, // 35: buildbucket.v2.Build.Output.properties:type_name -> google.protobuf.Struct
50, // 36: buildbucket.v2.Build.Output.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit
52, // 37: buildbucket.v2.Build.Output.logs:type_name -> buildbucket.v2.Log
42, // 38: buildbucket.v2.Build.Output.status:type_name -> buildbucket.v2.Status
44, // 39: buildbucket.v2.Build.Output.status_details:type_name -> buildbucket.v2.StatusDetails
11, // 40: buildbucket.v2.InputDataRef.CAS.digest:type_name -> buildbucket.v2.InputDataRef.CAS.Digest
12, // 41: buildbucket.v2.InputDataRef.CIPD.specs:type_name -> buildbucket.v2.InputDataRef.CIPD.PkgSpec
48, // 42: buildbucket.v2.ResolvedDataRef.Timing.fetch_duration:type_name -> google.protobuf.Duration
48, // 43: buildbucket.v2.ResolvedDataRef.Timing.install_duration:type_name -> google.protobuf.Duration
13, // 44: buildbucket.v2.ResolvedDataRef.CAS.timing:type_name -> buildbucket.v2.ResolvedDataRef.Timing
16, // 45: buildbucket.v2.ResolvedDataRef.CIPD.specs:type_name -> buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec
43, // 46: buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec.was_cached:type_name -> buildbucket.v2.Trinary
13, // 47: buildbucket.v2.ResolvedDataRef.CIPD.PkgSpec.timing:type_name -> buildbucket.v2.ResolvedDataRef.Timing
49, // 48: buildbucket.v2.BuildInfra.Buildbucket.requested_properties:type_name -> google.protobuf.Struct
53, // 49: buildbucket.v2.BuildInfra.Buildbucket.requested_dimensions:type_name -> buildbucket.v2.RequestedDimension
26, // 50: buildbucket.v2.BuildInfra.Buildbucket.experiment_reasons:type_name -> buildbucket.v2.BuildInfra.Buildbucket.ExperimentReasonsEntry
27, // 51: buildbucket.v2.BuildInfra.Buildbucket.agent_executable:type_name -> buildbucket.v2.BuildInfra.Buildbucket.AgentExecutableEntry
25, // 52: buildbucket.v2.BuildInfra.Buildbucket.agent:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent
53, // 53: buildbucket.v2.BuildInfra.Swarming.task_dimensions:type_name -> buildbucket.v2.RequestedDimension
46, // 54: buildbucket.v2.BuildInfra.Swarming.bot_dimensions:type_name -> buildbucket.v2.StringPair
37, // 55: buildbucket.v2.BuildInfra.Swarming.caches:type_name -> buildbucket.v2.BuildInfra.Swarming.CacheEntry
54, // 56: buildbucket.v2.BuildInfra.ResultDB.bq_exports:type_name -> luci.resultdb.v1.BigQueryExport
55, // 57: buildbucket.v2.BuildInfra.ResultDB.history_options:type_name -> luci.resultdb.v1.HistoryOptions
38, // 58: buildbucket.v2.BuildInfra.BBAgent.input:type_name -> buildbucket.v2.BuildInfra.BBAgent.Input
49, // 59: buildbucket.v2.BuildInfra.Backend.config:type_name -> google.protobuf.Struct
56, // 60: buildbucket.v2.BuildInfra.Backend.task:type_name -> buildbucket.v2.Task
57, // 61: buildbucket.v2.BuildInfra.Backend.caches:type_name -> buildbucket.v2.CacheEntry
53, // 62: buildbucket.v2.BuildInfra.Backend.task_dimensions:type_name -> buildbucket.v2.RequestedDimension
29, // 63: buildbucket.v2.BuildInfra.Buildbucket.Agent.input:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Input
30, // 64: buildbucket.v2.BuildInfra.Buildbucket.Agent.output:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Output
28, // 65: buildbucket.v2.BuildInfra.Buildbucket.Agent.source:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Source
31, // 66: buildbucket.v2.BuildInfra.Buildbucket.Agent.purposes:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.PurposesEntry
57, // 67: buildbucket.v2.BuildInfra.Buildbucket.Agent.cipd_client_cache:type_name -> buildbucket.v2.CacheEntry
57, // 68: buildbucket.v2.BuildInfra.Buildbucket.Agent.cipd_packages_cache:type_name -> buildbucket.v2.CacheEntry
0, // 69: buildbucket.v2.BuildInfra.Buildbucket.ExperimentReasonsEntry.value:type_name -> buildbucket.v2.BuildInfra.Buildbucket.ExperimentReason
4, // 70: buildbucket.v2.BuildInfra.Buildbucket.AgentExecutableEntry.value:type_name -> buildbucket.v2.ResolvedDataRef
32, // 71: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.cipd:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD
34, // 72: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.data:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.DataEntry
35, // 73: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.cipd_source:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.CipdSourceEntry
36, // 74: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.resolved_data:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.ResolvedDataEntry
42, // 75: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.status:type_name -> buildbucket.v2.Status
44, // 76: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.status_details:type_name -> buildbucket.v2.StatusDetails
48, // 77: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.total_duration:type_name -> google.protobuf.Duration
1, // 78: buildbucket.v2.BuildInfra.Buildbucket.Agent.PurposesEntry.value:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Purpose
33, // 79: buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD.resolved_instances:type_name -> buildbucket.v2.BuildInfra.Buildbucket.Agent.Source.CIPD.ResolvedInstancesEntry
3, // 80: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.DataEntry.value:type_name -> buildbucket.v2.InputDataRef
3, // 81: buildbucket.v2.BuildInfra.Buildbucket.Agent.Input.CipdSourceEntry.value:type_name -> buildbucket.v2.InputDataRef
4, // 82: buildbucket.v2.BuildInfra.Buildbucket.Agent.Output.ResolvedDataEntry.value:type_name -> buildbucket.v2.ResolvedDataRef
48, // 83: buildbucket.v2.BuildInfra.Swarming.CacheEntry.wait_for_warm_cache:type_name -> google.protobuf.Duration
39, // 84: buildbucket.v2.BuildInfra.BBAgent.Input.cipd_packages:type_name -> buildbucket.v2.BuildInfra.BBAgent.Input.CIPDPackage
85, // [85:85] is the sub-list for method output_type
85, // [85:85] is the sub-list for method input_type
85, // [85:85] is the sub-list for extension type_name
85, // [85:85] is the sub-list for extension extendee
0, // [0:85] 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_build_field_visibility_proto_init()
file_go_chromium_org_luci_buildbucket_proto_builder_common_proto_init()
file_go_chromium_org_luci_buildbucket_proto_common_proto_init()
file_go_chromium_org_luci_buildbucket_proto_field_option_proto_init()
file_go_chromium_org_luci_buildbucket_proto_step_proto_init()
file_go_chromium_org_luci_buildbucket_proto_task_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.(*InputDataRef); 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.(*ResolvedDataRef); 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.(*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[4].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[5].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[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Build_BuilderInfo); 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.(*InputDataRef_CAS); 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.(*InputDataRef_CIPD); 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.(*InputDataRef_CAS_Digest); 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[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*InputDataRef_CIPD_PkgSpec); 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[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResolvedDataRef_Timing); 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[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResolvedDataRef_CAS); 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[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResolvedDataRef_CIPD); 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[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResolvedDataRef_CIPD_PkgSpec); 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[15].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[16].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[17].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[18].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[19].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[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Led); 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[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_BBAgent); 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[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Backend); 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[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Buildbucket_Agent); 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[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Buildbucket_Agent_Source); 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[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Buildbucket_Agent_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[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Buildbucket_Agent_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[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_Buildbucket_Agent_Source_CIPD); 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[35].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
}
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_BBAgent_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[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildInfra_BBAgent_Input_CIPDPackage); 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].OneofWrappers = []interface{}{
(*InputDataRef_Cas)(nil),
(*InputDataRef_Cipd)(nil),
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[2].OneofWrappers = []interface{}{
(*ResolvedDataRef_Cas)(nil),
(*ResolvedDataRef_Cipd)(nil),
}
file_go_chromium_org_luci_buildbucket_proto_build_proto_msgTypes[26].OneofWrappers = []interface{}{
(*BuildInfra_Buildbucket_Agent_Source_Cipd)(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: 2,
NumMessages: 38,
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,
EnumInfos: file_go_chromium_org_luci_buildbucket_proto_build_proto_enumTypes,
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
}