blob: 187c2f37f07fc1d59a574f42cb6731e911b38efb [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.32.0
// protoc v3.21.12
// source: rpc.proto
package rpc
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)
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)
)
// TaskStatus indicates the status of a given task. Must be kept in sync with
// types.TaskStatus.
type TaskStatus int32
const (
// TASK_STATUS_PENDING indicates the task has not started. It is the empty
// string so that it is the zero value of TaskStatus.
TaskStatus_TASK_STATUS_PENDING TaskStatus = 0
// TASK_STATUS_RUNNING indicates the task is in progress.
TaskStatus_TASK_STATUS_RUNNING TaskStatus = 1
// TASK_STATUS_SUCCESS indicates the task completed successfully.
TaskStatus_TASK_STATUS_SUCCESS TaskStatus = 2
// TASK_STATUS_FAILURE indicates the task completed with failures.
TaskStatus_TASK_STATUS_FAILURE TaskStatus = 3
// TASK_STATUS_MISHAP indicates the task exited early with an error, died
// while in progress, was manually canceled, expired while waiting on the
// queue, or timed out before completing.
TaskStatus_TASK_STATUS_MISHAP TaskStatus = 4
)
// Enum value maps for TaskStatus.
var (
TaskStatus_name = map[int32]string{
0: "TASK_STATUS_PENDING",
1: "TASK_STATUS_RUNNING",
2: "TASK_STATUS_SUCCESS",
3: "TASK_STATUS_FAILURE",
4: "TASK_STATUS_MISHAP",
}
TaskStatus_value = map[string]int32{
"TASK_STATUS_PENDING": 0,
"TASK_STATUS_RUNNING": 1,
"TASK_STATUS_SUCCESS": 2,
"TASK_STATUS_FAILURE": 3,
"TASK_STATUS_MISHAP": 4,
}
)
func (x TaskStatus) Enum() *TaskStatus {
p := new(TaskStatus)
*p = x
return p
}
func (x TaskStatus) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TaskStatus) Descriptor() protoreflect.EnumDescriptor {
return file_rpc_proto_enumTypes[0].Descriptor()
}
func (TaskStatus) Type() protoreflect.EnumType {
return &file_rpc_proto_enumTypes[0]
}
func (x TaskStatus) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TaskStatus.Descriptor instead.
func (TaskStatus) EnumDescriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{0}
}
type JobStatus int32
const (
JobStatus_JOB_STATUS_IN_PROGRESS JobStatus = 0
JobStatus_JOB_STATUS_SUCCESS JobStatus = 1
JobStatus_JOB_STATUS_FAILURE JobStatus = 2
JobStatus_JOB_STATUS_MISHAP JobStatus = 3
JobStatus_JOB_STATUS_CANCELED JobStatus = 4
JobStatus_JOB_STATUS_REQUESTED JobStatus = 5
)
// Enum value maps for JobStatus.
var (
JobStatus_name = map[int32]string{
0: "JOB_STATUS_IN_PROGRESS",
1: "JOB_STATUS_SUCCESS",
2: "JOB_STATUS_FAILURE",
3: "JOB_STATUS_MISHAP",
4: "JOB_STATUS_CANCELED",
5: "JOB_STATUS_REQUESTED",
}
JobStatus_value = map[string]int32{
"JOB_STATUS_IN_PROGRESS": 0,
"JOB_STATUS_SUCCESS": 1,
"JOB_STATUS_FAILURE": 2,
"JOB_STATUS_MISHAP": 3,
"JOB_STATUS_CANCELED": 4,
"JOB_STATUS_REQUESTED": 5,
}
)
func (x JobStatus) Enum() *JobStatus {
p := new(JobStatus)
*p = x
return p
}
func (x JobStatus) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (JobStatus) Descriptor() protoreflect.EnumDescriptor {
return file_rpc_proto_enumTypes[1].Descriptor()
}
func (JobStatus) Type() protoreflect.EnumType {
return &file_rpc_proto_enumTypes[1]
}
func (x JobStatus) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use JobStatus.Descriptor instead.
func (JobStatus) EnumDescriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{1}
}
// TriggerJob represents a single job to trigger.
type TriggerJob struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// job_name is the name of the job to trigger.
JobName string `protobuf:"bytes,1,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"`
// commit_hash is the hash of the commit at which the job should run.
CommitHash string `protobuf:"bytes,2,opt,name=commit_hash,json=commitHash,proto3" json:"commit_hash,omitempty"`
}
func (x *TriggerJob) Reset() {
*x = TriggerJob{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TriggerJob) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TriggerJob) ProtoMessage() {}
func (x *TriggerJob) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 TriggerJob.ProtoReflect.Descriptor instead.
func (*TriggerJob) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{0}
}
func (x *TriggerJob) GetJobName() string {
if x != nil {
return x.JobName
}
return ""
}
func (x *TriggerJob) GetCommitHash() string {
if x != nil {
return x.CommitHash
}
return ""
}
// TriggerJobsRequest is a request to TriggerJobs.
type TriggerJobsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// jobs specifies which jobs to trigger.
Jobs []*TriggerJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
}
func (x *TriggerJobsRequest) Reset() {
*x = TriggerJobsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TriggerJobsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TriggerJobsRequest) ProtoMessage() {}
func (x *TriggerJobsRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 TriggerJobsRequest.ProtoReflect.Descriptor instead.
func (*TriggerJobsRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{1}
}
func (x *TriggerJobsRequest) GetJobs() []*TriggerJob {
if x != nil {
return x.Jobs
}
return nil
}
// TriggerJobsResponse is a response returned by TriggerJobs.
type TriggerJobsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// job_ids are the IDs of the jobs which were triggered, in the same order
// as they were requested.
JobIds []string `protobuf:"bytes,1,rep,name=job_ids,json=jobIds,proto3" json:"job_ids,omitempty"`
}
func (x *TriggerJobsResponse) Reset() {
*x = TriggerJobsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TriggerJobsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TriggerJobsResponse) ProtoMessage() {}
func (x *TriggerJobsResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 TriggerJobsResponse.ProtoReflect.Descriptor instead.
func (*TriggerJobsResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{2}
}
func (x *TriggerJobsResponse) GetJobIds() []string {
if x != nil {
return x.JobIds
}
return nil
}
// GetJobRequest is a request to GetJob.
type GetJobRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID of the job to retrieve.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *GetJobRequest) Reset() {
*x = GetJobRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetJobRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetJobRequest) ProtoMessage() {}
func (x *GetJobRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 GetJobRequest.ProtoReflect.Descriptor instead.
func (*GetJobRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{3}
}
func (x *GetJobRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
// GetJobResponse is a response returned from GetJob.
type GetJobResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// job contains the core information about the job.
Job *Job `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
}
func (x *GetJobResponse) Reset() {
*x = GetJobResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetJobResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetJobResponse) ProtoMessage() {}
func (x *GetJobResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 GetJobResponse.ProtoReflect.Descriptor instead.
func (*GetJobResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{4}
}
func (x *GetJobResponse) GetJob() *Job {
if x != nil {
return x.Job
}
return nil
}
// CancelJobRequest is a request to CancelJob.
type CancelJobRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID of the job to cancel.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *CancelJobRequest) Reset() {
*x = CancelJobRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CancelJobRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CancelJobRequest) ProtoMessage() {}
func (x *CancelJobRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 CancelJobRequest.ProtoReflect.Descriptor instead.
func (*CancelJobRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{5}
}
func (x *CancelJobRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
// CancelJobResponse is a response returned by CancelJob.
type CancelJobResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// job is the updated job after cancellation.
Job *Job `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
}
func (x *CancelJobResponse) Reset() {
*x = CancelJobResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CancelJobResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CancelJobResponse) ProtoMessage() {}
func (x *CancelJobResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 CancelJobResponse.ProtoReflect.Descriptor instead.
func (*CancelJobResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{6}
}
func (x *CancelJobResponse) GetJob() *Job {
if x != nil {
return x.Job
}
return nil
}
// SearchJobsRequest is a request to SearchJobs.
type SearchJobsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BuildbucketBuildId string `protobuf:"bytes,1,opt,name=buildbucket_build_id,json=buildbucketBuildId,proto3" json:"buildbucket_build_id,omitempty"`
HasBuildbucketBuildId bool `protobuf:"varint,2,opt,name=has_buildbucket_build_id,json=hasBuildbucketBuildId,proto3" json:"has_buildbucket_build_id,omitempty"`
IsForce bool `protobuf:"varint,3,opt,name=is_force,json=isForce,proto3" json:"is_force,omitempty"`
HasIsForce bool `protobuf:"varint,4,opt,name=has_is_force,json=hasIsForce,proto3" json:"has_is_force,omitempty"`
Issue string `protobuf:"bytes,5,opt,name=issue,proto3" json:"issue,omitempty"`
HasIssue bool `protobuf:"varint,6,opt,name=has_issue,json=hasIssue,proto3" json:"has_issue,omitempty"`
Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
HasName bool `protobuf:"varint,8,opt,name=has_name,json=hasName,proto3" json:"has_name,omitempty"`
Patchset string `protobuf:"bytes,9,opt,name=patchset,proto3" json:"patchset,omitempty"`
HasPatchset bool `protobuf:"varint,10,opt,name=has_patchset,json=hasPatchset,proto3" json:"has_patchset,omitempty"`
Repo string `protobuf:"bytes,11,opt,name=repo,proto3" json:"repo,omitempty"`
HasRepo bool `protobuf:"varint,12,opt,name=has_repo,json=hasRepo,proto3" json:"has_repo,omitempty"`
Revision string `protobuf:"bytes,13,opt,name=revision,proto3" json:"revision,omitempty"`
HasRevision bool `protobuf:"varint,14,opt,name=has_revision,json=hasRevision,proto3" json:"has_revision,omitempty"`
Status JobStatus `protobuf:"varint,15,opt,name=status,proto3,enum=task_scheduler.rpc.JobStatus" json:"status,omitempty"`
HasStatus bool `protobuf:"varint,16,opt,name=has_status,json=hasStatus,proto3" json:"has_status,omitempty"`
TimeStart *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=time_start,json=timeStart,proto3" json:"time_start,omitempty"`
HasTimeStart bool `protobuf:"varint,18,opt,name=has_time_start,json=hasTimeStart,proto3" json:"has_time_start,omitempty"`
TimeEnd *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=time_end,json=timeEnd,proto3" json:"time_end,omitempty"`
HasTimeEnd bool `protobuf:"varint,20,opt,name=has_time_end,json=hasTimeEnd,proto3" json:"has_time_end,omitempty"`
}
func (x *SearchJobsRequest) Reset() {
*x = SearchJobsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SearchJobsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SearchJobsRequest) ProtoMessage() {}
func (x *SearchJobsRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 SearchJobsRequest.ProtoReflect.Descriptor instead.
func (*SearchJobsRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{7}
}
func (x *SearchJobsRequest) GetBuildbucketBuildId() string {
if x != nil {
return x.BuildbucketBuildId
}
return ""
}
func (x *SearchJobsRequest) GetHasBuildbucketBuildId() bool {
if x != nil {
return x.HasBuildbucketBuildId
}
return false
}
func (x *SearchJobsRequest) GetIsForce() bool {
if x != nil {
return x.IsForce
}
return false
}
func (x *SearchJobsRequest) GetHasIsForce() bool {
if x != nil {
return x.HasIsForce
}
return false
}
func (x *SearchJobsRequest) GetIssue() string {
if x != nil {
return x.Issue
}
return ""
}
func (x *SearchJobsRequest) GetHasIssue() bool {
if x != nil {
return x.HasIssue
}
return false
}
func (x *SearchJobsRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *SearchJobsRequest) GetHasName() bool {
if x != nil {
return x.HasName
}
return false
}
func (x *SearchJobsRequest) GetPatchset() string {
if x != nil {
return x.Patchset
}
return ""
}
func (x *SearchJobsRequest) GetHasPatchset() bool {
if x != nil {
return x.HasPatchset
}
return false
}
func (x *SearchJobsRequest) GetRepo() string {
if x != nil {
return x.Repo
}
return ""
}
func (x *SearchJobsRequest) GetHasRepo() bool {
if x != nil {
return x.HasRepo
}
return false
}
func (x *SearchJobsRequest) GetRevision() string {
if x != nil {
return x.Revision
}
return ""
}
func (x *SearchJobsRequest) GetHasRevision() bool {
if x != nil {
return x.HasRevision
}
return false
}
func (x *SearchJobsRequest) GetStatus() JobStatus {
if x != nil {
return x.Status
}
return JobStatus_JOB_STATUS_IN_PROGRESS
}
func (x *SearchJobsRequest) GetHasStatus() bool {
if x != nil {
return x.HasStatus
}
return false
}
func (x *SearchJobsRequest) GetTimeStart() *timestamppb.Timestamp {
if x != nil {
return x.TimeStart
}
return nil
}
func (x *SearchJobsRequest) GetHasTimeStart() bool {
if x != nil {
return x.HasTimeStart
}
return false
}
func (x *SearchJobsRequest) GetTimeEnd() *timestamppb.Timestamp {
if x != nil {
return x.TimeEnd
}
return nil
}
func (x *SearchJobsRequest) GetHasTimeEnd() bool {
if x != nil {
return x.HasTimeEnd
}
return false
}
// SearchJobsRequest is a response returned by SearchJobs.
type SearchJobsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Jobs []*Job `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
}
func (x *SearchJobsResponse) Reset() {
*x = SearchJobsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SearchJobsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SearchJobsResponse) ProtoMessage() {}
func (x *SearchJobsResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 SearchJobsResponse.ProtoReflect.Descriptor instead.
func (*SearchJobsResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{8}
}
func (x *SearchJobsResponse) GetJobs() []*Job {
if x != nil {
return x.Jobs
}
return nil
}
// GetTaskRequest is a request to GetTask.
type GetTaskRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID of the task to retrieve.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Whether or not to include statistics. This is expensive and should only
// be set when needed.
IncludeStats bool `protobuf:"varint,2,opt,name=include_stats,json=includeStats,proto3" json:"include_stats,omitempty"`
}
func (x *GetTaskRequest) Reset() {
*x = GetTaskRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetTaskRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetTaskRequest) ProtoMessage() {}
func (x *GetTaskRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 GetTaskRequest.ProtoReflect.Descriptor instead.
func (*GetTaskRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{9}
}
func (x *GetTaskRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *GetTaskRequest) GetIncludeStats() bool {
if x != nil {
return x.IncludeStats
}
return false
}
// GetTaskResponse is a response returned from GetTask.
type GetTaskResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// task is the requested task.
Task *Task `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
}
func (x *GetTaskResponse) Reset() {
*x = GetTaskResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetTaskResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetTaskResponse) ProtoMessage() {}
func (x *GetTaskResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 GetTaskResponse.ProtoReflect.Descriptor instead.
func (*GetTaskResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{10}
}
func (x *GetTaskResponse) GetTask() *Task {
if x != nil {
return x.Task
}
return nil
}
// SearchTasksRequest is a request to SearchTasks.
type SearchTasksRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Attempt int32 `protobuf:"varint,1,opt,name=attempt,proto3" json:"attempt,omitempty"`
HasAttempt bool `protobuf:"varint,2,opt,name=has_attempt,json=hasAttempt,proto3" json:"has_attempt,omitempty"`
Issue string `protobuf:"bytes,3,opt,name=issue,proto3" json:"issue,omitempty"`
HasIssue bool `protobuf:"varint,4,opt,name=has_issue,json=hasIssue,proto3" json:"has_issue,omitempty"`
Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
HasName bool `protobuf:"varint,6,opt,name=has_name,json=hasName,proto3" json:"has_name,omitempty"`
Patchset string `protobuf:"bytes,7,opt,name=patchset,proto3" json:"patchset,omitempty"`
HasPatchset bool `protobuf:"varint,8,opt,name=has_patchset,json=hasPatchset,proto3" json:"has_patchset,omitempty"`
Repo string `protobuf:"bytes,9,opt,name=repo,proto3" json:"repo,omitempty"`
HasRepo bool `protobuf:"varint,10,opt,name=has_repo,json=hasRepo,proto3" json:"has_repo,omitempty"`
Revision string `protobuf:"bytes,11,opt,name=revision,proto3" json:"revision,omitempty"`
HasRevision bool `protobuf:"varint,12,opt,name=has_revision,json=hasRevision,proto3" json:"has_revision,omitempty"`
Status TaskStatus `protobuf:"varint,13,opt,name=status,proto3,enum=task_scheduler.rpc.TaskStatus" json:"status,omitempty"`
HasStatus bool `protobuf:"varint,14,opt,name=has_status,json=hasStatus,proto3" json:"has_status,omitempty"`
TimeStart *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=time_start,json=timeStart,proto3" json:"time_start,omitempty"`
HasTimeStart bool `protobuf:"varint,16,opt,name=has_time_start,json=hasTimeStart,proto3" json:"has_time_start,omitempty"`
TimeEnd *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=time_end,json=timeEnd,proto3" json:"time_end,omitempty"`
HasTimeEnd bool `protobuf:"varint,18,opt,name=has_time_end,json=hasTimeEnd,proto3" json:"has_time_end,omitempty"`
}
func (x *SearchTasksRequest) Reset() {
*x = SearchTasksRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SearchTasksRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SearchTasksRequest) ProtoMessage() {}
func (x *SearchTasksRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_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 SearchTasksRequest.ProtoReflect.Descriptor instead.
func (*SearchTasksRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{11}
}
func (x *SearchTasksRequest) GetAttempt() int32 {
if x != nil {
return x.Attempt
}
return 0
}
func (x *SearchTasksRequest) GetHasAttempt() bool {
if x != nil {
return x.HasAttempt
}
return false
}
func (x *SearchTasksRequest) GetIssue() string {
if x != nil {
return x.Issue
}
return ""
}
func (x *SearchTasksRequest) GetHasIssue() bool {
if x != nil {
return x.HasIssue
}
return false
}
func (x *SearchTasksRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *SearchTasksRequest) GetHasName() bool {
if x != nil {
return x.HasName
}
return false
}
func (x *SearchTasksRequest) GetPatchset() string {
if x != nil {
return x.Patchset
}
return ""
}
func (x *SearchTasksRequest) GetHasPatchset() bool {
if x != nil {
return x.HasPatchset
}
return false
}
func (x *SearchTasksRequest) GetRepo() string {
if x != nil {
return x.Repo
}
return ""
}
func (x *SearchTasksRequest) GetHasRepo() bool {
if x != nil {
return x.HasRepo
}
return false
}
func (x *SearchTasksRequest) GetRevision() string {
if x != nil {
return x.Revision
}
return ""
}
func (x *SearchTasksRequest) GetHasRevision() bool {
if x != nil {
return x.HasRevision
}
return false
}
func (x *SearchTasksRequest) GetStatus() TaskStatus {
if x != nil {
return x.Status
}
return TaskStatus_TASK_STATUS_PENDING
}
func (x *SearchTasksRequest) GetHasStatus() bool {
if x != nil {
return x.HasStatus
}
return false
}
func (x *SearchTasksRequest) GetTimeStart() *timestamppb.Timestamp {
if x != nil {
return x.TimeStart
}
return nil
}
func (x *SearchTasksRequest) GetHasTimeStart() bool {
if x != nil {
return x.HasTimeStart
}
return false
}
func (x *SearchTasksRequest) GetTimeEnd() *timestamppb.Timestamp {
if x != nil {
return x.TimeEnd
}
return nil
}
func (x *SearchTasksRequest) GetHasTimeEnd() bool {
if x != nil {
return x.HasTimeEnd
}
return false
}
// SearchTasksResponse is a response returned from SearchTasks.
type SearchTasksResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tasks []*Task `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"`
}
func (x *SearchTasksResponse) Reset() {
*x = SearchTasksResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SearchTasksResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SearchTasksResponse) ProtoMessage() {}
func (x *SearchTasksResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SearchTasksResponse.ProtoReflect.Descriptor instead.
func (*SearchTasksResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{12}
}
func (x *SearchTasksResponse) GetTasks() []*Task {
if x != nil {
return x.Tasks
}
return nil
}
// GetSkipTaskRulesRequest is a request to GetSkipTaskRules.
type GetSkipTaskRulesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *GetSkipTaskRulesRequest) Reset() {
*x = GetSkipTaskRulesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetSkipTaskRulesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetSkipTaskRulesRequest) ProtoMessage() {}
func (x *GetSkipTaskRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetSkipTaskRulesRequest.ProtoReflect.Descriptor instead.
func (*GetSkipTaskRulesRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{13}
}
// SkipTaskRule is a rule which dictates when to skip scheduling a task.
type SkipTaskRule struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// added_by is the email address of the user who added this rule.
AddedBy string `protobuf:"bytes,1,opt,name=added_by,json=addedBy,proto3" json:"added_by,omitempty"`
// task_spec_patterns determines which tasks the rule applies to.
TaskSpecPatterns []string `protobuf:"bytes,2,rep,name=task_spec_patterns,json=taskSpecPatterns,proto3" json:"task_spec_patterns,omitempty"`
// commits determines which commits the rule applies to.
Commits []string `protobuf:"bytes,3,rep,name=commits,proto3" json:"commits,omitempty"`
// description provides a human-readable description of the rule, eg. to
// provide a reason for skipping the task(s) and to indicate when the rule
// may be removed.
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
// name is a brief descriptive name for the rule.
Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *SkipTaskRule) Reset() {
*x = SkipTaskRule{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SkipTaskRule) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SkipTaskRule) ProtoMessage() {}
func (x *SkipTaskRule) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SkipTaskRule.ProtoReflect.Descriptor instead.
func (*SkipTaskRule) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{14}
}
func (x *SkipTaskRule) GetAddedBy() string {
if x != nil {
return x.AddedBy
}
return ""
}
func (x *SkipTaskRule) GetTaskSpecPatterns() []string {
if x != nil {
return x.TaskSpecPatterns
}
return nil
}
func (x *SkipTaskRule) GetCommits() []string {
if x != nil {
return x.Commits
}
return nil
}
func (x *SkipTaskRule) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *SkipTaskRule) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// GetSkipTaskRulesResponse is a response returned from GetSkipTaskRules.
type GetSkipTaskRulesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rules []*SkipTaskRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
}
func (x *GetSkipTaskRulesResponse) Reset() {
*x = GetSkipTaskRulesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetSkipTaskRulesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetSkipTaskRulesResponse) ProtoMessage() {}
func (x *GetSkipTaskRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetSkipTaskRulesResponse.ProtoReflect.Descriptor instead.
func (*GetSkipTaskRulesResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{15}
}
func (x *GetSkipTaskRulesResponse) GetRules() []*SkipTaskRule {
if x != nil {
return x.Rules
}
return nil
}
// AddSkipTaskRuleRequest is a request to AddSkipTaskRule.
type AddSkipTaskRuleRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// task_spec_patterns determines which tasks the rule applies to.
TaskSpecPatterns []string `protobuf:"bytes,2,rep,name=task_spec_patterns,json=taskSpecPatterns,proto3" json:"task_spec_patterns,omitempty"`
// commits determines which commits the rule applies to.
Commits []string `protobuf:"bytes,3,rep,name=commits,proto3" json:"commits,omitempty"`
// description provides a human-readable description of the rule, eg. to
// provide a reason for skipping the task(s) and to indicate when the rule
// may be removed.
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
// name is a brief descriptive name for the rule.
Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *AddSkipTaskRuleRequest) Reset() {
*x = AddSkipTaskRuleRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AddSkipTaskRuleRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddSkipTaskRuleRequest) ProtoMessage() {}
func (x *AddSkipTaskRuleRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AddSkipTaskRuleRequest.ProtoReflect.Descriptor instead.
func (*AddSkipTaskRuleRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{16}
}
func (x *AddSkipTaskRuleRequest) GetTaskSpecPatterns() []string {
if x != nil {
return x.TaskSpecPatterns
}
return nil
}
func (x *AddSkipTaskRuleRequest) GetCommits() []string {
if x != nil {
return x.Commits
}
return nil
}
func (x *AddSkipTaskRuleRequest) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *AddSkipTaskRuleRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// AddSkipTaskRuleResponse is a response returned from AddSkipTaskRule.
type AddSkipTaskRuleResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rules []*SkipTaskRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
}
func (x *AddSkipTaskRuleResponse) Reset() {
*x = AddSkipTaskRuleResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AddSkipTaskRuleResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddSkipTaskRuleResponse) ProtoMessage() {}
func (x *AddSkipTaskRuleResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AddSkipTaskRuleResponse.ProtoReflect.Descriptor instead.
func (*AddSkipTaskRuleResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{17}
}
func (x *AddSkipTaskRuleResponse) GetRules() []*SkipTaskRule {
if x != nil {
return x.Rules
}
return nil
}
// DeleteSkipTaskRuleRequest is a request to DeleteSkipTaskRule.
type DeleteSkipTaskRuleRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID of the rule to delete.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // TODO(borenet): Where does this come from?
}
func (x *DeleteSkipTaskRuleRequest) Reset() {
*x = DeleteSkipTaskRuleRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteSkipTaskRuleRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteSkipTaskRuleRequest) ProtoMessage() {}
func (x *DeleteSkipTaskRuleRequest) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteSkipTaskRuleRequest.ProtoReflect.Descriptor instead.
func (*DeleteSkipTaskRuleRequest) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{18}
}
func (x *DeleteSkipTaskRuleRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
// DeleteSkipTaskRuleResponse is a response returned from
// DeleteSkipTaskRule.
type DeleteSkipTaskRuleResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rules []*SkipTaskRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
}
func (x *DeleteSkipTaskRuleResponse) Reset() {
*x = DeleteSkipTaskRuleResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteSkipTaskRuleResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteSkipTaskRuleResponse) ProtoMessage() {}
func (x *DeleteSkipTaskRuleResponse) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteSkipTaskRuleResponse.ProtoReflect.Descriptor instead.
func (*DeleteSkipTaskRuleResponse) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{19}
}
func (x *DeleteSkipTaskRuleResponse) GetRules() []*SkipTaskRule {
if x != nil {
return x.Rules
}
return nil
}
// encapsulates all of the parameters which define the state of a
//
// repo.
type RepoState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Patch information, optional.
Patch *RepoState_Patch `protobuf:"bytes,1,opt,name=patch,proto3" json:"patch,omitempty"`
// Repository URL.
Repo string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"`
// Revision ID, ie. commit hash.
Revision string `protobuf:"bytes,3,opt,name=revision,proto3" json:"revision,omitempty"`
}
func (x *RepoState) Reset() {
*x = RepoState{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RepoState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RepoState) ProtoMessage() {}
func (x *RepoState) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RepoState.ProtoReflect.Descriptor instead.
func (*RepoState) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{20}
}
func (x *RepoState) GetPatch() *RepoState_Patch {
if x != nil {
return x.Patch
}
return nil
}
func (x *RepoState) GetRepo() string {
if x != nil {
return x.Repo
}
return ""
}
func (x *RepoState) GetRevision() string {
if x != nil {
return x.Revision
}
return ""
}
// TaskKey is a struct used for identifying a Task instance. Note that more
// than one Task may have the same TaskKey, eg. in the case of retries.
type TaskKey struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// State of the repository for this task.
RepoState *RepoState `protobuf:"bytes,1,opt,name=repo_state,json=repoState,proto3" json:"repo_state,omitempty"`
// Name of the task.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// If this task is part of a force-triggered job, ID of the job.
ForcedJobId string `protobuf:"bytes,3,opt,name=forced_job_id,json=forcedJobId,proto3" json:"forced_job_id,omitempty"`
}
func (x *TaskKey) Reset() {
*x = TaskKey{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskKey) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskKey) ProtoMessage() {}
func (x *TaskKey) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TaskKey.ProtoReflect.Descriptor instead.
func (*TaskKey) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{21}
}
func (x *TaskKey) GetRepoState() *RepoState {
if x != nil {
return x.RepoState
}
return nil
}
func (x *TaskKey) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TaskKey) GetForcedJobId() string {
if x != nil {
return x.ForcedJobId
}
return ""
}
// Task describes a single task. This must be kept in sync with types.Task.
type Task struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// attempt is the attempt number of this task, starting with zero.
Attempt int32 `protobuf:"varint,1,opt,name=attempt,proto3" json:"attempt,omitempty"`
// commits are the commits which were tested in this Task. The list may
// change due to backfilling/bisecting.
Commits []string `protobuf:"bytes,2,rep,name=commits,proto3" json:"commits,omitempty"`
// created is the creation timestamp.
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
// db_modified is the time of the last successful call to TaskDB.PutTask/s
// for this Task, or zero if the task is new. It is not related to the
// ModifiedTs time of the associated Swarming task.
DbModifiedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=db_modified_at,json=dbModifiedAt,proto3" json:"db_modified_at,omitempty"`
// finished is the time the task stopped running or expired from the queue, or
// zero if the task is pending or running.
FinishedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=finished_at,json=finishedAt,proto3" json:"finished_at,omitempty"`
// id is a generated unique identifier for this Task instance. Must be
// URL-safe.
Id string `protobuf:"bytes,6,opt,name=id,proto3" json:"id,omitempty"`
// isolated_output is the isolated hash of any outputs produced by this Task.
// Filled in when the task is completed. This field will not be set if the
// Task does not correspond to a Swarming task.
IsolatedOutput string `protobuf:"bytes,7,opt,name=isolated_output,json=isolatedOutput,proto3" json:"isolated_output,omitempty"`
// jobs are the IDs of all Jobs which utilized this Task.
Jobs []string `protobuf:"bytes,8,rep,name=jobs,proto3" json:"jobs,omitempty"`
// max_attempts is the maximum number of attempts for this TaskSpec.
MaxAttempts int32 `protobuf:"varint,9,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"`
// parent_task_ids are IDs of tasks which satisfied this task's dependencies.
ParentTaskIds []string `protobuf:"bytes,10,rep,name=parent_task_ids,json=parentTaskIds,proto3" json:"parent_task_ids,omitempty"`
// properties contains key-value pairs from external sources. Both key and
// value must be UTF-8 strings. Prefer a JavaScript identifier for key. Use
// base64 encoding for binary data.
Properties map[string]string `protobuf:"bytes,11,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// retry_of is the ID of the task which this task is a retry of, if any.
RetryOf string `protobuf:"bytes,12,opt,name=retry_of,json=retryOf,proto3" json:"retry_of,omitempty"`
// started is the time the task started running, or zero if the task is
// pending, or the same as Finished if the task never ran.
StartedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
// status is the current task status, default TASK_STATUS_PENDING.
Status TaskStatus `protobuf:"varint,14,opt,name=status,proto3,enum=task_scheduler.rpc.TaskStatus" json:"status,omitempty"`
// swarming_bot_id is the ID of the Swarming bot that ran this task. This
// field will not be set if the Task does not correspond to a Swarming task or
// if the task is still pending.
SwarmingBotId string `protobuf:"bytes,15,opt,name=swarming_bot_id,json=swarmingBotId,proto3" json:"swarming_bot_id,omitempty"`
// swarming_task_id is the Swarming task ID. This field will not be set if the
// Task does not correspond to a Swarming task.
SwarmingTaskId string `protobuf:"bytes,16,opt,name=swarming_task_id,json=swarmingTaskId,proto3" json:"swarming_task_id,omitempty"`
// task_key is a struct which describes aspects of the Task related
// to the current state of the repo when it ran, and about the Task
// itself.
TaskKey *TaskKey `protobuf:"bytes,17,opt,name=task_key,json=taskKey,proto3" json:"task_key,omitempty"`
// stats provides statistics about the task.
Stats *TaskStats `protobuf:"bytes,18,opt,name=stats,proto3" json:"stats,omitempty"`
}
func (x *Task) Reset() {
*x = Task{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Task) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Task) ProtoMessage() {}
func (x *Task) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Task.ProtoReflect.Descriptor instead.
func (*Task) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{22}
}
func (x *Task) GetAttempt() int32 {
if x != nil {
return x.Attempt
}
return 0
}
func (x *Task) GetCommits() []string {
if x != nil {
return x.Commits
}
return nil
}
func (x *Task) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
func (x *Task) GetDbModifiedAt() *timestamppb.Timestamp {
if x != nil {
return x.DbModifiedAt
}
return nil
}
func (x *Task) GetFinishedAt() *timestamppb.Timestamp {
if x != nil {
return x.FinishedAt
}
return nil
}
func (x *Task) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Task) GetIsolatedOutput() string {
if x != nil {
return x.IsolatedOutput
}
return ""
}
func (x *Task) GetJobs() []string {
if x != nil {
return x.Jobs
}
return nil
}
func (x *Task) GetMaxAttempts() int32 {
if x != nil {
return x.MaxAttempts
}
return 0
}
func (x *Task) GetParentTaskIds() []string {
if x != nil {
return x.ParentTaskIds
}
return nil
}
func (x *Task) GetProperties() map[string]string {
if x != nil {
return x.Properties
}
return nil
}
func (x *Task) GetRetryOf() string {
if x != nil {
return x.RetryOf
}
return ""
}
func (x *Task) GetStartedAt() *timestamppb.Timestamp {
if x != nil {
return x.StartedAt
}
return nil
}
func (x *Task) GetStatus() TaskStatus {
if x != nil {
return x.Status
}
return TaskStatus_TASK_STATUS_PENDING
}
func (x *Task) GetSwarmingBotId() string {
if x != nil {
return x.SwarmingBotId
}
return ""
}
func (x *Task) GetSwarmingTaskId() string {
if x != nil {
return x.SwarmingTaskId
}
return ""
}
func (x *Task) GetTaskKey() *TaskKey {
if x != nil {
return x.TaskKey
}
return nil
}
func (x *Task) GetStats() *TaskStats {
if x != nil {
return x.Stats
}
return nil
}
// TaskDependencies represents dependencies of a task.
type TaskDependencies struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the task.
Task string `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
// Names of the tasks which this task depends on.
Dependencies []string `protobuf:"bytes,2,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
}
func (x *TaskDependencies) Reset() {
*x = TaskDependencies{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskDependencies) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskDependencies) ProtoMessage() {}
func (x *TaskDependencies) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TaskDependencies.ProtoReflect.Descriptor instead.
func (*TaskDependencies) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{23}
}
func (x *TaskDependencies) GetTask() string {
if x != nil {
return x.Task
}
return ""
}
func (x *TaskDependencies) GetDependencies() []string {
if x != nil {
return x.Dependencies
}
return nil
}
// TaskSummary provides a subset of the information of a Task.
type TaskSummary struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Attempt int32 `protobuf:"varint,2,opt,name=attempt,proto3" json:"attempt,omitempty"`
MaxAttempts int32 `protobuf:"varint,3,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"`
Status TaskStatus `protobuf:"varint,4,opt,name=status,proto3,enum=task_scheduler.rpc.TaskStatus" json:"status,omitempty"`
SwarmingTaskId string `protobuf:"bytes,5,opt,name=swarming_task_id,json=swarmingTaskId,proto3" json:"swarming_task_id,omitempty"`
}
func (x *TaskSummary) Reset() {
*x = TaskSummary{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskSummary) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskSummary) ProtoMessage() {}
func (x *TaskSummary) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[24]
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 TaskSummary.ProtoReflect.Descriptor instead.
func (*TaskSummary) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{24}
}
func (x *TaskSummary) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *TaskSummary) GetAttempt() int32 {
if x != nil {
return x.Attempt
}
return 0
}
func (x *TaskSummary) GetMaxAttempts() int32 {
if x != nil {
return x.MaxAttempts
}
return 0
}
func (x *TaskSummary) GetStatus() TaskStatus {
if x != nil {
return x.Status
}
return TaskStatus_TASK_STATUS_PENDING
}
func (x *TaskSummary) GetSwarmingTaskId() string {
if x != nil {
return x.SwarmingTaskId
}
return ""
}
// TODO: Make optional.
// TODO: Make optional.
// TaskSummaries groups TaskSummaries which have the same TaskSpec name.
type TaskSummaries struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Tasks []*TaskSummary `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks,omitempty"`
}
func (x *TaskSummaries) Reset() {
*x = TaskSummaries{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskSummaries) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskSummaries) ProtoMessage() {}
func (x *TaskSummaries) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[25]
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 TaskSummaries.ProtoReflect.Descriptor instead.
func (*TaskSummaries) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{25}
}
func (x *TaskSummaries) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TaskSummaries) GetTasks() []*TaskSummary {
if x != nil {
return x.Tasks
}
return nil
}
// TaskDimensions contains the dimensions required for a given task.
type TaskDimensions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// task_name is the name of the task.
TaskName string `protobuf:"bytes,1,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`
// dimensions are the Swarming bot dimensions requested by the task.
Dimensions []string `protobuf:"bytes,2,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
}
func (x *TaskDimensions) Reset() {
*x = TaskDimensions{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskDimensions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskDimensions) ProtoMessage() {}
func (x *TaskDimensions) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TaskDimensions.ProtoReflect.Descriptor instead.
func (*TaskDimensions) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{26}
}
func (x *TaskDimensions) GetTaskName() string {
if x != nil {
return x.TaskName
}
return ""
}
func (x *TaskDimensions) GetDimensions() []string {
if x != nil {
return x.Dimensions
}
return nil
}
// TaskStats provides statistics about a task.
type TaskStats struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// total_overhead_s is the total amount of overhead for the task.
TotalOverheadS float32 `protobuf:"fixed32,1,opt,name=total_overhead_s,json=totalOverheadS,proto3" json:"total_overhead_s,omitempty"`
// download_overhead_s is the number of seconds spent downloading assets
// before running the task.
DownloadOverheadS float32 `protobuf:"fixed32,2,opt,name=download_overhead_s,json=downloadOverheadS,proto3" json:"download_overhead_s,omitempty"`
// upload_overhead_s is the number of seconds spent uploading assets
// before running the task.
UploadOverheadS float32 `protobuf:"fixed32,3,opt,name=upload_overhead_s,json=uploadOverheadS,proto3" json:"upload_overhead_s,omitempty"`
}
func (x *TaskStats) Reset() {
*x = TaskStats{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskStats) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskStats) ProtoMessage() {}
func (x *TaskStats) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TaskStats.ProtoReflect.Descriptor instead.
func (*TaskStats) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{27}
}
func (x *TaskStats) GetTotalOverheadS() float32 {
if x != nil {
return x.TotalOverheadS
}
return 0
}
func (x *TaskStats) GetDownloadOverheadS() float32 {
if x != nil {
return x.DownloadOverheadS
}
return 0
}
func (x *TaskStats) GetUploadOverheadS() float32 {
if x != nil {
return x.UploadOverheadS
}
return 0
}
// Job represents a set of Tasks which are executed as part of a larger effort.
// This must be kept in sync with types.Job.
type Job struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// buildbucket_build_id is the ID of the Buildbucket build with which this
// Job is associated, if one exists.
BuildbucketBuildId string `protobuf:"bytes,1,opt,name=buildbucket_build_id,json=buildbucketBuildId,proto3" json:"buildbucket_build_id,omitempty"`
// buildbucket_lease_key is the lease key for running a Buildbucket build.
// TODO(borenet): Maybe this doesn't belong in the DB.
BuildbucketLeaseKey string `protobuf:"bytes,2,opt,name=buildbucket_lease_key,json=buildbucketLeaseKey,proto3" json:"buildbucket_lease_key,omitempty"`
// created_at is the creation timestamp. This property should never change
// for a given Job instance.
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
// db_modified_at is the time of the last successful call to JobDB.PutJob/s
// for this Job, or zero if the job is new.
DbModifiedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=db_modified_at,json=dbModifiedAt,proto3" json:"db_modified_at,omitempty"`
// dependencies maps out the DAG of TaskSpec names upon which this Job
// depends. Keys are TaskSpec names and values are slices of TaskSpec
// names indicating which TaskSpecs that TaskSpec depends on. This
// property should never change for a given Job instance.
Dependencies []*TaskDependencies `protobuf:"bytes,5,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
// finished_at is the time at which all of the Job's dependencies finished,
// successfully or not.
FinishedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=finished_at,json=finishedAt,proto3" json:"finished_at,omitempty"`
// id is a unique identifier for the Job. This property should never
// change for a given Job instance, after its initial insertion into the
// DB.
Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
// is_force indicates whether this is a manually-triggered Job, as
// opposed to a normally scheduled one, or a try job.
IsForce bool `protobuf:"varint,8,opt,name=is_force,json=isForce,proto3" json:"is_force,omitempty"`
// name is a human-friendly descriptive name for the Job. All Jobs
// generated from the same JobSpec have the same name. This property
// should never change for a given Job instance.
Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"`
// priority is an indicator of the relative priority of this Job.
Priority float32 `protobuf:"fixed32,10,opt,name=priority,proto3" json:"priority,omitempty"`
// is the current state of the repository for this Job.
RepoState *RepoState `protobuf:"bytes,11,opt,name=repo_state,json=repoState,proto3" json:"repo_state,omitempty"`
// requested is the time at which this Job was requested. This is a
// commit timestamp, tryjob request creation timestamp, time at which
// the server received a force trigger job request, etc.
RequestedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=requested_at,json=requestedAt,proto3" json:"requested_at,omitempty"`
// started_at is the timestamp at which the Job first entered
// JOB_STATUS_IN_PROGRESS.
StartedAt *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
// status is the current Job status, default JOB_STATUS_IN_PROGRESS.
Status JobStatus `protobuf:"varint,13,opt,name=status,proto3,enum=task_scheduler.rpc.JobStatus" json:"status,omitempty"`
// status_details provides additional details for the status of the Job,
// including reasons it might have failed. This may be truncated due to
// database storage limitations, so it should not include, for example, full
// logs.
StatusDetails string `protobuf:"bytes,16,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"`
// tasks are the Task instances which satisfied the dependencies of
// the Job. Keys are TaskSpec names and values are slices of TaskSummary
// instances describing the Tasks.
Tasks []*TaskSummaries `protobuf:"bytes,14,rep,name=tasks,proto3" json:"tasks,omitempty"`
// taskDimensions are the dimensions of the tasks needed by this job.
TaskDimensions []*TaskDimensions `protobuf:"bytes,15,rep,name=task_dimensions,json=taskDimensions,proto3" json:"task_dimensions,omitempty"`
}
func (x *Job) Reset() {
*x = Job{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Job) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Job) ProtoMessage() {}
func (x *Job) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Job.ProtoReflect.Descriptor instead.
func (*Job) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{28}
}
func (x *Job) GetBuildbucketBuildId() string {
if x != nil {
return x.BuildbucketBuildId
}
return ""
}
func (x *Job) GetBuildbucketLeaseKey() string {
if x != nil {
return x.BuildbucketLeaseKey
}
return ""
}
func (x *Job) GetCreatedAt() *timestamppb.Timestamp {
if x != nil {
return x.CreatedAt
}
return nil
}
func (x *Job) GetDbModifiedAt() *timestamppb.Timestamp {
if x != nil {
return x.DbModifiedAt
}
return nil
}
func (x *Job) GetDependencies() []*TaskDependencies {
if x != nil {
return x.Dependencies
}
return nil
}
func (x *Job) GetFinishedAt() *timestamppb.Timestamp {
if x != nil {
return x.FinishedAt
}
return nil
}
func (x *Job) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Job) GetIsForce() bool {
if x != nil {
return x.IsForce
}
return false
}
func (x *Job) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Job) GetPriority() float32 {
if x != nil {
return x.Priority
}
return 0
}
func (x *Job) GetRepoState() *RepoState {
if x != nil {
return x.RepoState
}
return nil
}
func (x *Job) GetRequestedAt() *timestamppb.Timestamp {
if x != nil {
return x.RequestedAt
}
return nil
}
func (x *Job) GetStartedAt() *timestamppb.Timestamp {
if x != nil {
return x.StartedAt
}
return nil
}
func (x *Job) GetStatus() JobStatus {
if x != nil {
return x.Status
}
return JobStatus_JOB_STATUS_IN_PROGRESS
}
func (x *Job) GetStatusDetails() string {
if x != nil {
return x.StatusDetails
}
return ""
}
func (x *Job) GetTasks() []*TaskSummaries {
if x != nil {
return x.Tasks
}
return nil
}
func (x *Job) GetTaskDimensions() []*TaskDimensions {
if x != nil {
return x.TaskDimensions
}
return nil
}
// Patch describes a patch which may be applied to a code checkout.
type RepoState_Patch struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Issue ID of the Patch.
Issue string `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
// URL of the repository where this patch may be applied.
PatchRepo string `protobuf:"bytes,2,opt,name=patch_repo,json=patchRepo,proto3" json:"patch_repo,omitempty"`
// Patch set ID.
Patchset string `protobuf:"bytes,3,opt,name=patchset,proto3" json:"patchset,omitempty"`
// URL of the code review server.
Server string `protobuf:"bytes,4,opt,name=server,proto3" json:"server,omitempty"`
}
func (x *RepoState_Patch) Reset() {
*x = RepoState_Patch{}
if protoimpl.UnsafeEnabled {
mi := &file_rpc_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RepoState_Patch) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RepoState_Patch) ProtoMessage() {}
func (x *RepoState_Patch) ProtoReflect() protoreflect.Message {
mi := &file_rpc_proto_msgTypes[29]
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 RepoState_Patch.ProtoReflect.Descriptor instead.
func (*RepoState_Patch) Descriptor() ([]byte, []int) {
return file_rpc_proto_rawDescGZIP(), []int{20, 0}
}
func (x *RepoState_Patch) GetIssue() string {
if x != nil {
return x.Issue
}
return ""
}
func (x *RepoState_Patch) GetPatchRepo() string {
if x != nil {
return x.PatchRepo
}
return ""
}
func (x *RepoState_Patch) GetPatchset() string {
if x != nil {
return x.Patchset
}
return ""
}
func (x *RepoState_Patch) GetServer() string {
if x != nil {
return x.Server
}
return ""
}
var File_rpc_proto protoreflect.FileDescriptor
var file_rpc_proto_rawDesc = []byte{
0x0a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x74, 0x61, 0x73,
0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 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, 0x48, 0x0a, 0x0a, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x19,
0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d,
0x6d, 0x69, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0x48, 0x0a, 0x12, 0x54, 0x72,
0x69, 0x67, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x32, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x52, 0x04,
0x6a, 0x6f, 0x62, 0x73, 0x22, 0x2e, 0x0a, 0x13, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4a,
0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6a,
0x6f, 0x62, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6a, 0x6f,
0x62, 0x49, 0x64, 0x73, 0x22, 0x1f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3b, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65,
0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a,
0x6f, 0x62, 0x22, 0x22, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x03, 0x6a,
0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f,
0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x6f,
0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xda, 0x05, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63,
0x68, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x14,
0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x37,
0x0a, 0x18, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
0x52, 0x15, 0x68, 0x61, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x66, 0x6f,
0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x46, 0x6f, 0x72,
0x63, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x66, 0x6f, 0x72,
0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x49, 0x73, 0x46,
0x6f, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61,
0x73, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68,
0x61, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x68,
0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68,
0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73,
0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73,
0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73,
0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x50, 0x61, 0x74,
0x63, 0x68, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73,
0x5f, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73,
0x52, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x12, 0x21, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x52, 0x65, 0x76, 0x69, 0x73,
0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64,
0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61,
0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
0x68, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d,
0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x11, 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, 0x74, 0x69, 0x6d, 0x65, 0x53,
0x74, 0x61, 0x72, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61,
0x73, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x74, 0x69,
0x6d, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x13, 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, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e,
0x64, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x65, 0x6e,
0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x54, 0x69, 0x6d, 0x65,
0x45, 0x6e, 0x64, 0x22, 0x41, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4a, 0x6f, 0x62,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6a, 0x6f, 0x62,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73,
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x6f, 0x62,
0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73,
0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c,
0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x3f, 0x0a,
0x0f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x2c, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0xef,
0x04, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12,
0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74,
0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x73,
0x73, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x49, 0x73,
0x73, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x18, 0x07,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x12, 0x21,
0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x18, 0x08,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x50, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65,
0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x70,
0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, 0x6f,
0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c,
0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12,
0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x1e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, 0x73,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73,
0x74, 0x61, 0x72, 0x74, 0x18, 0x0f, 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, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72,
0x74, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74,
0x61, 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x54, 0x69,
0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f,
0x65, 0x6e, 0x64, 0x18, 0x11, 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, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x20,
0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x12,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64,
0x22, 0x45, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63,
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b,
0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x6b,
0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52,
0x75, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x65, 0x64, 0x42, 0x79, 0x12, 0x2c,
0x0a, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x74,
0x65, 0x72, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x73, 0x6b,
0x53, 0x70, 0x65, 0x63, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07,
0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63,
0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x18,
0x47, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73,
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6b, 0x69,
0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73,
0x22, 0x96, 0x01, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b,
0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x70, 0x65,
0x63, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
0x69, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x17, 0x41, 0x64, 0x64,
0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64,
0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73,
0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x19,
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75,
0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x1a, 0x44, 0x65, 0x6c,
0x65, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63,
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6b, 0x69, 0x70,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22,
0xe8, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a,
0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x63,
0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08,
0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x70, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x63,
0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x63, 0x68,
0x5f, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x74,
0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73,
0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73,
0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x7f, 0x0a, 0x07, 0x54, 0x61,
0x73, 0x6b, 0x4b, 0x65, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x73, 0x74,
0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x6b,
0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52,
0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x53, 0x74,
0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65,
0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0xe2, 0x06, 0x0a, 0x04,
0x54, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x18,
0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0e, 0x64, 0x62, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
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, 0x0c, 0x64, 0x62, 0x4d, 0x6f, 0x64, 0x69, 0x66,
0x69, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 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, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
0x41, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f,
0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x73, 0x6f,
0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6a,
0x6f, 0x62, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12,
0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18,
0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70,
0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73,
0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72,
0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x70, 0x72,
0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28,
0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
0x74, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x66,
0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x66, 0x12,
0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 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, 0x65, 0x64, 0x41, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74,
0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x74, 0x61, 0x73,
0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x62,
0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x10,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61,
0x73, 0x6b, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6b, 0x65, 0x79,
0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63,
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b,
0x4b, 0x65, 0x79, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05,
0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
0x22, 0x4a, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e,
0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65,
0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c,
0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0xbc, 0x01, 0x0a,
0x0b, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07,
0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61,
0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74,
0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61,
0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61,
0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x74, 0x61, 0x73, 0x6b,
0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54,
0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x0d, 0x54,
0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x35, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1f, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x4d, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x44,
0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73,
0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61,
0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53,
0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6f, 0x76,
0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e,
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x53, 0x12, 0x2e,
0x0a, 0x13, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x68,
0x65, 0x61, 0x64, 0x5f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x64, 0x6f, 0x77,
0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x53, 0x12, 0x2a,
0x0a, 0x11, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61,
0x64, 0x5f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61,
0x64, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x53, 0x22, 0xe6, 0x06, 0x0a, 0x03, 0x4a,
0x6f, 0x62, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x12, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x69,
0x6c, 0x64, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x13, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x4c, 0x65, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0e, 0x64, 0x62, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
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, 0x0c, 0x64, 0x62, 0x4d, 0x6f, 0x64, 0x69, 0x66,
0x69, 0x65, 0x64, 0x41, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65,
0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65,
0x73, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12,
0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08,
0x69, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
0x69, 0x73, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70,
0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x5f,
0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6f,
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 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, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f,
0x61, 0x74, 0x18, 0x11, 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, 0x65, 0x64, 0x41, 0x74, 0x12,
0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x1d, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x37, 0x0a,
0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52,
0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64,
0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x22, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x2a, 0x88, 0x01, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55,
0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x54,
0x41, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49,
0x4e, 0x47, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41,
0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a,
0x13, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49,
0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x53,
0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x53, 0x48, 0x41, 0x50, 0x10, 0x04, 0x2a, 0xa1,
0x01, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x16,
0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52,
0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f,
0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01,
0x12, 0x16, 0x0a, 0x12, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46,
0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4a, 0x4f, 0x42, 0x5f,
0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4d, 0x49, 0x53, 0x48, 0x41, 0x50, 0x10, 0x03, 0x12,
0x17, 0x0a, 0x13, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41,
0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f,
0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44,
0x10, 0x05, 0x32, 0x82, 0x07, 0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x63, 0x68, 0x65, 0x64,
0x75, 0x6c, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x0b, 0x54,
0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x2e, 0x74, 0x61, 0x73,
0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x27, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4a,
0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x47,
0x65, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x21, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68,
0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f,
0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f,
0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65,
0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x09,
0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x12, 0x24, 0x2e, 0x74, 0x61, 0x73, 0x6b,
0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43,
0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x25, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
0x4a, 0x6f, 0x62, 0x73, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65,
0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x22,
0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63,
0x68, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x26, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63,
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72,
0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x6b,
0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x47, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f,
0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65,
0x74, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x6b, 0x69,
0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x73, 0x6b,
0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x41,
0x64, 0x64, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x63, 0x68,
0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x6b,
0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x70,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2d, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f,
0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73,
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x6c,
0x65, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6c, 0x65, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x29, 0x5a, 0x27, 0x67, 0x6f, 0x2e, 0x73, 0x6b,
0x69, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x74, 0x61, 0x73,
0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2f, 0x67, 0x6f, 0x2f, 0x72,
0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_rpc_proto_rawDescOnce sync.Once
file_rpc_proto_rawDescData = file_rpc_proto_rawDesc
)
func file_rpc_proto_rawDescGZIP() []byte {
file_rpc_proto_rawDescOnce.Do(func() {
file_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_rpc_proto_rawDescData)
})
return file_rpc_proto_rawDescData
}
var file_rpc_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 31)
var file_rpc_proto_goTypes = []interface{}{
(TaskStatus)(0), // 0: task_scheduler.rpc.TaskStatus
(JobStatus)(0), // 1: task_scheduler.rpc.JobStatus
(*TriggerJob)(nil), // 2: task_scheduler.rpc.TriggerJob
(*TriggerJobsRequest)(nil), // 3: task_scheduler.rpc.TriggerJobsRequest
(*TriggerJobsResponse)(nil), // 4: task_scheduler.rpc.TriggerJobsResponse
(*GetJobRequest)(nil), // 5: task_scheduler.rpc.GetJobRequest
(*GetJobResponse)(nil), // 6: task_scheduler.rpc.GetJobResponse
(*CancelJobRequest)(nil), // 7: task_scheduler.rpc.CancelJobRequest
(*CancelJobResponse)(nil), // 8: task_scheduler.rpc.CancelJobResponse
(*SearchJobsRequest)(nil), // 9: task_scheduler.rpc.SearchJobsRequest
(*SearchJobsResponse)(nil), // 10: task_scheduler.rpc.SearchJobsResponse
(*GetTaskRequest)(nil), // 11: task_scheduler.rpc.GetTaskRequest
(*GetTaskResponse)(nil), // 12: task_scheduler.rpc.GetTaskResponse
(*SearchTasksRequest)(nil), // 13: task_scheduler.rpc.SearchTasksRequest
(*SearchTasksResponse)(nil), // 14: task_scheduler.rpc.SearchTasksResponse
(*GetSkipTaskRulesRequest)(nil), // 15: task_scheduler.rpc.GetSkipTaskRulesRequest
(*SkipTaskRule)(nil), // 16: task_scheduler.rpc.SkipTaskRule
(*GetSkipTaskRulesResponse)(nil), // 17: task_scheduler.rpc.GetSkipTaskRulesResponse
(*AddSkipTaskRuleRequest)(nil), // 18: task_scheduler.rpc.AddSkipTaskRuleRequest
(*AddSkipTaskRuleResponse)(nil), // 19: task_scheduler.rpc.AddSkipTaskRuleResponse
(*DeleteSkipTaskRuleRequest)(nil), // 20: task_scheduler.rpc.DeleteSkipTaskRuleRequest
(*DeleteSkipTaskRuleResponse)(nil), // 21: task_scheduler.rpc.DeleteSkipTaskRuleResponse
(*RepoState)(nil), // 22: task_scheduler.rpc.RepoState
(*TaskKey)(nil), // 23: task_scheduler.rpc.TaskKey
(*Task)(nil), // 24: task_scheduler.rpc.Task
(*TaskDependencies)(nil), // 25: task_scheduler.rpc.TaskDependencies
(*TaskSummary)(nil), // 26: task_scheduler.rpc.TaskSummary
(*TaskSummaries)(nil), // 27: task_scheduler.rpc.TaskSummaries
(*TaskDimensions)(nil), // 28: task_scheduler.rpc.TaskDimensions
(*TaskStats)(nil), // 29: task_scheduler.rpc.TaskStats
(*Job)(nil), // 30: task_scheduler.rpc.Job
(*RepoState_Patch)(nil), // 31: task_scheduler.rpc.RepoState.Patch
nil, // 32: task_scheduler.rpc.Task.PropertiesEntry
(*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp
}
var file_rpc_proto_depIdxs = []int32{
2, // 0: task_scheduler.rpc.TriggerJobsRequest.jobs:type_name -> task_scheduler.rpc.TriggerJob
30, // 1: task_scheduler.rpc.GetJobResponse.job:type_name -> task_scheduler.rpc.Job
30, // 2: task_scheduler.rpc.CancelJobResponse.job:type_name -> task_scheduler.rpc.Job
1, // 3: task_scheduler.rpc.SearchJobsRequest.status:type_name -> task_scheduler.rpc.JobStatus
33, // 4: task_scheduler.rpc.SearchJobsRequest.time_start:type_name -> google.protobuf.Timestamp
33, // 5: task_scheduler.rpc.SearchJobsRequest.time_end:type_name -> google.protobuf.Timestamp
30, // 6: task_scheduler.rpc.SearchJobsResponse.jobs:type_name -> task_scheduler.rpc.Job
24, // 7: task_scheduler.rpc.GetTaskResponse.task:type_name -> task_scheduler.rpc.Task
0, // 8: task_scheduler.rpc.SearchTasksRequest.status:type_name -> task_scheduler.rpc.TaskStatus
33, // 9: task_scheduler.rpc.SearchTasksRequest.time_start:type_name -> google.protobuf.Timestamp
33, // 10: task_scheduler.rpc.SearchTasksRequest.time_end:type_name -> google.protobuf.Timestamp
24, // 11: task_scheduler.rpc.SearchTasksResponse.tasks:type_name -> task_scheduler.rpc.Task
16, // 12: task_scheduler.rpc.GetSkipTaskRulesResponse.rules:type_name -> task_scheduler.rpc.SkipTaskRule
16, // 13: task_scheduler.rpc.AddSkipTaskRuleResponse.rules:type_name -> task_scheduler.rpc.SkipTaskRule
16, // 14: task_scheduler.rpc.DeleteSkipTaskRuleResponse.rules:type_name -> task_scheduler.rpc.SkipTaskRule
31, // 15: task_scheduler.rpc.RepoState.patch:type_name -> task_scheduler.rpc.RepoState.Patch
22, // 16: task_scheduler.rpc.TaskKey.repo_state:type_name -> task_scheduler.rpc.RepoState
33, // 17: task_scheduler.rpc.Task.created_at:type_name -> google.protobuf.Timestamp
33, // 18: task_scheduler.rpc.Task.db_modified_at:type_name -> google.protobuf.Timestamp
33, // 19: task_scheduler.rpc.Task.finished_at:type_name -> google.protobuf.Timestamp
32, // 20: task_scheduler.rpc.Task.properties:type_name -> task_scheduler.rpc.Task.PropertiesEntry
33, // 21: task_scheduler.rpc.Task.started_at:type_name -> google.protobuf.Timestamp
0, // 22: task_scheduler.rpc.Task.status:type_name -> task_scheduler.rpc.TaskStatus
23, // 23: task_scheduler.rpc.Task.task_key:type_name -> task_scheduler.rpc.TaskKey
29, // 24: task_scheduler.rpc.Task.stats:type_name -> task_scheduler.rpc.TaskStats
0, // 25: task_scheduler.rpc.TaskSummary.status:type_name -> task_scheduler.rpc.TaskStatus
26, // 26: task_scheduler.rpc.TaskSummaries.tasks:type_name -> task_scheduler.rpc.TaskSummary
33, // 27: task_scheduler.rpc.Job.created_at:type_name -> google.protobuf.Timestamp
33, // 28: task_scheduler.rpc.Job.db_modified_at:type_name -> google.protobuf.Timestamp
25, // 29: task_scheduler.rpc.Job.dependencies:type_name -> task_scheduler.rpc.TaskDependencies
33, // 30: task_scheduler.rpc.Job.finished_at:type_name -> google.protobuf.Timestamp
22, // 31: task_scheduler.rpc.Job.repo_state:type_name -> task_scheduler.rpc.RepoState
33, // 32: task_scheduler.rpc.Job.requested_at:type_name -> google.protobuf.Timestamp
33, // 33: task_scheduler.rpc.Job.started_at:type_name -> google.protobuf.Timestamp
1, // 34: task_scheduler.rpc.Job.status:type_name -> task_scheduler.rpc.JobStatus
27, // 35: task_scheduler.rpc.Job.tasks:type_name -> task_scheduler.rpc.TaskSummaries
28, // 36: task_scheduler.rpc.Job.task_dimensions:type_name -> task_scheduler.rpc.TaskDimensions
3, // 37: task_scheduler.rpc.TaskSchedulerService.TriggerJobs:input_type -> task_scheduler.rpc.TriggerJobsRequest
5, // 38: task_scheduler.rpc.TaskSchedulerService.GetJob:input_type -> task_scheduler.rpc.GetJobRequest
7, // 39: task_scheduler.rpc.TaskSchedulerService.CancelJob:input_type -> task_scheduler.rpc.CancelJobRequest
9, // 40: task_scheduler.rpc.TaskSchedulerService.SearchJobs:input_type -> task_scheduler.rpc.SearchJobsRequest
11, // 41: task_scheduler.rpc.TaskSchedulerService.GetTask:input_type -> task_scheduler.rpc.GetTaskRequest
13, // 42: task_scheduler.rpc.TaskSchedulerService.SearchTasks:input_type -> task_scheduler.rpc.SearchTasksRequest
15, // 43: task_scheduler.rpc.TaskSchedulerService.GetSkipTaskRules:input_type -> task_scheduler.rpc.GetSkipTaskRulesRequest
18, // 44: task_scheduler.rpc.TaskSchedulerService.AddSkipTaskRule:input_type -> task_scheduler.rpc.AddSkipTaskRuleRequest
20, // 45: task_scheduler.rpc.TaskSchedulerService.DeleteSkipTaskRule:input_type -> task_scheduler.rpc.DeleteSkipTaskRuleRequest
4, // 46: task_scheduler.rpc.TaskSchedulerService.TriggerJobs:output_type -> task_scheduler.rpc.TriggerJobsResponse
6, // 47: task_scheduler.rpc.TaskSchedulerService.GetJob:output_type -> task_scheduler.rpc.GetJobResponse
8, // 48: task_scheduler.rpc.TaskSchedulerService.CancelJob:output_type -> task_scheduler.rpc.CancelJobResponse
10, // 49: task_scheduler.rpc.TaskSchedulerService.SearchJobs:output_type -> task_scheduler.rpc.SearchJobsResponse
12, // 50: task_scheduler.rpc.TaskSchedulerService.GetTask:output_type -> task_scheduler.rpc.GetTaskResponse
14, // 51: task_scheduler.rpc.TaskSchedulerService.SearchTasks:output_type -> task_scheduler.rpc.SearchTasksResponse
17, // 52: task_scheduler.rpc.TaskSchedulerService.GetSkipTaskRules:output_type -> task_scheduler.rpc.GetSkipTaskRulesResponse
19, // 53: task_scheduler.rpc.TaskSchedulerService.AddSkipTaskRule:output_type -> task_scheduler.rpc.AddSkipTaskRuleResponse
21, // 54: task_scheduler.rpc.TaskSchedulerService.DeleteSkipTaskRule:output_type -> task_scheduler.rpc.DeleteSkipTaskRuleResponse
46, // [46:55] is the sub-list for method output_type
37, // [37:46] is the sub-list for method input_type
37, // [37:37] is the sub-list for extension type_name
37, // [37:37] is the sub-list for extension extendee
0, // [0:37] is the sub-list for field type_name
}
func init() { file_rpc_proto_init() }
func file_rpc_proto_init() {
if File_rpc_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TriggerJob); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TriggerJobsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TriggerJobsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetJobRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetJobResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CancelJobRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CancelJobResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SearchJobsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SearchJobsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetTaskRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetTaskResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SearchTasksRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SearchTasksResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetSkipTaskRulesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SkipTaskRule); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetSkipTaskRulesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddSkipTaskRuleRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddSkipTaskRuleResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteSkipTaskRuleRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteSkipTaskRuleResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RepoState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskKey); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Task); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskDependencies); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskSummary); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskSummaries); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskDimensions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskStats); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Job); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RepoState_Patch); 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_rpc_proto_rawDesc,
NumEnums: 2,
NumMessages: 31,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_rpc_proto_goTypes,
DependencyIndexes: file_rpc_proto_depIdxs,
EnumInfos: file_rpc_proto_enumTypes,
MessageInfos: file_rpc_proto_msgTypes,
}.Build()
File_rpc_proto = out.File
file_rpc_proto_rawDesc = nil
file_rpc_proto_goTypes = nil
file_rpc_proto_depIdxs = nil
}