| // Copyright 2021 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.27.1 |
| // protoc v3.17.3 |
| // source: go.chromium.org/luci/cv/internal/tryjob/storage.proto |
| |
| package tryjob |
| |
| import ( |
| proto "go.chromium.org/luci/buildbucket/proto" |
| v2 "go.chromium.org/luci/cv/api/config/v2" |
| v1 "go.chromium.org/luci/cv/api/recipe/v1" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| 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 is a high level status of a Tryjob from CV implementation PoV. |
| type Status int32 |
| |
| const ( |
| // STATUS_UNSPECIFIED is never used. |
| Status_STATUS_UNSPECIFIED Status = 0 |
| // PENDING means Tryjob is being triggered by CV. |
| // |
| // *may* not yet have an external ID. |
| // *must* have no Result. |
| Status_PENDING Status = 1 |
| // TRIGGERED means Tryjob was triggered. |
| // |
| // *must* have an External ID. |
| // *may* have been triggered not by CV, but by another user, service, etc. |
| // *may* have a Result, which *may* still change. |
| Status_TRIGGERED Status = 2 |
| // ENDED means the Tryjob completed. Final status. |
| // |
| // *must* have an External ID. |
| // *must* have a Result, whose Status is not UNKNOWN. |
| Status_ENDED Status = 3 |
| // CANCELLED means Tryjob was cancelled by CV. Final status. |
| // |
| // *must* have an External ID. |
| // *must* have no Result. |
| Status_CANCELLED Status = 4 |
| // UNTRIGGERED means Tryjob was never triggered. Final state. |
| // |
| // *must* have no External ID. |
| // *must* have no Result. |
| // |
| // This status is an implementation detail of CV, used for Tryjobs which |
| // weren't actually triggered. |
| // |
| // TODO(crbug/1227363): add a field to the Tryjob model to record reason for |
| // this status, notably to record permission denied errors. |
| Status_UNTRIGGERED Status = 5 |
| ) |
| |
| // Enum value maps for Status. |
| var ( |
| Status_name = map[int32]string{ |
| 0: "STATUS_UNSPECIFIED", |
| 1: "PENDING", |
| 2: "TRIGGERED", |
| 3: "ENDED", |
| 4: "CANCELLED", |
| 5: "UNTRIGGERED", |
| } |
| Status_value = map[string]int32{ |
| "STATUS_UNSPECIFIED": 0, |
| "PENDING": 1, |
| "TRIGGERED": 2, |
| "ENDED": 3, |
| "CANCELLED": 4, |
| "UNTRIGGERED": 5, |
| } |
| ) |
| |
| 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_cv_internal_tryjob_storage_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (Status) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_cv_internal_tryjob_storage_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_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{0} |
| } |
| |
| type Result_Status int32 |
| |
| const ( |
| // RESULT_STATUS_UNSPECIFIED is never used. |
| Result_RESULT_STATUS_UNSPECIFIED Result_Status = 0 |
| // UNKNOWN means Tryjob didn't reach a conclusion. |
| // |
| // *must* be used only if Tryjob.Status is TRIGGERED and the Tryjob |
| // hasn't made a decision yet. |
| Result_UNKNOWN Result_Status = 1 |
| // SUCCEEDED means that Run's CLs are considered OK by this Tryjob. |
| Result_SUCCEEDED Result_Status = 2 |
| // FAILED_PERMANENTLY means that Run's CLs are most likely not good. |
| Result_FAILED_PERMANENTLY Result_Status = 3 |
| // FAILED_TRANSIENTLY means that Run's CLs are most likely not to blame |
| // for the failure. |
| // TODO(crbug/1227363): consider removing transiency aspect if possible. |
| Result_FAILED_TRANSIENTLY Result_Status = 4 |
| // TIMEOUT means the Tryjob ran over some deadline and did not make a |
| // decision about this Run's CLs. |
| Result_TIMEOUT Result_Status = 5 |
| ) |
| |
| // Enum value maps for Result_Status. |
| var ( |
| Result_Status_name = map[int32]string{ |
| 0: "RESULT_STATUS_UNSPECIFIED", |
| 1: "UNKNOWN", |
| 2: "SUCCEEDED", |
| 3: "FAILED_PERMANENTLY", |
| 4: "FAILED_TRANSIENTLY", |
| 5: "TIMEOUT", |
| } |
| Result_Status_value = map[string]int32{ |
| "RESULT_STATUS_UNSPECIFIED": 0, |
| "UNKNOWN": 1, |
| "SUCCEEDED": 2, |
| "FAILED_PERMANENTLY": 3, |
| "FAILED_TRANSIENTLY": 4, |
| "TIMEOUT": 5, |
| } |
| ) |
| |
| func (x Result_Status) Enum() *Result_Status { |
| p := new(Result_Status) |
| *p = x |
| return p |
| } |
| |
| func (x Result_Status) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Result_Status) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (Result_Status) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_enumTypes[1] |
| } |
| |
| func (x Result_Status) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Result_Status.Descriptor instead. |
| func (Result_Status) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{2, 0} |
| } |
| |
| // Status describes the summarized status of the overall tryjob execution. |
| type ExecutionState_Status int32 |
| |
| const ( |
| // Unspecified is never used. |
| ExecutionState_STATUS_UNSPECIFIED ExecutionState_Status = 0 |
| // At least one critical tryjob is not yet finished so its result is |
| // unknown. |
| ExecutionState_RUNNING ExecutionState_Status = 1 |
| // At least one critical tryjob in the state failed and cannot be retried. |
| ExecutionState_FAILED ExecutionState_Status = 2 |
| // All the critical tryjobs in the execution state succeeded. |
| ExecutionState_SUCCEEDED ExecutionState_Status = 3 |
| ) |
| |
| // Enum value maps for ExecutionState_Status. |
| var ( |
| ExecutionState_Status_name = map[int32]string{ |
| 0: "STATUS_UNSPECIFIED", |
| 1: "RUNNING", |
| 2: "FAILED", |
| 3: "SUCCEEDED", |
| } |
| ExecutionState_Status_value = map[string]int32{ |
| "STATUS_UNSPECIFIED": 0, |
| "RUNNING": 1, |
| "FAILED": 2, |
| "SUCCEEDED": 3, |
| } |
| ) |
| |
| func (x ExecutionState_Status) Enum() *ExecutionState_Status { |
| p := new(ExecutionState_Status) |
| *p = x |
| return p |
| } |
| |
| func (x ExecutionState_Status) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (ExecutionState_Status) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (ExecutionState_Status) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_enumTypes[2] |
| } |
| |
| func (x ExecutionState_Status) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use ExecutionState_Status.Descriptor instead. |
| func (ExecutionState_Status) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{3, 0} |
| } |
| |
| // Definition defines what a Tryjob should do. |
| // |
| // It must be sufficient to trigger a new tryjob. |
| type Definition struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Backend: |
| // *Definition_Buildbucket_ |
| Backend isDefinition_Backend `protobuf_oneof:"backend"` |
| // If set, existing tryjob matching this definition is deemed equivalent |
| // to the primary Definition. |
| // |
| // Note that recursive `equivalent_to` is not supported. Also, this doesn't |
| // affect triggering a new tryjob. |
| EquivalentTo *Definition `protobuf:"bytes,2,opt,name=equivalent_to,json=equivalentTo,proto3" json:"equivalent_to,omitempty"` |
| // If true, trigger a new tryjob using this definition regardless of whether |
| // reusable tryjobs exist. |
| DisableReuse bool `protobuf:"varint,3,opt,name=disable_reuse,json=disableReuse,proto3" json:"disable_reuse,omitempty"` |
| // If true, CV should let this tryjob run even if it becomes stale, |
| // e.g. by a new non-trivial patchset on one of this tryjob's CLs. |
| // |
| // If the Tryjob is not triggered by CV, then this is value is ignored and |
| // in effect it's assumed true. I.e. we don't cancel tryjobs not triggered |
| // by CV. |
| SkipStaleCheck bool `protobuf:"varint,4,opt,name=skip_stale_check,json=skipStaleCheck,proto3" json:"skip_stale_check,omitempty"` |
| // If true, this tryjob is deemed critical for the Run to succeed, i.e. |
| // the Run will fail unless one of the attempts of this tryjob is successful. |
| Critical bool `protobuf:"varint,5,opt,name=critical,proto3" json:"critical,omitempty"` |
| // If true, this tryjob will be marked as experimental. |
| // |
| // However, experimental tryjob could be critical iff it is requested |
| // explicitly (i.e. via git footer). |
| Experimental bool `protobuf:"varint,7,opt,name=experimental,proto3" json:"experimental,omitempty"` |
| // If set to restricted, CV should only post generic messages such as |
| // "Build failed: https://ci.chromium.org/b/1234" |
| // and no summary markdown about tryjobs with this definition. |
| ResultVisibility v2.CommentLevel `protobuf:"varint,6,opt,name=result_visibility,json=resultVisibility,proto3,enum=cv.config.CommentLevel" json:"result_visibility,omitempty"` |
| } |
| |
| func (x *Definition) Reset() { |
| *x = Definition{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Definition) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Definition) ProtoMessage() {} |
| |
| func (x *Definition) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 Definition.ProtoReflect.Descriptor instead. |
| func (*Definition) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (m *Definition) GetBackend() isDefinition_Backend { |
| if m != nil { |
| return m.Backend |
| } |
| return nil |
| } |
| |
| func (x *Definition) GetBuildbucket() *Definition_Buildbucket { |
| if x, ok := x.GetBackend().(*Definition_Buildbucket_); ok { |
| return x.Buildbucket |
| } |
| return nil |
| } |
| |
| func (x *Definition) GetEquivalentTo() *Definition { |
| if x != nil { |
| return x.EquivalentTo |
| } |
| return nil |
| } |
| |
| func (x *Definition) GetDisableReuse() bool { |
| if x != nil { |
| return x.DisableReuse |
| } |
| return false |
| } |
| |
| func (x *Definition) GetSkipStaleCheck() bool { |
| if x != nil { |
| return x.SkipStaleCheck |
| } |
| return false |
| } |
| |
| func (x *Definition) GetCritical() bool { |
| if x != nil { |
| return x.Critical |
| } |
| return false |
| } |
| |
| func (x *Definition) GetExperimental() bool { |
| if x != nil { |
| return x.Experimental |
| } |
| return false |
| } |
| |
| func (x *Definition) GetResultVisibility() v2.CommentLevel { |
| if x != nil { |
| return x.ResultVisibility |
| } |
| return v2.CommentLevel(0) |
| } |
| |
| type isDefinition_Backend interface { |
| isDefinition_Backend() |
| } |
| |
| type Definition_Buildbucket_ struct { |
| // For buildbucket, it's just a builder. |
| Buildbucket *Definition_Buildbucket `protobuf:"bytes,1,opt,name=buildbucket,proto3,oneof"` |
| } |
| |
| func (*Definition_Buildbucket_) isDefinition_Backend() {} |
| |
| // Requirement is what has to happen to verify a specific Run. |
| // |
| // It is computed based on the Project Config and specifics of the Run. |
| type Requirement struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Definitions is the definitions of all Tryjobs that should be triggered |
| // to verify a specific Run. |
| Definitions []*Definition `protobuf:"bytes,1,rep,name=definitions,proto3" json:"definitions,omitempty"` |
| // RetryConfig specifies retries allowed in case of Tryjob failure. |
| // |
| // No retry allowed if nil. |
| RetryConfig *v2.Verifiers_Tryjob_RetryConfig `protobuf:"bytes,2,opt,name=retry_config,json=retryConfig,proto3" json:"retry_config,omitempty"` |
| // Version increments by 1 every time this requirement changes. |
| // |
| // Starts with 1. |
| Version int32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` |
| // The timestamp when requirement is last computed. |
| // |
| // Every requirement computation will update this field even if the result |
| // requirement is the same as the existing one. |
| LastComputedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_computed_at,json=lastComputedAt,proto3" json:"last_computed_at,omitempty"` |
| } |
| |
| func (x *Requirement) Reset() { |
| *x = Requirement{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Requirement) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Requirement) ProtoMessage() {} |
| |
| func (x *Requirement) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 Requirement.ProtoReflect.Descriptor instead. |
| func (*Requirement) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *Requirement) GetDefinitions() []*Definition { |
| if x != nil { |
| return x.Definitions |
| } |
| return nil |
| } |
| |
| func (x *Requirement) GetRetryConfig() *v2.Verifiers_Tryjob_RetryConfig { |
| if x != nil { |
| return x.RetryConfig |
| } |
| return nil |
| } |
| |
| func (x *Requirement) GetVersion() int32 { |
| if x != nil { |
| return x.Version |
| } |
| return 0 |
| } |
| |
| func (x *Requirement) GetLastComputedAt() *timestamppb.Timestamp { |
| if x != nil { |
| return x.LastComputedAt |
| } |
| return nil |
| } |
| |
| // Result of a Tryjob. |
| // |
| // It's interpreted by the Run Manager. |
| type Result struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Status of the Result. |
| // |
| // This is the verdict of verification of Run's CLs by this Tryjob. |
| Status Result_Status `protobuf:"varint,1,opt,name=status,proto3,enum=cv.internal.tryjob.Result_Status" json:"status,omitempty"` |
| // Time when the Tryjob was created in the backend. |
| // |
| // This is used by CV to determine if the Tryjob is fresh enough to be used |
| // to verify a Run. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Time when the tryjob was last updated in the backend. |
| // |
| // This is used by CV to determine if it needs to refresh Tryjob's Result by |
| // querying its backend. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // Output is a rich result of a Tryjob. |
| // This includes details related to retry and reuse. |
| // |
| // It's typically set by LUCI recipes. |
| Output *v1.Output `protobuf:"bytes,4,opt,name=output,proto3" json:"output,omitempty"` |
| // Backend houses backend-specific output. |
| // |
| // Types that are assignable to Backend: |
| // *Result_Buildbucket_ |
| Backend isResult_Backend `protobuf_oneof:"backend"` |
| } |
| |
| func (x *Result) Reset() { |
| *x = Result{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Result) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Result) ProtoMessage() {} |
| |
| func (x *Result) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 Result.ProtoReflect.Descriptor instead. |
| func (*Result) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *Result) GetStatus() Result_Status { |
| if x != nil { |
| return x.Status |
| } |
| return Result_RESULT_STATUS_UNSPECIFIED |
| } |
| |
| func (x *Result) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *Result) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *Result) GetOutput() *v1.Output { |
| if x != nil { |
| return x.Output |
| } |
| return nil |
| } |
| |
| func (m *Result) GetBackend() isResult_Backend { |
| if m != nil { |
| return m.Backend |
| } |
| return nil |
| } |
| |
| func (x *Result) GetBuildbucket() *Result_Buildbucket { |
| if x, ok := x.GetBackend().(*Result_Buildbucket_); ok { |
| return x.Buildbucket |
| } |
| return nil |
| } |
| |
| type isResult_Backend interface { |
| isResult_Backend() |
| } |
| |
| type Result_Buildbucket_ struct { |
| Buildbucket *Result_Buildbucket `protobuf:"bytes,5,opt,name=buildbucket,proto3,oneof"` |
| } |
| |
| func (*Result_Buildbucket_) isResult_Backend() {} |
| |
| // ExecutionState is the state of executing Tryjobs requirement. |
| type ExecutionState struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Executions track the execution state of all required Tryjobs. |
| // |
| // It is one to one mapped to `requirement.definitions` |
| Executions []*ExecutionState_Execution `protobuf:"bytes,1,rep,name=executions,proto3" json:"executions,omitempty"` |
| // Requirement is the requirement that is currently being worked on. |
| Requirement *Requirement `protobuf:"bytes,2,opt,name=requirement,proto3" json:"requirement,omitempty"` |
| // Status will be set to SUCCEEDED if all tryjobs succeed, |
| // FAILED if at least one tryjob fails and cannot be retried, |
| // or RUNNING otherwise. |
| Status ExecutionState_Status `protobuf:"varint,3,opt,name=status,proto3,enum=cv.internal.tryjob.ExecutionState_Status" json:"status,omitempty"` |
| // FailureReason provides a user-readable explanation of the |
| // failure. |
| FailureReason string `protobuf:"bytes,4,opt,name=failure_reason,json=failureReason,proto3" json:"failure_reason,omitempty"` |
| } |
| |
| func (x *ExecutionState) Reset() { |
| *x = ExecutionState{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ExecutionState) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ExecutionState) ProtoMessage() {} |
| |
| func (x *ExecutionState) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 ExecutionState.ProtoReflect.Descriptor instead. |
| func (*ExecutionState) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *ExecutionState) GetExecutions() []*ExecutionState_Execution { |
| if x != nil { |
| return x.Executions |
| } |
| return nil |
| } |
| |
| func (x *ExecutionState) GetRequirement() *Requirement { |
| if x != nil { |
| return x.Requirement |
| } |
| return nil |
| } |
| |
| func (x *ExecutionState) GetStatus() ExecutionState_Status { |
| if x != nil { |
| return x.Status |
| } |
| return ExecutionState_STATUS_UNSPECIFIED |
| } |
| |
| func (x *ExecutionState) GetFailureReason() string { |
| if x != nil { |
| return x.FailureReason |
| } |
| return "" |
| } |
| |
| // TryjobUpdatedEvent describes which Tryjob entity is updated. |
| type TryjobUpdatedEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| TryjobId int64 `protobuf:"varint,1,opt,name=tryjob_id,json=tryjobId,proto3" json:"tryjob_id,omitempty"` |
| } |
| |
| func (x *TryjobUpdatedEvent) Reset() { |
| *x = TryjobUpdatedEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TryjobUpdatedEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TryjobUpdatedEvent) ProtoMessage() {} |
| |
| func (x *TryjobUpdatedEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 TryjobUpdatedEvent.ProtoReflect.Descriptor instead. |
| func (*TryjobUpdatedEvent) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *TryjobUpdatedEvent) GetTryjobId() int64 { |
| if x != nil { |
| return x.TryjobId |
| } |
| return 0 |
| } |
| |
| // TryjobUpdatedEvents is a batch of TryjobUpdatedEvent. |
| type TryjobUpdatedEvents struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Events []*TryjobUpdatedEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` |
| } |
| |
| func (x *TryjobUpdatedEvents) Reset() { |
| *x = TryjobUpdatedEvents{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TryjobUpdatedEvents) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TryjobUpdatedEvents) ProtoMessage() {} |
| |
| func (x *TryjobUpdatedEvents) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 TryjobUpdatedEvents.ProtoReflect.Descriptor instead. |
| func (*TryjobUpdatedEvents) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *TryjobUpdatedEvents) GetEvents() []*TryjobUpdatedEvent { |
| if x != nil { |
| return x.Events |
| } |
| return nil |
| } |
| |
| type Definition_Buildbucket struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` |
| Builder *proto.BuilderID `protobuf:"bytes,2,opt,name=builder,proto3" json:"builder,omitempty"` |
| } |
| |
| func (x *Definition_Buildbucket) Reset() { |
| *x = Definition_Buildbucket{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Definition_Buildbucket) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Definition_Buildbucket) ProtoMessage() {} |
| |
| func (x *Definition_Buildbucket) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 Definition_Buildbucket.ProtoReflect.Descriptor instead. |
| func (*Definition_Buildbucket) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{0, 0} |
| } |
| |
| func (x *Definition_Buildbucket) GetHost() string { |
| if x != nil { |
| return x.Host |
| } |
| return "" |
| } |
| |
| func (x *Definition_Buildbucket) GetBuilder() *proto.BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| type Result_Buildbucket struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` |
| Builder *proto.BuilderID `protobuf:"bytes,4,opt,name=builder,proto3" json:"builder,omitempty"` |
| Status proto.Status `protobuf:"varint,2,opt,name=status,proto3,enum=buildbucket.v2.Status" json:"status,omitempty"` |
| // SummaryMarkdown is a field containing a human readable summary of the |
| // build's result. |
| SummaryMarkdown string `protobuf:"bytes,3,opt,name=summary_markdown,json=summaryMarkdown,proto3" json:"summary_markdown,omitempty"` |
| } |
| |
| func (x *Result_Buildbucket) Reset() { |
| *x = Result_Buildbucket{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Result_Buildbucket) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Result_Buildbucket) ProtoMessage() {} |
| |
| func (x *Result_Buildbucket) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 Result_Buildbucket.ProtoReflect.Descriptor instead. |
| func (*Result_Buildbucket) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{2, 0} |
| } |
| |
| func (x *Result_Buildbucket) GetId() int64 { |
| if x != nil { |
| return x.Id |
| } |
| return 0 |
| } |
| |
| func (x *Result_Buildbucket) GetBuilder() *proto.BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| func (x *Result_Buildbucket) GetStatus() proto.Status { |
| if x != nil { |
| return x.Status |
| } |
| return proto.Status(0) |
| } |
| |
| func (x *Result_Buildbucket) GetSummaryMarkdown() string { |
| if x != nil { |
| return x.SummaryMarkdown |
| } |
| return "" |
| } |
| |
| // Execution tracks the execution state of each individual Tryjob requirement. |
| type ExecutionState_Execution struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Attempts records all attempts (including retries) to verify the Run with |
| // this Tryjob Execution. |
| Attempts []*ExecutionState_Execution_Attempt `protobuf:"bytes,2,rep,name=attempts,proto3" json:"attempts,omitempty"` |
| // UsedQuota is the quota consumed for retrying the execution of this |
| // Tryjob. |
| UsedQuota int32 `protobuf:"varint,3,opt,name=used_quota,json=usedQuota,proto3" json:"used_quota,omitempty"` |
| } |
| |
| func (x *ExecutionState_Execution) Reset() { |
| *x = ExecutionState_Execution{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ExecutionState_Execution) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ExecutionState_Execution) ProtoMessage() {} |
| |
| func (x *ExecutionState_Execution) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 ExecutionState_Execution.ProtoReflect.Descriptor instead. |
| func (*ExecutionState_Execution) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{3, 0} |
| } |
| |
| func (x *ExecutionState_Execution) GetAttempts() []*ExecutionState_Execution_Attempt { |
| if x != nil { |
| return x.Attempts |
| } |
| return nil |
| } |
| |
| func (x *ExecutionState_Execution) GetUsedQuota() int32 { |
| if x != nil { |
| return x.UsedQuota |
| } |
| return 0 |
| } |
| |
| // Attempt represents each attempt to complete an execution. |
| // |
| // Failed attempt will trigger a retry attempt if quota allows. |
| type ExecutionState_Execution_Attempt struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // TryjobId is the id of this attempt of the Tryjob. |
| TryjobId int64 `protobuf:"varint,1,opt,name=tryjob_id,json=tryjobId,proto3" json:"tryjob_id,omitempty"` |
| // ExternalID is the external ID of this attempt of the Tryjob |
| ExternalId string `protobuf:"bytes,2,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` |
| // Status is the status of this attempt of the Tryjob. |
| Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=cv.internal.tryjob.Status" json:"status,omitempty"` |
| // Result of this attempt of the Tryjob. |
| Result *Result `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"` |
| // Reused indicates the current attempt of the Tryjob wasn't triggered |
| // by CV for this Run specifically. |
| // |
| // In other words, either: |
| // * tryjob was triggered by CV for a previous Run |
| // * tryjob was triggered by non-CV (e.g. `git cl try`) |
| Reused bool `protobuf:"varint,5,opt,name=reused,proto3" json:"reused,omitempty"` |
| } |
| |
| func (x *ExecutionState_Execution_Attempt) Reset() { |
| *x = ExecutionState_Execution_Attempt{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ExecutionState_Execution_Attempt) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ExecutionState_Execution_Attempt) ProtoMessage() {} |
| |
| func (x *ExecutionState_Execution_Attempt) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_cv_internal_tryjob_storage_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 ExecutionState_Execution_Attempt.ProtoReflect.Descriptor instead. |
| func (*ExecutionState_Execution_Attempt) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP(), []int{3, 0, 0} |
| } |
| |
| func (x *ExecutionState_Execution_Attempt) GetTryjobId() int64 { |
| if x != nil { |
| return x.TryjobId |
| } |
| return 0 |
| } |
| |
| func (x *ExecutionState_Execution_Attempt) GetExternalId() string { |
| if x != nil { |
| return x.ExternalId |
| } |
| return "" |
| } |
| |
| func (x *ExecutionState_Execution_Attempt) GetStatus() Status { |
| if x != nil { |
| return x.Status |
| } |
| return Status_STATUS_UNSPECIFIED |
| } |
| |
| func (x *ExecutionState_Execution_Attempt) GetResult() *Result { |
| if x != nil { |
| return x.Result |
| } |
| return nil |
| } |
| |
| func (x *ExecutionState_Execution_Attempt) GetReused() bool { |
| if x != nil { |
| return x.Reused |
| } |
| return false |
| } |
| |
| var File_go_chromium_org_luci_cv_internal_tryjob_storage_proto protoreflect.FileDescriptor |
| |
| var file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDesc = []byte{ |
| 0x0a, 0x35, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, |
| 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, |
| 0x61, 0x6c, 0x2f, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, |
| 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 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, 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, 0x2e, |
| 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, |
| 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x71, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, |
| 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, |
| 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x63, 0x69, |
| 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x71, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd9, |
| 0x03, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, |
| 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, |
| 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, |
| 0x6f, 0x6e, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, |
| 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x43, 0x0a, |
| 0x0d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, |
| 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, |
| 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, |
| 0x54, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, |
| 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, |
| 0x6c, 0x65, 0x52, 0x65, 0x75, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6b, 0x69, 0x70, 0x5f, |
| 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, |
| 0x08, 0x52, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x61, 0x6c, 0x65, 0x43, 0x68, 0x65, 0x63, |
| 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x22, 0x0a, |
| 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, |
| 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, |
| 0x6c, 0x12, 0x44, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x69, 0x73, 0x69, |
| 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, |
| 0x76, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, |
| 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x10, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x56, 0x69, 0x73, |
| 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x56, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x42, |
| 0x09, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0xfb, 0x01, 0x0a, 0x0b, 0x52, |
| 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, |
| 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x1e, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x74, 0x72, |
| 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, |
| 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x0c, |
| 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x76, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, |
| 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, |
| 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x72, 0x65, 0x74, |
| 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, |
| 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, |
| 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, |
| 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 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, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, |
| 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xf2, 0x04, 0x0a, 0x06, 0x52, 0x65, 0x73, |
| 0x75, 0x6c, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, |
| 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, |
| 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, |
| 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 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, |
| 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, |
| 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, |
| 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, |
| 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, |
| 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x71, 0x2e, 0x72, 0x65, |
| 0x63, 0x69, 0x70, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, |
| 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, |
| 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x52, 0x65, |
| 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x48, 0x00, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a, |
| 0xad, 0x01, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, |
| 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, |
| 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, |
| 0x6d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, |
| 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x22, |
| 0x80, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, |
| 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, |
| 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, |
| 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, |
| 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, |
| 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45, 0x4e, 0x54, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x16, 0x0a, |
| 0x12, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x45, 0x4e, |
| 0x54, 0x4c, 0x59, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, |
| 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0x9e, 0x05, |
| 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, |
| 0x12, 0x4c, 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, |
| 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, |
| 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, |
| 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, |
| 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, |
| 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, |
| 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, |
| 0x74, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, |
| 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, |
| 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, |
| 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, |
| 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0xc6, 0x02, 0x0a, 0x09, |
| 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x08, 0x61, 0x74, 0x74, |
| 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x76, |
| 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, |
| 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, |
| 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, |
| 0x74, 0x52, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, |
| 0x73, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, |
| 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x1a, 0xc7, 0x01, 0x0a, 0x07, 0x41, |
| 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, |
| 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x72, 0x79, 0x6a, 0x6f, |
| 0x62, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, |
| 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, |
| 0x61, 0x6c, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, |
| 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, |
| 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, |
| 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, |
| 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x52, 0x65, |
| 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, |
| 0x72, 0x65, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, |
| 0x75, 0x73, 0x65, 0x64, 0x22, 0x48, 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, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, |
| 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, |
| 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x22, 0x31, |
| 0x0a, 0x12, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, |
| 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x5f, 0x69, |
| 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x49, |
| 0x64, 0x22, 0x55, 0x0a, 0x13, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, |
| 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, |
| 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x54, 0x72, |
| 0x79, 0x6a, 0x6f, 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, |
| 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2a, 0x67, 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, 0x0b, 0x0a, 0x07, 0x50, 0x45, |
| 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x52, 0x49, 0x47, 0x47, |
| 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, |
| 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, |
| 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, |
| 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, |
| 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x69, 0x6e, 0x74, |
| 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x3b, 0x74, 0x72, 0x79, |
| 0x6a, 0x6f, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescOnce sync.Once |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescData = file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDesc |
| ) |
| |
| func file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescGZIP() []byte { |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescOnce.Do(func() { |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescData) |
| }) |
| return file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDescData |
| } |
| |
| var file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_enumTypes = make([]protoimpl.EnumInfo, 3) |
| var file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes = make([]protoimpl.MessageInfo, 10) |
| var file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_goTypes = []interface{}{ |
| (Status)(0), // 0: cv.internal.tryjob.Status |
| (Result_Status)(0), // 1: cv.internal.tryjob.Result.Status |
| (ExecutionState_Status)(0), // 2: cv.internal.tryjob.ExecutionState.Status |
| (*Definition)(nil), // 3: cv.internal.tryjob.Definition |
| (*Requirement)(nil), // 4: cv.internal.tryjob.Requirement |
| (*Result)(nil), // 5: cv.internal.tryjob.Result |
| (*ExecutionState)(nil), // 6: cv.internal.tryjob.ExecutionState |
| (*TryjobUpdatedEvent)(nil), // 7: cv.internal.tryjob.TryjobUpdatedEvent |
| (*TryjobUpdatedEvents)(nil), // 8: cv.internal.tryjob.TryjobUpdatedEvents |
| (*Definition_Buildbucket)(nil), // 9: cv.internal.tryjob.Definition.Buildbucket |
| (*Result_Buildbucket)(nil), // 10: cv.internal.tryjob.Result.Buildbucket |
| (*ExecutionState_Execution)(nil), // 11: cv.internal.tryjob.ExecutionState.Execution |
| (*ExecutionState_Execution_Attempt)(nil), // 12: cv.internal.tryjob.ExecutionState.Execution.Attempt |
| (v2.CommentLevel)(0), // 13: cv.config.CommentLevel |
| (*v2.Verifiers_Tryjob_RetryConfig)(nil), // 14: cv.config.Verifiers.Tryjob.RetryConfig |
| (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp |
| (*v1.Output)(nil), // 16: cq.recipe.Output |
| (*proto.BuilderID)(nil), // 17: buildbucket.v2.BuilderID |
| (proto.Status)(0), // 18: buildbucket.v2.Status |
| } |
| var file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_depIdxs = []int32{ |
| 9, // 0: cv.internal.tryjob.Definition.buildbucket:type_name -> cv.internal.tryjob.Definition.Buildbucket |
| 3, // 1: cv.internal.tryjob.Definition.equivalent_to:type_name -> cv.internal.tryjob.Definition |
| 13, // 2: cv.internal.tryjob.Definition.result_visibility:type_name -> cv.config.CommentLevel |
| 3, // 3: cv.internal.tryjob.Requirement.definitions:type_name -> cv.internal.tryjob.Definition |
| 14, // 4: cv.internal.tryjob.Requirement.retry_config:type_name -> cv.config.Verifiers.Tryjob.RetryConfig |
| 15, // 5: cv.internal.tryjob.Requirement.last_computed_at:type_name -> google.protobuf.Timestamp |
| 1, // 6: cv.internal.tryjob.Result.status:type_name -> cv.internal.tryjob.Result.Status |
| 15, // 7: cv.internal.tryjob.Result.create_time:type_name -> google.protobuf.Timestamp |
| 15, // 8: cv.internal.tryjob.Result.update_time:type_name -> google.protobuf.Timestamp |
| 16, // 9: cv.internal.tryjob.Result.output:type_name -> cq.recipe.Output |
| 10, // 10: cv.internal.tryjob.Result.buildbucket:type_name -> cv.internal.tryjob.Result.Buildbucket |
| 11, // 11: cv.internal.tryjob.ExecutionState.executions:type_name -> cv.internal.tryjob.ExecutionState.Execution |
| 4, // 12: cv.internal.tryjob.ExecutionState.requirement:type_name -> cv.internal.tryjob.Requirement |
| 2, // 13: cv.internal.tryjob.ExecutionState.status:type_name -> cv.internal.tryjob.ExecutionState.Status |
| 7, // 14: cv.internal.tryjob.TryjobUpdatedEvents.events:type_name -> cv.internal.tryjob.TryjobUpdatedEvent |
| 17, // 15: cv.internal.tryjob.Definition.Buildbucket.builder:type_name -> buildbucket.v2.BuilderID |
| 17, // 16: cv.internal.tryjob.Result.Buildbucket.builder:type_name -> buildbucket.v2.BuilderID |
| 18, // 17: cv.internal.tryjob.Result.Buildbucket.status:type_name -> buildbucket.v2.Status |
| 12, // 18: cv.internal.tryjob.ExecutionState.Execution.attempts:type_name -> cv.internal.tryjob.ExecutionState.Execution.Attempt |
| 0, // 19: cv.internal.tryjob.ExecutionState.Execution.Attempt.status:type_name -> cv.internal.tryjob.Status |
| 5, // 20: cv.internal.tryjob.ExecutionState.Execution.Attempt.result:type_name -> cv.internal.tryjob.Result |
| 21, // [21:21] is the sub-list for method output_type |
| 21, // [21:21] is the sub-list for method input_type |
| 21, // [21:21] is the sub-list for extension type_name |
| 21, // [21:21] is the sub-list for extension extendee |
| 0, // [0:21] is the sub-list for field type_name |
| } |
| |
| func init() { file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_init() } |
| func file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_init() { |
| if File_go_chromium_org_luci_cv_internal_tryjob_storage_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Definition); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Requirement); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Result); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ExecutionState); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TryjobUpdatedEvent); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TryjobUpdatedEvents); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Definition_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_cv_internal_tryjob_storage_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Result_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_cv_internal_tryjob_storage_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ExecutionState_Execution); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ExecutionState_Execution_Attempt); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[0].OneofWrappers = []interface{}{ |
| (*Definition_Buildbucket_)(nil), |
| } |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes[2].OneofWrappers = []interface{}{ |
| (*Result_Buildbucket_)(nil), |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDesc, |
| NumEnums: 3, |
| NumMessages: 10, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_goTypes, |
| DependencyIndexes: file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_depIdxs, |
| EnumInfos: file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_enumTypes, |
| MessageInfos: file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_msgTypes, |
| }.Build() |
| File_go_chromium_org_luci_cv_internal_tryjob_storage_proto = out.File |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_rawDesc = nil |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_goTypes = nil |
| file_go_chromium_org_luci_cv_internal_tryjob_storage_proto_depIdxs = nil |
| } |