| // 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/common.proto |
| |
| package buildbucketpb |
| |
| import ( |
| _ "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" |
| 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) |
| ) |
| |
| // Status of a build or a step. |
| type Status int32 |
| |
| const ( |
| // Unspecified state. Meaning depends on the context. |
| Status_STATUS_UNSPECIFIED Status = 0 |
| // Build was scheduled, but did not start or end yet. |
| Status_SCHEDULED Status = 1 |
| // Build/step has started. |
| Status_STARTED Status = 2 |
| // A union of all terminal statuses. |
| // Can be used in BuildPredicate.status. |
| // A concrete build/step cannot have this status. |
| // Can be used as a bitmask to check that a build/step ended. |
| Status_ENDED_MASK Status = 4 |
| // A build/step ended successfully. |
| // This is a terminal status. It may not transition to another status. |
| Status_SUCCESS Status = 12 // 8 | ENDED |
| // A build/step ended unsuccessfully due to its Build.Input, |
| // e.g. tests failed, and NOT due to a build infrastructure failure. |
| // This is a terminal status. It may not transition to another status. |
| Status_FAILURE Status = 20 // 16 | ENDED |
| // A build/step ended unsuccessfully due to a failure independent of the |
| // input, e.g. swarming failed, not enough capacity or the recipe was unable |
| // to read the patch from gerrit. |
| // start_time is not required for this status. |
| // This is a terminal status. It may not transition to another status. |
| Status_INFRA_FAILURE Status = 36 // 32 | ENDED |
| // A build was cancelled explicitly, e.g. via an RPC. |
| // This is a terminal status. It may not transition to another status. |
| Status_CANCELED Status = 68 // 64 | ENDED |
| ) |
| |
| // Enum value maps for Status. |
| var ( |
| Status_name = map[int32]string{ |
| 0: "STATUS_UNSPECIFIED", |
| 1: "SCHEDULED", |
| 2: "STARTED", |
| 4: "ENDED_MASK", |
| 12: "SUCCESS", |
| 20: "FAILURE", |
| 36: "INFRA_FAILURE", |
| 68: "CANCELED", |
| } |
| Status_value = map[string]int32{ |
| "STATUS_UNSPECIFIED": 0, |
| "SCHEDULED": 1, |
| "STARTED": 2, |
| "ENDED_MASK": 4, |
| "SUCCESS": 12, |
| "FAILURE": 20, |
| "INFRA_FAILURE": 36, |
| "CANCELED": 68, |
| } |
| ) |
| |
| func (x Status) Enum() *Status { |
| p := new(Status) |
| *p = x |
| return p |
| } |
| |
| func (x Status) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Status) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (Status) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[0] |
| } |
| |
| func (x Status) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Status.Descriptor instead. |
| func (Status) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{0} |
| } |
| |
| // A boolean with an undefined value. |
| type Trinary int32 |
| |
| const ( |
| Trinary_UNSET Trinary = 0 |
| Trinary_YES Trinary = 1 |
| Trinary_NO Trinary = 2 |
| ) |
| |
| // Enum value maps for Trinary. |
| var ( |
| Trinary_name = map[int32]string{ |
| 0: "UNSET", |
| 1: "YES", |
| 2: "NO", |
| } |
| Trinary_value = map[string]int32{ |
| "UNSET": 0, |
| "YES": 1, |
| "NO": 2, |
| } |
| ) |
| |
| func (x Trinary) Enum() *Trinary { |
| p := new(Trinary) |
| *p = x |
| return p |
| } |
| |
| func (x Trinary) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Trinary) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (Trinary) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[1] |
| } |
| |
| func (x Trinary) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Trinary.Descriptor instead. |
| func (Trinary) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1} |
| } |
| |
| // Compression method used in the corresponding data. |
| type Compression int32 |
| |
| const ( |
| Compression_ZLIB Compression = 0 |
| Compression_ZSTD Compression = 1 |
| ) |
| |
| // Enum value maps for Compression. |
| var ( |
| Compression_name = map[int32]string{ |
| 0: "ZLIB", |
| 1: "ZSTD", |
| } |
| Compression_value = map[string]int32{ |
| "ZLIB": 0, |
| "ZSTD": 1, |
| } |
| ) |
| |
| func (x Compression) Enum() *Compression { |
| p := new(Compression) |
| *p = x |
| return p |
| } |
| |
| func (x Compression) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Compression) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (Compression) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes[2] |
| } |
| |
| func (x Compression) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Compression.Descriptor instead. |
| func (Compression) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{2} |
| } |
| |
| // An executable to run when the build is ready to start. |
| // |
| // Please refer to go.chromium.org/luci/luciexe for the protocol this executable |
| // is expected to implement. |
| // |
| // In addition to the "Host Application" responsibilities listed there, |
| // buildbucket will also ensure that $CWD points to an empty directory when it |
| // starts the build. |
| type Executable struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The CIPD package containing the executable. |
| // |
| // See the `cmd` field below for how the executable will be located within the |
| // package. |
| CipdPackage string `protobuf:"bytes,1,opt,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"` |
| // The CIPD version to fetch. |
| // |
| // Optional. If omitted, this defaults to `latest`. |
| CipdVersion string `protobuf:"bytes,2,opt,name=cipd_version,json=cipdVersion,proto3" json:"cipd_version,omitempty"` |
| // The command to invoke within the package. |
| // |
| // The 0th argument is taken as relative to the cipd_package root (a.k.a. |
| // BBAgentArgs.payload_path), so "foo" would invoke the binary called "foo" in |
| // the root of the package. On Windows, this will automatically look |
| // first for ".exe" and ".bat" variants. Similarly, "subdir/foo" would |
| // look for "foo" in "subdir" of the CIPD package. |
| // |
| // The other arguments are passed verbatim to the executable. |
| // |
| // The 'build.proto' binary message will always be passed to stdin, even when |
| // this command has arguments (see go.chromium.org/luci/luciexe). |
| // |
| // RECOMMENDATION: It's advised to rely on the build.proto's Input.Properties |
| // field for passing task-specific data. Properties are JSON-typed and can be |
| // modeled with a protobuf (using JSONPB). However, supplying additional args |
| // can be useful to, e.g., increase logging verbosity, or similar |
| // 'system level' settings within the binary. |
| // |
| // Optional. If omitted, defaults to `['luciexe']`. |
| Cmd []string `protobuf:"bytes,3,rep,name=cmd,proto3" json:"cmd,omitempty"` |
| // Wrapper is a command and its args which will be used to 'wrap' the |
| // execution of `cmd`. |
| // Given: |
| // |
| // wrapper = ['/some/exe', '--arg'] |
| // cmd = ['my_exe', '--other-arg'] |
| // |
| // Buildbucket's agent will invoke |
| // |
| // /some/exe --arg -- /path/to/task/root/dir/my_exe --other-arg |
| // |
| // Note that '--' is always inserted between the wrapper and the target |
| // cmd |
| // |
| // The wrapper program MUST maintain all the invariants specified in |
| // go.chromium.org/luci/luciexe (likely by passing-through |
| // most of this responsibility to `cmd`). |
| // |
| // wrapper[0] MAY be an absolute path. If https://pkg.go.dev/path/filepath#IsAbs |
| // returns `true` for wrapper[0], it will be interpreted as an absolute |
| // path. In this case, it is your responsibility to ensure that the target |
| // binary is correctly deployed an any machine where the Build might run |
| // (by whatever means you use to prepare/adjust your system image). Failure to do |
| // so will cause the build to terminate with INFRA_FAILURE. |
| // |
| // If wrapper[0] is non-absolute, but does not contain a path separator, |
| // it will be looked for in $PATH (and the same rules apply for |
| // pre-distribution as in the absolute path case). |
| // |
| // If wrapper[0] begins with a "./" (or ".\") or contains a path separator |
| // anywhere, it will be considered relative to the task root. |
| // |
| // Example wrapper[0]: |
| // |
| // Absolute path (*nix): /some/prog |
| // Absolute path (Windows): C:\some\prog.exe |
| // $PATH or %PATH% lookup: prog |
| // task-relative (*nix): ./prog ($taskRoot/prog) |
| // task-relative (*nix): dir/prog ($taskRoot/dir/prog) |
| // task-relative (Windows): .\prog.exe ($taskRoot\\prog.exe) |
| // task-relative (Windows): dir\prog.exe ($taskRoot\\dir\\prog.exe) |
| Wrapper []string `protobuf:"bytes,4,rep,name=wrapper,proto3" json:"wrapper,omitempty"` |
| } |
| |
| func (x *Executable) Reset() { |
| *x = Executable{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Executable) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Executable) ProtoMessage() {} |
| |
| func (x *Executable) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 Executable.ProtoReflect.Descriptor instead. |
| func (*Executable) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *Executable) GetCipdPackage() string { |
| if x != nil { |
| return x.CipdPackage |
| } |
| return "" |
| } |
| |
| func (x *Executable) GetCipdVersion() string { |
| if x != nil { |
| return x.CipdVersion |
| } |
| return "" |
| } |
| |
| func (x *Executable) GetCmd() []string { |
| if x != nil { |
| return x.Cmd |
| } |
| return nil |
| } |
| |
| func (x *Executable) GetWrapper() []string { |
| if x != nil { |
| return x.Wrapper |
| } |
| return nil |
| } |
| |
| // Machine-readable details of a status. |
| // Human-readble details are present in a sibling summary_markdown field. |
| type StatusDetails struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If set, indicates that the failure was due to a resource exhaustion / quota |
| // denial. |
| // Applicable in FAILURE and INFRA_FAILURE statuses. |
| ResourceExhaustion *StatusDetails_ResourceExhaustion `protobuf:"bytes,3,opt,name=resource_exhaustion,json=resourceExhaustion,proto3" json:"resource_exhaustion,omitempty"` |
| // If set, indicates that the build ended due to the expiration_timeout or |
| // scheduling_timeout set for the build. |
| // |
| // Applicable in all final statuses. |
| // |
| // SUCCESS+timeout would indicate a successful recovery from a timeout signal |
| // during the build's grace_period. |
| Timeout *StatusDetails_Timeout `protobuf:"bytes,4,opt,name=timeout,proto3" json:"timeout,omitempty"` |
| } |
| |
| func (x *StatusDetails) Reset() { |
| *x = StatusDetails{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StatusDetails) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StatusDetails) ProtoMessage() {} |
| |
| func (x *StatusDetails) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 StatusDetails.ProtoReflect.Descriptor instead. |
| func (*StatusDetails) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *StatusDetails) GetResourceExhaustion() *StatusDetails_ResourceExhaustion { |
| if x != nil { |
| return x.ResourceExhaustion |
| } |
| return nil |
| } |
| |
| func (x *StatusDetails) GetTimeout() *StatusDetails_Timeout { |
| if x != nil { |
| return x.Timeout |
| } |
| return nil |
| } |
| |
| // A named log of a step or build. |
| type Log struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Log name, standard ("stdout", "stderr") or custom (e.g. "json.output"). |
| // Unique within the containing message (step or build). |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // URL of a Human-readable page that displays log contents. |
| ViewUrl string `protobuf:"bytes,2,opt,name=view_url,json=viewUrl,proto3" json:"view_url,omitempty"` |
| // URL of the log content. |
| // As of 2018-09-06, the only supported scheme is "logdog". |
| // Typically it has form |
| // "logdog://<host>/<project>/<prefix>/+/<stream_name>". |
| // See also |
| // https://godoc.org/go.chromium.org/luci/logdog/common/types#ParseURL |
| Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` |
| } |
| |
| func (x *Log) Reset() { |
| *x = Log{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Log) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Log) ProtoMessage() {} |
| |
| func (x *Log) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 Log.ProtoReflect.Descriptor instead. |
| func (*Log) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *Log) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Log) GetViewUrl() string { |
| if x != nil { |
| return x.ViewUrl |
| } |
| return "" |
| } |
| |
| func (x *Log) GetUrl() string { |
| if x != nil { |
| return x.Url |
| } |
| return "" |
| } |
| |
| // A Gerrit patchset. |
| type GerritChange struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Gerrit hostname, e.g. "chromium-review.googlesource.com". |
| Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` |
| // Gerrit project, e.g. "chromium/src". |
| Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` |
| // Change number, e.g. 12345. |
| Change int64 `protobuf:"varint,3,opt,name=change,proto3" json:"change,omitempty"` |
| // Patch set number, e.g. 1. |
| Patchset int64 `protobuf:"varint,4,opt,name=patchset,proto3" json:"patchset,omitempty"` |
| } |
| |
| func (x *GerritChange) Reset() { |
| *x = GerritChange{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GerritChange) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GerritChange) ProtoMessage() {} |
| |
| func (x *GerritChange) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 GerritChange.ProtoReflect.Descriptor instead. |
| func (*GerritChange) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *GerritChange) GetHost() string { |
| if x != nil { |
| return x.Host |
| } |
| return "" |
| } |
| |
| func (x *GerritChange) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *GerritChange) GetChange() int64 { |
| if x != nil { |
| return x.Change |
| } |
| return 0 |
| } |
| |
| func (x *GerritChange) GetPatchset() int64 { |
| if x != nil { |
| return x.Patchset |
| } |
| return 0 |
| } |
| |
| // A landed Git commit hosted on Gitiles. |
| type GitilesCommit struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Gitiles hostname, e.g. "chromium.googlesource.com". |
| Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` |
| // Repository name on the host, e.g. "chromium/src". |
| Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` |
| // Commit HEX SHA1. |
| Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` |
| // Commit ref, e.g. "refs/heads/master". |
| // NOT a branch name: if specified, must start with "refs/". |
| // If id is set, ref SHOULD also be set, so that git clients can |
| // know how to obtain the commit by id. |
| Ref string `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"` |
| // Defines a total order of commits on the ref. Requires ref field. |
| // Typically 1-based, monotonically increasing, contiguous integer |
| // defined by a Gerrit plugin, goto.google.com/git-numberer. |
| // TODO(tandrii): make it a public doc. |
| Position uint32 `protobuf:"varint,5,opt,name=position,proto3" json:"position,omitempty"` |
| } |
| |
| func (x *GitilesCommit) Reset() { |
| *x = GitilesCommit{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GitilesCommit) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GitilesCommit) ProtoMessage() {} |
| |
| func (x *GitilesCommit) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 GitilesCommit.ProtoReflect.Descriptor instead. |
| func (*GitilesCommit) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *GitilesCommit) GetHost() string { |
| if x != nil { |
| return x.Host |
| } |
| return "" |
| } |
| |
| func (x *GitilesCommit) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *GitilesCommit) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *GitilesCommit) GetRef() string { |
| if x != nil { |
| return x.Ref |
| } |
| return "" |
| } |
| |
| func (x *GitilesCommit) GetPosition() uint32 { |
| if x != nil { |
| return x.Position |
| } |
| return 0 |
| } |
| |
| // A key-value pair of strings. |
| type StringPair struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` |
| Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
| } |
| |
| func (x *StringPair) Reset() { |
| *x = StringPair{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StringPair) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StringPair) ProtoMessage() {} |
| |
| func (x *StringPair) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 StringPair.ProtoReflect.Descriptor instead. |
| func (*StringPair) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *StringPair) GetKey() string { |
| if x != nil { |
| return x.Key |
| } |
| return "" |
| } |
| |
| func (x *StringPair) GetValue() string { |
| if x != nil { |
| return x.Value |
| } |
| return "" |
| } |
| |
| // Half-open time range. |
| type TimeRange struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Inclusive lower boundary. Optional. |
| StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` |
| // Exclusive upper boundary. Optional. |
| EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` |
| } |
| |
| func (x *TimeRange) Reset() { |
| *x = TimeRange{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TimeRange) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TimeRange) ProtoMessage() {} |
| |
| func (x *TimeRange) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 TimeRange.ProtoReflect.Descriptor instead. |
| func (*TimeRange) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *TimeRange) GetStartTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.StartTime |
| } |
| return nil |
| } |
| |
| func (x *TimeRange) GetEndTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EndTime |
| } |
| return nil |
| } |
| |
| // A requested dimension. Looks like StringPair, but also has an expiration. |
| type RequestedDimension struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` |
| Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
| // If set, ignore this dimension after this duration. |
| Expiration *durationpb.Duration `protobuf:"bytes,3,opt,name=expiration,proto3" json:"expiration,omitempty"` |
| } |
| |
| func (x *RequestedDimension) Reset() { |
| *x = RequestedDimension{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RequestedDimension) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RequestedDimension) ProtoMessage() {} |
| |
| func (x *RequestedDimension) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 RequestedDimension.ProtoReflect.Descriptor instead. |
| func (*RequestedDimension) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *RequestedDimension) GetKey() string { |
| if x != nil { |
| return x.Key |
| } |
| return "" |
| } |
| |
| func (x *RequestedDimension) GetValue() string { |
| if x != nil { |
| return x.Value |
| } |
| return "" |
| } |
| |
| func (x *RequestedDimension) GetExpiration() *durationpb.Duration { |
| if x != nil { |
| return x.Expiration |
| } |
| return nil |
| } |
| |
| // This message is a duplicate of Build.Infra.Swarming.CacheEntry, |
| // however we will be moving from hardcoded swarming -> task backends. |
| // This message will remain as the desired CacheEntry and eventually |
| // Build.Infra.Swarming will be deprecated, so this will remain. |
| // |
| // 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. |
| // |
| // 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. |
| // |
| // To share a builder cache among multiple builders, it can be overridden: |
| // |
| // builders { |
| // name: "a" |
| // caches { |
| // path: "builder" |
| // name: "my_shared_cache" |
| // } |
| // } |
| // builders { |
| // name: "b" |
| // caches { |
| // path: "builder" |
| // name: "my_shared_cache" |
| // } |
| // } |
| // |
| // Builders "a" and "b" share their builder cache. If an "a" build ran on a |
| // bot and left some files in the builder cache and then a "b" build runs on |
| // the same bot, the same files will be available in the builder cache. |
| type 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 *CacheEntry) Reset() { |
| *x = CacheEntry{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CacheEntry) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CacheEntry) ProtoMessage() {} |
| |
| func (x *CacheEntry) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 CacheEntry.ProtoReflect.Descriptor instead. |
| func (*CacheEntry) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *CacheEntry) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *CacheEntry) GetPath() string { |
| if x != nil { |
| return x.Path |
| } |
| return "" |
| } |
| |
| func (x *CacheEntry) GetWaitForWarmCache() *durationpb.Duration { |
| if x != nil { |
| return x.WaitForWarmCache |
| } |
| return nil |
| } |
| |
| func (x *CacheEntry) GetEnvVar() string { |
| if x != nil { |
| return x.EnvVar |
| } |
| return "" |
| } |
| |
| type HealthStatus struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A numeric score for a builder's health. |
| // The scores must respect the following: |
| // - 0: Unknown status |
| // - 1: The worst possible health |
| // e.g. |
| // - all bots are dead. |
| // - every single build has ended in INFRA_FAILURE in the configured |
| // time period. |
| // - 10: Completely healthy. |
| // e.g. Every single build has ended in SUCCESS or CANCELLED in the |
| // configured time period. |
| // |
| // Reasoning for scores from 2 to 9 are to be configured by the builder owner. |
| // Since each set of metrics used to calculate the health score can vary, the |
| // builder owners must provide the score and reasoning (using the description |
| // field). This allows for complicated metric calculation while preserving a |
| // binary solution for less complex forms of metric calculation. |
| HealthScore int64 `protobuf:"varint,1,opt,name=health_score,json=healthScore,proto3" json:"health_score,omitempty"` |
| // A map of metric label to value. This will allow milo to display the metrics |
| // used to construct the health score. There is no generic set of metrics for |
| // this since each set of metrics can vary from team to team. |
| // |
| // Buildbucket will not use this information to calculate the health score. |
| // These metrics are for display only. |
| HealthMetrics map[string]float32 `protobuf:"bytes,2,rep,name=health_metrics,json=healthMetrics,proto3" json:"health_metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` |
| // A human readable summary of why the health is the way it is, without |
| // the user having to go to the dashboard to find it themselves. |
| // |
| // E.g. |
| // |
| // "the p90 pending time has been greater than 50 minutes for at least 3 |
| // of the last 7 days" |
| Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` |
| // Mapping of username domain to clickable link for documentation on the health |
| // metrics and how they were calculated. |
| // |
| // The empty domain value will be used as a fallback for anonymous users, or |
| // if the user identity domain doesn't have a matching entry in this map. |
| // |
| // If linking an internal google link (say g3doc), use a go-link instead of a |
| // raw url. |
| DocLinks map[string]string `protobuf:"bytes,4,rep,name=doc_links,json=docLinks,proto3" json:"doc_links,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Mapping of username domain to clickable link for data visualization or |
| // dashboards for the health metrics. |
| // |
| // Similar to doc_links, the empty domain value will be used as a fallback for |
| // anonymous users, or if the user identity domain doesn't have a matching |
| // entry in this map. |
| // |
| // If linking an internal google link (say g3doc), use a go-link instead of a |
| // raw url. |
| DataLinks map[string]string `protobuf:"bytes,5,rep,name=data_links,json=dataLinks,proto3" json:"data_links,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Entity that reported the health status, A luci-auth identity. |
| // E.g. |
| // |
| // anonymous:anonymous, user:someuser@example.com, project:chromeos |
| // |
| // Set by Buildbucket. Output only. |
| Reporter string `protobuf:"bytes,6,opt,name=reporter,proto3" json:"reporter,omitempty"` |
| // Set by Buildbucket. Output only. |
| ReportedTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=reported_time,json=reportedTime,proto3" json:"reported_time,omitempty"` |
| // A contact email for the builder's owning team, for the purpose of fixing builder health issues |
| // See contact_team_email field in project_config.BuilderConfig |
| ContactTeamEmail string `protobuf:"bytes,8,opt,name=contact_team_email,json=contactTeamEmail,proto3" json:"contact_team_email,omitempty"` |
| } |
| |
| func (x *HealthStatus) Reset() { |
| *x = HealthStatus{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *HealthStatus) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*HealthStatus) ProtoMessage() {} |
| |
| func (x *HealthStatus) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 HealthStatus.ProtoReflect.Descriptor instead. |
| func (*HealthStatus) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *HealthStatus) GetHealthScore() int64 { |
| if x != nil { |
| return x.HealthScore |
| } |
| return 0 |
| } |
| |
| func (x *HealthStatus) GetHealthMetrics() map[string]float32 { |
| if x != nil { |
| return x.HealthMetrics |
| } |
| return nil |
| } |
| |
| func (x *HealthStatus) GetDescription() string { |
| if x != nil { |
| return x.Description |
| } |
| return "" |
| } |
| |
| func (x *HealthStatus) GetDocLinks() map[string]string { |
| if x != nil { |
| return x.DocLinks |
| } |
| return nil |
| } |
| |
| func (x *HealthStatus) GetDataLinks() map[string]string { |
| if x != nil { |
| return x.DataLinks |
| } |
| return nil |
| } |
| |
| func (x *HealthStatus) GetReporter() string { |
| if x != nil { |
| return x.Reporter |
| } |
| return "" |
| } |
| |
| func (x *HealthStatus) GetReportedTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.ReportedTime |
| } |
| return nil |
| } |
| |
| func (x *HealthStatus) GetContactTeamEmail() string { |
| if x != nil { |
| return x.ContactTeamEmail |
| } |
| return "" |
| } |
| |
| type StatusDetails_ResourceExhaustion struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *StatusDetails_ResourceExhaustion) Reset() { |
| *x = StatusDetails_ResourceExhaustion{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StatusDetails_ResourceExhaustion) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StatusDetails_ResourceExhaustion) ProtoMessage() {} |
| |
| func (x *StatusDetails_ResourceExhaustion) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 StatusDetails_ResourceExhaustion.ProtoReflect.Descriptor instead. |
| func (*StatusDetails_ResourceExhaustion) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1, 0} |
| } |
| |
| type StatusDetails_Timeout struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *StatusDetails_Timeout) Reset() { |
| *x = StatusDetails_Timeout{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StatusDetails_Timeout) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StatusDetails_Timeout) ProtoMessage() {} |
| |
| func (x *StatusDetails_Timeout) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_buildbucket_proto_common_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 StatusDetails_Timeout.ProtoReflect.Descriptor instead. |
| func (*StatusDetails_Timeout) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP(), []int{1, 1} |
| } |
| |
| var File_go_chromium_org_luci_buildbucket_proto_common_proto protoreflect.FileDescriptor |
| |
| var file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc = []byte{ |
| 0x0a, 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, 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, 0x22, 0x7e, 0x0a, 0x0a, 0x45, 0x78, 0x65, 0x63, 0x75, |
| 0x74, 0x61, 0x62, 0x6c, 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, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, |
| 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, |
| 0x63, 0x69, 0x70, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x63, |
| 0x6d, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x18, 0x0a, |
| 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, |
| 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x61, 0x0a, 0x13, 0x72, 0x65, 0x73, |
| 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 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, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, |
| 0x68, 0x61, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, |
| 0x63, 0x65, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x07, |
| 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 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, 0x2e, 0x54, 0x69, 0x6d, |
| 0x65, 0x6f, 0x75, 0x74, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x14, 0x0a, |
| 0x12, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, |
| 0x69, 0x6f, 0x6e, 0x1a, 0x09, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x04, |
| 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x46, 0x0a, 0x03, 0x4c, 0x6f, |
| 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x75, 0x72, |
| 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, |
| 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, |
| 0x72, 0x6c, 0x22, 0x70, 0x0a, 0x0c, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, |
| 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 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, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, |
| 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x63, |
| 0x68, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x74, 0x63, |
| 0x68, 0x73, 0x65, 0x74, 0x22, 0x7b, 0x0a, 0x0d, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, |
| 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 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, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, |
| 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, |
| 0x6e, 0x22, 0x34, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 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, 0x22, 0x7d, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x52, |
| 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, |
| 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, |
| 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, |
| 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, |
| 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x77, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 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, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 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, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, |
| 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, 0x22, 0x92, 0x05, 0x0a, 0x0c, 0x48, 0x65, |
| 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, |
| 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, |
| 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x56, 0x0a, |
| 0x0e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, |
| 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, |
| 0x74, 0x75, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, |
| 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d, 0x65, |
| 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, |
| 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, |
| 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x5f, 0x6c, |
| 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x6c, |
| 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x44, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, |
| 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, |
| 0x12, 0x4a, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x05, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, |
| 0x79, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x08, |
| 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, |
| 0xe0, 0x41, 0x03, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x44, 0x0a, |
| 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 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, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x54, |
| 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x74, |
| 0x65, 0x61, 0x6d, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x45, 0x6d, 0x61, 0x69, |
| 0x6c, 0x1a, 0x40, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, |
| 0x63, 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, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, |
| 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 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, |
| 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 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, 0x2a, 0x87, |
| 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, |
| 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, |
| 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, |
| 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, |
| 0x0a, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x04, 0x12, 0x0b, 0x0a, |
| 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, |
| 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x14, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x46, 0x52, 0x41, |
| 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x24, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, |
| 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x44, 0x2a, 0x25, 0x0a, 0x07, 0x54, 0x72, 0x69, 0x6e, |
| 0x61, 0x72, 0x79, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x07, |
| 0x0a, 0x03, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x4f, 0x10, 0x02, 0x2a, |
| 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x08, |
| 0x0a, 0x04, 0x5a, 0x4c, 0x49, 0x42, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x53, 0x54, 0x44, |
| 0x10, 0x01, 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_common_proto_rawDescOnce sync.Once |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc |
| ) |
| |
| func file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescGZIP() []byte { |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescOnce.Do(func() { |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData) |
| }) |
| return file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDescData |
| } |
| |
| var file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes = make([]protoimpl.EnumInfo, 3) |
| var file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes = make([]protoimpl.MessageInfo, 15) |
| var file_go_chromium_org_luci_buildbucket_proto_common_proto_goTypes = []interface{}{ |
| (Status)(0), // 0: buildbucket.v2.Status |
| (Trinary)(0), // 1: buildbucket.v2.Trinary |
| (Compression)(0), // 2: buildbucket.v2.Compression |
| (*Executable)(nil), // 3: buildbucket.v2.Executable |
| (*StatusDetails)(nil), // 4: buildbucket.v2.StatusDetails |
| (*Log)(nil), // 5: buildbucket.v2.Log |
| (*GerritChange)(nil), // 6: buildbucket.v2.GerritChange |
| (*GitilesCommit)(nil), // 7: buildbucket.v2.GitilesCommit |
| (*StringPair)(nil), // 8: buildbucket.v2.StringPair |
| (*TimeRange)(nil), // 9: buildbucket.v2.TimeRange |
| (*RequestedDimension)(nil), // 10: buildbucket.v2.RequestedDimension |
| (*CacheEntry)(nil), // 11: buildbucket.v2.CacheEntry |
| (*HealthStatus)(nil), // 12: buildbucket.v2.HealthStatus |
| (*StatusDetails_ResourceExhaustion)(nil), // 13: buildbucket.v2.StatusDetails.ResourceExhaustion |
| (*StatusDetails_Timeout)(nil), // 14: buildbucket.v2.StatusDetails.Timeout |
| nil, // 15: buildbucket.v2.HealthStatus.HealthMetricsEntry |
| nil, // 16: buildbucket.v2.HealthStatus.DocLinksEntry |
| nil, // 17: buildbucket.v2.HealthStatus.DataLinksEntry |
| (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp |
| (*durationpb.Duration)(nil), // 19: google.protobuf.Duration |
| } |
| var file_go_chromium_org_luci_buildbucket_proto_common_proto_depIdxs = []int32{ |
| 13, // 0: buildbucket.v2.StatusDetails.resource_exhaustion:type_name -> buildbucket.v2.StatusDetails.ResourceExhaustion |
| 14, // 1: buildbucket.v2.StatusDetails.timeout:type_name -> buildbucket.v2.StatusDetails.Timeout |
| 18, // 2: buildbucket.v2.TimeRange.start_time:type_name -> google.protobuf.Timestamp |
| 18, // 3: buildbucket.v2.TimeRange.end_time:type_name -> google.protobuf.Timestamp |
| 19, // 4: buildbucket.v2.RequestedDimension.expiration:type_name -> google.protobuf.Duration |
| 19, // 5: buildbucket.v2.CacheEntry.wait_for_warm_cache:type_name -> google.protobuf.Duration |
| 15, // 6: buildbucket.v2.HealthStatus.health_metrics:type_name -> buildbucket.v2.HealthStatus.HealthMetricsEntry |
| 16, // 7: buildbucket.v2.HealthStatus.doc_links:type_name -> buildbucket.v2.HealthStatus.DocLinksEntry |
| 17, // 8: buildbucket.v2.HealthStatus.data_links:type_name -> buildbucket.v2.HealthStatus.DataLinksEntry |
| 18, // 9: buildbucket.v2.HealthStatus.reported_time:type_name -> google.protobuf.Timestamp |
| 10, // [10:10] is the sub-list for method output_type |
| 10, // [10:10] is the sub-list for method input_type |
| 10, // [10:10] is the sub-list for extension type_name |
| 10, // [10:10] is the sub-list for extension extendee |
| 0, // [0:10] is the sub-list for field type_name |
| } |
| |
| func init() { file_go_chromium_org_luci_buildbucket_proto_common_proto_init() } |
| func file_go_chromium_org_luci_buildbucket_proto_common_proto_init() { |
| if File_go_chromium_org_luci_buildbucket_proto_common_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Executable); 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_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StatusDetails); 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_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Log); 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_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GerritChange); 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_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GitilesCommit); 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_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StringPair); 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_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TimeRange); 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_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RequestedDimension); 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_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*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_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*HealthStatus); 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_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StatusDetails_ResourceExhaustion); 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_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StatusDetails_Timeout); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc, |
| NumEnums: 3, |
| NumMessages: 15, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_go_chromium_org_luci_buildbucket_proto_common_proto_goTypes, |
| DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_common_proto_depIdxs, |
| EnumInfos: file_go_chromium_org_luci_buildbucket_proto_common_proto_enumTypes, |
| MessageInfos: file_go_chromium_org_luci_buildbucket_proto_common_proto_msgTypes, |
| }.Build() |
| File_go_chromium_org_luci_buildbucket_proto_common_proto = out.File |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_rawDesc = nil |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_goTypes = nil |
| file_go_chromium_org_luci_buildbucket_proto_common_proto_depIdxs = nil |
| } |