From 7ddebd3d20b7cbc7eb904be678c77aac190101d8 Mon Sep 17 00:00:00 2001 From: Yash bhardwaj Date: Tue, 21 Jul 2026 11:30:44 +0530 Subject: [PATCH 1/3] fix: add replay job config to replay dry run --- Makefile | 2 +- core/scheduler/handler/v1beta1/replay.go | 8 + .../service/executor_input_compiler.go | 1 + core/scheduler/service/replay_service.go | 13 + .../optimus/core/v1beta1/job_run.pb.go | 1290 +++++++---------- .../optimus/core/v1beta1/job_run.pb.gw.go | 81 -- .../optimus/core/v1beta1/job_run.swagger.json | 173 +-- .../optimus/core/v1beta1/replay.pb.go | 422 +++--- .../optimus/core/v1beta1/replay.swagger.json | 6 + 9 files changed, 737 insertions(+), 1259 deletions(-) diff --git a/Makefile b/Makefile index 67fd71cc9e..72e0178d88 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ NAME = "github.com/goto/optimus" LAST_COMMIT := $(shell git rev-parse --short HEAD) LAST_TAG := "$(shell git rev-list --tags --max-count=1)" OPMS_VERSION := "$(shell git describe --tags ${LAST_TAG})-next" -PROTON_COMMIT := "0d8cde8f458ccf46ea3176b0265168091cc77e8b" +PROTON_COMMIT := "8bc01726b64979b3a2df23741845449792a932c1" .PHONY: build test test-ci generate-proto unit-test-ci integration-test vet coverage clean install lint diff --git a/core/scheduler/handler/v1beta1/replay.go b/core/scheduler/handler/v1beta1/replay.go index e90c0791ce..1e9a988e94 100644 --- a/core/scheduler/handler/v1beta1/replay.go +++ b/core/scheduler/handler/v1beta1/replay.go @@ -25,6 +25,7 @@ type ReplayService interface { GetReplayByID(ctx context.Context, replayID uuid.UUID) (replay *scheduler.ReplayWithRun, err error) GetReplayByApprovalID(ctx context.Context, approvalID string) (*scheduler.ReplayWithRun, error) GetRunsStatus(ctx context.Context, tenant tenant.Tenant, jobName scheduler.JobName, config *scheduler.ReplayConfig) (runs []*scheduler.JobRunStatus, err error) + GetJobConfig(ctx context.Context, tenant tenant.Tenant, jobName scheduler.JobName, config *scheduler.ReplayConfig) (map[string]string, error) CancelReplay(ctx context.Context, replayWithRun *scheduler.ReplayWithRun) error } @@ -61,8 +62,15 @@ func (h ReplayHandler) ReplayDryRun(ctx context.Context, req *pb.ReplayDryRunReq return nil, errors.GRPCErr(err, "unable to fetch runs status for "+req.JobName) } + jobConfig, err := h.service.GetJobConfig(ctx, replayReq.Tenant(), replayReq.JobName(), replayReq.Config()) + if err != nil { + h.l.Error("error fetching runs status for replay dry run: %s", err) + return nil, errors.GRPCErr(err, "unable to fetch runs status for "+req.JobName) + } + return &pb.ReplayDryRunResponse{ ReplayRuns: replayRunsToProto(runs), + JobConfig: jobConfig, }, nil } diff --git a/core/scheduler/service/executor_input_compiler.go b/core/scheduler/service/executor_input_compiler.go index fb82b8261c..7ea4c830a7 100644 --- a/core/scheduler/service/executor_input_compiler.go +++ b/core/scheduler/service/executor_input_compiler.go @@ -138,6 +138,7 @@ func (i InputCompiler) Compile(ctx context.Context, job *scheduler.JobWithDetail ) mergedContext := utils.MergeAnyMaps(taskContext, allTaskConfigs) + ctx = context.WithValue(ctx, "run-mode", scheduler.DryRun) fileMap, err := i.assetCompiler.CompileJobRunAssets(ctx, job.Job, systemDefinedVars, interval, mergedContext) if err != nil { i.logger.Error("error compiling job run assets: %s", err) diff --git a/core/scheduler/service/replay_service.go b/core/scheduler/service/replay_service.go index 2bf4c3b1b3..6b3a8eeb3b 100644 --- a/core/scheduler/service/replay_service.go +++ b/core/scheduler/service/replay_service.go @@ -42,6 +42,7 @@ type ReplayRepository interface { ScanAbandonedReplayRequests(ctx context.Context, unhandledClassifierDuration time.Duration) ([]*scheduler.Replay, error) AcquireReplayRequest(ctx context.Context, replayID uuid.UUID, unhandledClassifierDuration time.Duration) error + GetReplayJobConfig(ctx context.Context, jobTenant tenant.Tenant, jobName scheduler.JobName, scheduledAt time.Time) (map[string]string, error) GetReplayRequestByID(ctx context.Context, replayID uuid.UUID) (*scheduler.Replay, error) GetReplayByFilters(ctx context.Context, projectName tenant.ProjectName, filters ...filter.FilterOpt) ([]*scheduler.ReplayWithRun, error) @@ -192,6 +193,18 @@ func (r *ReplayService) GetReplayByApprovalID(ctx context.Context, approvalID st return replayWithRun, nil } +func (r *ReplayService) GetReplayJobConfig(ctx context.Context, tenant tenant.Tenant, jobName scheduler.JobName, config *scheduler.ReplayConfig) (map[string]string, error) { + details, err := r.jobRepo.GetJobDetails(ctx, tenant.ProjectName(), jobName) + if err != nil { + r.logger.Error("error getting job [%s]: %s", jobName, err) + return nil, err + } + for k, v := range config.JobConfig { + details.Job.Task.Config[k] = v + } + return details.Job.Task.Config, nil +} + func (r *ReplayService) GetRunsStatus(ctx context.Context, tenant tenant.Tenant, jobName scheduler.JobName, config *scheduler.ReplayConfig) ([]*scheduler.JobRunStatus, error) { jobRunCriteria := &scheduler.JobRunsCriteria{ Name: jobName.String(), diff --git a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go index ed71167b61..6af8c74fb2 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go +++ b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go @@ -123,58 +123,6 @@ func (InstanceSpecData_Type) EnumDescriptor() ([]byte, []int) { return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{22, 0} } -type DamperFactor_ApplyMethod int32 - -const ( - DamperFactor_APPLY_METHOD_UNSPECIFIED DamperFactor_ApplyMethod = 0 - DamperFactor_APPLY_METHOD_EXPONENTIAL DamperFactor_ApplyMethod = 1 - DamperFactor_APPLY_METHOD_DECREMENT DamperFactor_ApplyMethod = 2 - DamperFactor_APPLY_METHOD_CONSTANT DamperFactor_ApplyMethod = 3 -) - -// Enum value maps for DamperFactor_ApplyMethod. -var ( - DamperFactor_ApplyMethod_name = map[int32]string{ - 0: "APPLY_METHOD_UNSPECIFIED", - 1: "APPLY_METHOD_EXPONENTIAL", - 2: "APPLY_METHOD_DECREMENT", - 3: "APPLY_METHOD_CONSTANT", - } - DamperFactor_ApplyMethod_value = map[string]int32{ - "APPLY_METHOD_UNSPECIFIED": 0, - "APPLY_METHOD_EXPONENTIAL": 1, - "APPLY_METHOD_DECREMENT": 2, - "APPLY_METHOD_CONSTANT": 3, - } -) - -func (x DamperFactor_ApplyMethod) Enum() *DamperFactor_ApplyMethod { - p := new(DamperFactor_ApplyMethod) - *p = x - return p -} - -func (x DamperFactor_ApplyMethod) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (DamperFactor_ApplyMethod) Descriptor() protoreflect.EnumDescriptor { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes[2].Descriptor() -} - -func (DamperFactor_ApplyMethod) Type() protoreflect.EnumType { - return &file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes[2] -} - -func (x DamperFactor_ApplyMethod) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use DamperFactor_ApplyMethod.Descriptor instead. -func (DamperFactor_ApplyMethod) EnumDescriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{38, 0} -} - type DexSensorRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2639,137 +2587,6 @@ func (x *SLAConfig) GetDuration() *durationpb.Duration { return nil } -// PotentialSLABreachLabelGroup is one set of job labels (AND-ed together) that -// share the same SLA target. Each group can carry its own severity and a -// human-friendly display name used when rendering the consolidated alert. -type PotentialSLABreachLabelGroup struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - JobLabels map[string]string `protobuf:"bytes,1,rep,name=job_labels,json=jobLabels,proto3" json:"job_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // optional; server derives from labels if empty -} - -func (x *PotentialSLABreachLabelGroup) Reset() { - *x = PotentialSLABreachLabelGroup{} - if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PotentialSLABreachLabelGroup) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PotentialSLABreachLabelGroup) ProtoMessage() {} - -func (x *PotentialSLABreachLabelGroup) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PotentialSLABreachLabelGroup.ProtoReflect.Descriptor instead. -func (*PotentialSLABreachLabelGroup) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{37} -} - -func (x *PotentialSLABreachLabelGroup) GetJobLabels() map[string]string { - if x != nil { - return x.JobLabels - } - return nil -} - -func (x *PotentialSLABreachLabelGroup) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -// DamperFactor configures the dampening factor used to calculate -// inferredSLA for upstream jobs, applied at each upstream level -type DamperFactor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BaseValue float32 `protobuf:"fixed32,1,opt,name=base_value,json=baseValue,proto3" json:"base_value,omitempty"` - Alpha float32 `protobuf:"fixed32,2,opt,name=alpha,proto3" json:"alpha,omitempty"` - MinValue float32 `protobuf:"fixed32,3,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"` - Method DamperFactor_ApplyMethod `protobuf:"varint,4,opt,name=method,proto3,enum=gotocompany.optimus.core.v1beta1.DamperFactor_ApplyMethod" json:"method,omitempty"` -} - -func (x *DamperFactor) Reset() { - *x = DamperFactor{} - if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DamperFactor) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DamperFactor) ProtoMessage() {} - -func (x *DamperFactor) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] - 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 DamperFactor.ProtoReflect.Descriptor instead. -func (*DamperFactor) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{38} -} - -func (x *DamperFactor) GetBaseValue() float32 { - if x != nil { - return x.BaseValue - } - return 0 -} - -func (x *DamperFactor) GetAlpha() float32 { - if x != nil { - return x.Alpha - } - return 0 -} - -func (x *DamperFactor) GetMinValue() float32 { - if x != nil { - return x.MinValue - } - return 0 -} - -func (x *DamperFactor) GetMethod() DamperFactor_ApplyMethod { - if x != nil { - return x.Method - } - return DamperFactor_APPLY_METHOD_UNSPECIFIED -} - type IdentifyPotentialSLABreachRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2785,23 +2602,14 @@ type IdentifyPotentialSLABreachRequest struct { ReferenceTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=reference_time,json=referenceTime,proto3" json:"reference_time,omitempty"` // RFC3339 format ScheduledRangeInHours int32 `protobuf:"varint,8,opt,name=scheduled_range_in_hours,json=scheduledRangeInHours,proto3" json:"scheduled_range_in_hours,omitempty"` EnableDeduplication bool `protobuf:"varint,9,opt,name=enable_deduplication,json=enableDeduplication,proto3" json:"enable_deduplication,omitempty"` - // Deprecated: Do not use. - DamperCoeff float32 `protobuf:"fixed32,10,opt,name=damper_coeff,json=damperCoeff,proto3" json:"damper_coeff,omitempty"` // configure damper factor from the new damper_factor field instead - SkipJobNames []string `protobuf:"bytes,11,rep,name=skip_job_names,json=skipJobNames,proto3" json:"skip_job_names,omitempty"` - // Batch mode. When project_names is non-empty it takes precedence over - // project_name; when label_groups is non-empty it takes precedence over - // job_labels + the request-level severity. The server evaluates the cross - // product of project_names x label_groups and emits one consolidated alert - // per team. job_names remains single-project only (path project_name). - ProjectNames []string `protobuf:"bytes,12,rep,name=project_names,json=projectNames,proto3" json:"project_names,omitempty"` - LabelGroups []*PotentialSLABreachLabelGroup `protobuf:"bytes,13,rep,name=label_groups,json=labelGroups,proto3" json:"label_groups,omitempty"` - DamperFactor *DamperFactor `protobuf:"bytes,14,opt,name=damper_factor,json=damperFactor,proto3" json:"damper_factor,omitempty"` + DamperCoeff float32 `protobuf:"fixed32,10,opt,name=damper_coeff,json=damperCoeff,proto3" json:"damper_coeff,omitempty"` + SkipJobNames []string `protobuf:"bytes,11,rep,name=skip_job_names,json=skipJobNames,proto3" json:"skip_job_names,omitempty"` } func (x *IdentifyPotentialSLABreachRequest) Reset() { *x = IdentifyPotentialSLABreachRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2814,7 +2622,7 @@ func (x *IdentifyPotentialSLABreachRequest) String() string { func (*IdentifyPotentialSLABreachRequest) ProtoMessage() {} func (x *IdentifyPotentialSLABreachRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2827,7 +2635,7 @@ func (x *IdentifyPotentialSLABreachRequest) ProtoReflect() protoreflect.Message // Deprecated: Use IdentifyPotentialSLABreachRequest.ProtoReflect.Descriptor instead. func (*IdentifyPotentialSLABreachRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{39} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{37} } func (x *IdentifyPotentialSLABreachRequest) GetProjectName() string { @@ -2894,7 +2702,6 @@ func (x *IdentifyPotentialSLABreachRequest) GetEnableDeduplication() bool { return false } -// Deprecated: Do not use. func (x *IdentifyPotentialSLABreachRequest) GetDamperCoeff() float32 { if x != nil { return x.DamperCoeff @@ -2909,41 +2716,18 @@ func (x *IdentifyPotentialSLABreachRequest) GetSkipJobNames() []string { return nil } -func (x *IdentifyPotentialSLABreachRequest) GetProjectNames() []string { - if x != nil { - return x.ProjectNames - } - return nil -} - -func (x *IdentifyPotentialSLABreachRequest) GetLabelGroups() []*PotentialSLABreachLabelGroup { - if x != nil { - return x.LabelGroups - } - return nil -} - -func (x *IdentifyPotentialSLABreachRequest) GetDamperFactor() *DamperFactor { - if x != nil { - return x.DamperFactor - } - return nil -} - type IdentifyPotentialSLABreachResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // key is "/" (project-qualified) so targets from - // different projects don't collide in batch mode. Jobs map[string]*UpstreamJobsStatus `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *IdentifyPotentialSLABreachResponse) Reset() { *x = IdentifyPotentialSLABreachResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2956,7 +2740,7 @@ func (x *IdentifyPotentialSLABreachResponse) String() string { func (*IdentifyPotentialSLABreachResponse) ProtoMessage() {} func (x *IdentifyPotentialSLABreachResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2969,7 +2753,7 @@ func (x *IdentifyPotentialSLABreachResponse) ProtoReflect() protoreflect.Message // Deprecated: Use IdentifyPotentialSLABreachResponse.ProtoReflect.Descriptor instead. func (*IdentifyPotentialSLABreachResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{40} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{38} } func (x *IdentifyPotentialSLABreachResponse) GetJobs() map[string]*UpstreamJobsStatus { @@ -2995,7 +2779,7 @@ type UpstreamJobStatus struct { func (x *UpstreamJobStatus) Reset() { *x = UpstreamJobStatus{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3008,7 +2792,7 @@ func (x *UpstreamJobStatus) String() string { func (*UpstreamJobStatus) ProtoMessage() {} func (x *UpstreamJobStatus) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3021,7 +2805,7 @@ func (x *UpstreamJobStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use UpstreamJobStatus.ProtoReflect.Descriptor instead. func (*UpstreamJobStatus) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{41} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{39} } func (x *UpstreamJobStatus) GetProjectName() string { @@ -3071,15 +2855,13 @@ type UpstreamJobsStatus struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobsStatus []*UpstreamJobStatus `protobuf:"bytes,1,rep,name=jobs_status,json=jobsStatus,proto3" json:"jobs_status,omitempty"` - TargetProjectName string `protobuf:"bytes,2,opt,name=target_project_name,json=targetProjectName,proto3" json:"target_project_name,omitempty"` // project of the target (SLA) job - TargetJobName string `protobuf:"bytes,3,opt,name=target_job_name,json=targetJobName,proto3" json:"target_job_name,omitempty"` // bare target job name + JobsStatus []*UpstreamJobStatus `protobuf:"bytes,1,rep,name=jobs_status,json=jobsStatus,proto3" json:"jobs_status,omitempty"` } func (x *UpstreamJobsStatus) Reset() { *x = UpstreamJobsStatus{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3092,7 +2874,7 @@ func (x *UpstreamJobsStatus) String() string { func (*UpstreamJobsStatus) ProtoMessage() {} func (x *UpstreamJobsStatus) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3105,7 +2887,7 @@ func (x *UpstreamJobsStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use UpstreamJobsStatus.ProtoReflect.Descriptor instead. func (*UpstreamJobsStatus) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{42} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{40} } func (x *UpstreamJobsStatus) GetJobsStatus() []*UpstreamJobStatus { @@ -3115,20 +2897,6 @@ func (x *UpstreamJobsStatus) GetJobsStatus() []*UpstreamJobStatus { return nil } -func (x *UpstreamJobsStatus) GetTargetProjectName() string { - if x != nil { - return x.TargetProjectName - } - return "" -} - -func (x *UpstreamJobsStatus) GetTargetJobName() string { - if x != nil { - return x.TargetJobName - } - return "" -} - type GenerateExpectedFinishTimeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3144,7 +2912,7 @@ type GenerateExpectedFinishTimeRequest struct { func (x *GenerateExpectedFinishTimeRequest) Reset() { *x = GenerateExpectedFinishTimeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3157,7 +2925,7 @@ func (x *GenerateExpectedFinishTimeRequest) String() string { func (*GenerateExpectedFinishTimeRequest) ProtoMessage() {} func (x *GenerateExpectedFinishTimeRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3170,7 +2938,7 @@ func (x *GenerateExpectedFinishTimeRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GenerateExpectedFinishTimeRequest.ProtoReflect.Descriptor instead. func (*GenerateExpectedFinishTimeRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{43} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{41} } func (x *GenerateExpectedFinishTimeRequest) GetProjectName() string { @@ -3220,7 +2988,7 @@ type GenerateExpectedFinishTimeResponse struct { func (x *GenerateExpectedFinishTimeResponse) Reset() { *x = GenerateExpectedFinishTimeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[44] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3233,7 +3001,7 @@ func (x *GenerateExpectedFinishTimeResponse) String() string { func (*GenerateExpectedFinishTimeResponse) ProtoMessage() {} func (x *GenerateExpectedFinishTimeResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[44] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3246,7 +3014,7 @@ func (x *GenerateExpectedFinishTimeResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GenerateExpectedFinishTimeResponse.ProtoReflect.Descriptor instead. func (*GenerateExpectedFinishTimeResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{44} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{42} } func (x *GenerateExpectedFinishTimeResponse) GetInprogressJobs() map[string]*FinishTimeDetailResponse { @@ -3279,7 +3047,7 @@ type FinishTimeDetailResponse struct { func (x *FinishTimeDetailResponse) Reset() { *x = FinishTimeDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3292,7 +3060,7 @@ func (x *FinishTimeDetailResponse) String() string { func (*FinishTimeDetailResponse) ProtoMessage() {} func (x *FinishTimeDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3305,7 +3073,7 @@ func (x *FinishTimeDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishTimeDetailResponse.ProtoReflect.Descriptor instead. func (*FinishTimeDetailResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{45} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{43} } func (x *FinishTimeDetailResponse) GetScheduledAt() *timestamppb.Timestamp { @@ -3866,389 +3634,333 @@ var file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDesc = []byte{ 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xde, - 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, - 0x72, 0x65, 0x61, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x6c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, - 0xb7, 0x02, 0x0a, 0x0c, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, - 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, 0x4d, 0x45, - 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, - 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, 0x4d, 0x45, 0x54, 0x48, - 0x4f, 0x44, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x19, - 0x0a, 0x15, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, - 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x10, 0x03, 0x22, 0xf7, 0x06, 0x0a, 0x21, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, - 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x71, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, - 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, - 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6e, - 0x65, 0x78, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x65, 0x72, - 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x6e, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0e, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0c, 0x64, - 0x61, 0x6d, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x43, 0x6f, 0x65, - 0x66, 0x66, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6b, 0x69, 0x70, - 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x61, 0x0a, - 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x12, 0x53, 0x0a, 0x0d, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6d, 0x70, 0x65, - 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x46, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 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, 0xf7, 0x01, 0x0a, 0x22, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, - 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x04, 0x6a, 0x6f, - 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x96, + 0x05, 0x0a, 0x21, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, - 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4a, - 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x1a, 0x6d, - 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4a, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, + 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, + 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, + 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x19, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x6e, 0x42, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x31, 0x0a, + 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x44, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x43, 0x6f, + 0x65, 0x66, 0x66, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6b, 0x69, + 0x70, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0xf7, 0x01, 0x0a, 0x22, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, + 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, + 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x97, 0x02, - 0x0a, 0x11, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x6c, - 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x53, 0x6c, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 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, 0x0b, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, - 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, - 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6a, - 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x90, 0x03, 0x0a, - 0x21, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x71, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x41, - 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 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, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, - 0xa1, 0x04, 0x0a, 0x22, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6a, 0x6f, + 0x62, 0x73, 0x1a, 0x6d, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x4a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x7b, 0x0a, 0x0d, 0x66, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x97, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, + 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, + 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, + 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, + 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x6c, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x0c, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 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, 0x0b, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6a, 0x0a, 0x12, 0x55, + 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6a, 0x6f, 0x62, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x90, 0x03, 0x0a, 0x21, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x71, 0x0a, + 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x1a, 0x7d, 0x0a, 0x13, 0x49, 0x6e, 0x70, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0d, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, + 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7b, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x4a, 0x6f, 0x62, 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, 0x50, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, - 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x84, 0x02, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, - 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x4e, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x65, 0x78, 0x70, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x4a, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x75, 0x61, - 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x66, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x98, 0x14, 0x0a, 0x0d, 0x4a, - 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbf, 0x01, 0x0a, - 0x0b, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x34, 0x2e, 0x67, + 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, 0xa1, 0x04, 0x0a, 0x22, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, + 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4a, 0x6f, 0x62, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x7b, 0x0a, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3d, 0x3a, 0x01, 0x2a, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0xa7, - 0x01, 0x0a, 0x06, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, - 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x74, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4a, 0x6f, + 0x62, 0x73, 0x1a, 0x7d, 0x0a, 0x13, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x4a, 0x6f, 0x62, 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, 0x50, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, - 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x12, 0xd2, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x39, 0x2e, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x7b, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4a, 0x6f, 0x62, + 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, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x84, + 0x02, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x65, 0x78, + 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x61, 0x63, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x48, 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x32, 0xeb, 0x13, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, + 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, + 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xdb, 0x01, - 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, + 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xa7, 0x01, 0x0a, 0x06, 0x4a, 0x6f, + 0x62, 0x52, 0x75, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, + 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x72, 0x75, 0x6e, 0x12, 0xd2, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x0a, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xdb, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, + 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, + 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, + 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, + 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, + 0x73, 0x12, 0xe6, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, + 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, - 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, - 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x12, 0xe6, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x68, - 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, - 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, - 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x3a, 0x01, 0x2a, 0x1a, 0x41, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, - 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x68, 0x69, - 0x72, 0x64, 0x2d, 0x70, 0x61, 0x72, 0x74, 0x79, 0x2d, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, - 0xe5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x54, 0x3a, 0x01, 0x2a, 0x22, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0xbf, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x3a, 0x2e, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, + 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, - 0x2a, 0x1a, 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x65, + 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x46, 0x1a, 0x41, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x68, 0x69, 0x72, 0x64, 0x2d, 0x70, 0x61, 0x72, 0x74, 0x79, + 0x2d, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0xe5, 0x01, 0x0a, 0x10, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, + 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, 0x22, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0xcb, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, - 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, - 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x75, 0x6e, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, - 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6a, 0x6f, - 0x62, 0x2d, 0x72, 0x75, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x2d, 0x73, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x9e, 0x02, 0x0a, 0x1a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, - 0x65, 0x61, 0x63, 0x68, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, + 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3a, + 0x01, 0x2a, 0x12, 0xbf, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x3a, 0x01, 0x2a, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, + 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x12, 0xcb, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x40, + 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, + 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x6e, 0x65, 0x61, + 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x6e, + 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x2d, 0x72, 0x75, 0x6e, 0x2d, 0x6c, 0x69, + 0x6e, 0x65, 0x61, 0x67, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x01, 0x2a, + 0x12, 0xf1, 0x01, 0x0a, 0x1a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x12, + 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, - 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x75, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6f, 0x3a, 0x01, 0x2a, 0x5a, 0x2b, 0x3a, 0x01, 0x2a, 0x22, - 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x2f, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x2f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x12, 0xec, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x42, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x6c, + 0x61, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xec, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x22, 0x38, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x78, 0x70, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x8f, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, - 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x6e, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x92, 0x41, 0x3b, 0x12, 0x05, 0x32, 0x03, - 0x30, 0x2e, 0x31, 0x1a, 0x0e, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x3a, 0x39, - 0x31, 0x30, 0x30, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x01, 0x01, 0x72, 0x19, 0x0a, 0x17, - 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0x52, 0x75, 0x6e, 0x20, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6d, 0x65, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, + 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x3a, 0x01, 0x2a, 0x42, 0x8f, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2f, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x92, 0x41, 0x3b, 0x12, 0x05, 0x32, 0x03, 0x30, 0x2e, + 0x31, 0x1a, 0x0e, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x3a, 0x39, 0x31, 0x30, + 0x30, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x01, 0x01, 0x72, 0x19, 0x0a, 0x17, 0x4f, 0x70, + 0x74, 0x69, 0x6d, 0x75, 0x73, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4263,178 +3975,170 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP() []byte { return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescData } -var file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes = make([]protoimpl.MessageInfo, 55) +var file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes = make([]protoimpl.MessageInfo, 52) var file_gotocompany_optimus_core_v1beta1_job_run_proto_goTypes = []interface{}{ (InstanceSpec_Type)(0), // 0: gotocompany.optimus.core.v1beta1.InstanceSpec.Type (InstanceSpecData_Type)(0), // 1: gotocompany.optimus.core.v1beta1.InstanceSpecData.Type - (DamperFactor_ApplyMethod)(0), // 2: gotocompany.optimus.core.v1beta1.DamperFactor.ApplyMethod - (*DexSensorRequest)(nil), // 3: gotocompany.optimus.core.v1beta1.DexSensorRequest - (*DataCompleteness)(nil), // 4: gotocompany.optimus.core.v1beta1.DataCompleteness - (*DexSensorResponse)(nil), // 5: gotocompany.optimus.core.v1beta1.DexSensorResponse - (*GetThirdPartySensorRequest)(nil), // 6: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest - (*GetThirdPartySensorResponse)(nil), // 7: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse - (*GetIntervalRequest)(nil), // 8: gotocompany.optimus.core.v1beta1.GetIntervalRequest - (*GetIntervalResponse)(nil), // 9: gotocompany.optimus.core.v1beta1.GetIntervalResponse - (*UploadToSchedulerRequest)(nil), // 10: gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest - (*UploadToSchedulerResponse)(nil), // 11: gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse - (*RegisterJobEventRequest)(nil), // 12: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest - (*RegisterJobEventResponse)(nil), // 13: gotocompany.optimus.core.v1beta1.RegisterJobEventResponse - (*JobRunInputRequest)(nil), // 14: gotocompany.optimus.core.v1beta1.JobRunInputRequest - (*GetJobRunsRequest)(nil), // 15: gotocompany.optimus.core.v1beta1.GetJobRunsRequest - (*JobRunWithDetail)(nil), // 16: gotocompany.optimus.core.v1beta1.JobRunWithDetail - (*GetJobRunsResponse)(nil), // 17: gotocompany.optimus.core.v1beta1.GetJobRunsResponse - (*JobRunRequest)(nil), // 18: gotocompany.optimus.core.v1beta1.JobRunRequest - (*JobRunResponse)(nil), // 19: gotocompany.optimus.core.v1beta1.JobRunResponse - (*GetSchedulerRoleRequest)(nil), // 20: gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest - (*GetSchedulerRoleResponse)(nil), // 21: gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse - (*CreateSchedulerRoleRequest)(nil), // 22: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest - (*CreateSchedulerRoleResponse)(nil), // 23: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse - (*InstanceSpec)(nil), // 24: gotocompany.optimus.core.v1beta1.InstanceSpec - (*InstanceSpecData)(nil), // 25: gotocompany.optimus.core.v1beta1.InstanceSpecData - (*JobRunInputResponse)(nil), // 26: gotocompany.optimus.core.v1beta1.JobRunInputResponse - (*TaskWindow)(nil), // 27: gotocompany.optimus.core.v1beta1.TaskWindow - (*GetJobRunLineageSummaryRequest)(nil), // 28: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest - (*TargetJobRunIdentifier)(nil), // 29: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier - (*GetJobRunLineageSummaryResponse)(nil), // 30: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse - (*JobRunLineageSummary)(nil), // 31: gotocompany.optimus.core.v1beta1.JobRunLineageSummary - (*LineageExecutionSummary)(nil), // 32: gotocompany.optimus.core.v1beta1.LineageExecutionSummary - (*JobWithTaskDuration)(nil), // 33: gotocompany.optimus.core.v1beta1.JobWithTaskDuration - (*LineageDelaySummary)(nil), // 34: gotocompany.optimus.core.v1beta1.LineageDelaySummary - (*JobExecutionSummary)(nil), // 35: gotocompany.optimus.core.v1beta1.JobExecutionSummary - (*JobRunSummary)(nil), // 36: gotocompany.optimus.core.v1beta1.JobRunSummary - (*HistoricalDurationTrend)(nil), // 37: gotocompany.optimus.core.v1beta1.HistoricalDurationTrend - (*JobRunDelaySummary)(nil), // 38: gotocompany.optimus.core.v1beta1.JobRunDelaySummary - (*SLAConfig)(nil), // 39: gotocompany.optimus.core.v1beta1.SLAConfig - (*PotentialSLABreachLabelGroup)(nil), // 40: gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup - (*DamperFactor)(nil), // 41: gotocompany.optimus.core.v1beta1.DamperFactor - (*IdentifyPotentialSLABreachRequest)(nil), // 42: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest - (*IdentifyPotentialSLABreachResponse)(nil), // 43: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse - (*UpstreamJobStatus)(nil), // 44: gotocompany.optimus.core.v1beta1.UpstreamJobStatus - (*UpstreamJobsStatus)(nil), // 45: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus - (*GenerateExpectedFinishTimeRequest)(nil), // 46: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest - (*GenerateExpectedFinishTimeResponse)(nil), // 47: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse - (*FinishTimeDetailResponse)(nil), // 48: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse - nil, // 49: gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry - nil, // 50: gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry - nil, // 51: gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry - nil, // 52: gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup.JobLabelsEntry - nil, // 53: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry - nil, // 54: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry - nil, // 55: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry - nil, // 56: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry - nil, // 57: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry - (*timestamppb.Timestamp)(nil), // 58: google.protobuf.Timestamp - (*JobEvent)(nil), // 59: gotocompany.optimus.core.v1beta1.JobEvent - (*JobRun)(nil), // 60: gotocompany.optimus.core.v1beta1.JobRun - (*durationpb.Duration)(nil), // 61: google.protobuf.Duration + (*DexSensorRequest)(nil), // 2: gotocompany.optimus.core.v1beta1.DexSensorRequest + (*DataCompleteness)(nil), // 3: gotocompany.optimus.core.v1beta1.DataCompleteness + (*DexSensorResponse)(nil), // 4: gotocompany.optimus.core.v1beta1.DexSensorResponse + (*GetThirdPartySensorRequest)(nil), // 5: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest + (*GetThirdPartySensorResponse)(nil), // 6: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse + (*GetIntervalRequest)(nil), // 7: gotocompany.optimus.core.v1beta1.GetIntervalRequest + (*GetIntervalResponse)(nil), // 8: gotocompany.optimus.core.v1beta1.GetIntervalResponse + (*UploadToSchedulerRequest)(nil), // 9: gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest + (*UploadToSchedulerResponse)(nil), // 10: gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse + (*RegisterJobEventRequest)(nil), // 11: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest + (*RegisterJobEventResponse)(nil), // 12: gotocompany.optimus.core.v1beta1.RegisterJobEventResponse + (*JobRunInputRequest)(nil), // 13: gotocompany.optimus.core.v1beta1.JobRunInputRequest + (*GetJobRunsRequest)(nil), // 14: gotocompany.optimus.core.v1beta1.GetJobRunsRequest + (*JobRunWithDetail)(nil), // 15: gotocompany.optimus.core.v1beta1.JobRunWithDetail + (*GetJobRunsResponse)(nil), // 16: gotocompany.optimus.core.v1beta1.GetJobRunsResponse + (*JobRunRequest)(nil), // 17: gotocompany.optimus.core.v1beta1.JobRunRequest + (*JobRunResponse)(nil), // 18: gotocompany.optimus.core.v1beta1.JobRunResponse + (*GetSchedulerRoleRequest)(nil), // 19: gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest + (*GetSchedulerRoleResponse)(nil), // 20: gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse + (*CreateSchedulerRoleRequest)(nil), // 21: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest + (*CreateSchedulerRoleResponse)(nil), // 22: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse + (*InstanceSpec)(nil), // 23: gotocompany.optimus.core.v1beta1.InstanceSpec + (*InstanceSpecData)(nil), // 24: gotocompany.optimus.core.v1beta1.InstanceSpecData + (*JobRunInputResponse)(nil), // 25: gotocompany.optimus.core.v1beta1.JobRunInputResponse + (*TaskWindow)(nil), // 26: gotocompany.optimus.core.v1beta1.TaskWindow + (*GetJobRunLineageSummaryRequest)(nil), // 27: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest + (*TargetJobRunIdentifier)(nil), // 28: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier + (*GetJobRunLineageSummaryResponse)(nil), // 29: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse + (*JobRunLineageSummary)(nil), // 30: gotocompany.optimus.core.v1beta1.JobRunLineageSummary + (*LineageExecutionSummary)(nil), // 31: gotocompany.optimus.core.v1beta1.LineageExecutionSummary + (*JobWithTaskDuration)(nil), // 32: gotocompany.optimus.core.v1beta1.JobWithTaskDuration + (*LineageDelaySummary)(nil), // 33: gotocompany.optimus.core.v1beta1.LineageDelaySummary + (*JobExecutionSummary)(nil), // 34: gotocompany.optimus.core.v1beta1.JobExecutionSummary + (*JobRunSummary)(nil), // 35: gotocompany.optimus.core.v1beta1.JobRunSummary + (*HistoricalDurationTrend)(nil), // 36: gotocompany.optimus.core.v1beta1.HistoricalDurationTrend + (*JobRunDelaySummary)(nil), // 37: gotocompany.optimus.core.v1beta1.JobRunDelaySummary + (*SLAConfig)(nil), // 38: gotocompany.optimus.core.v1beta1.SLAConfig + (*IdentifyPotentialSLABreachRequest)(nil), // 39: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest + (*IdentifyPotentialSLABreachResponse)(nil), // 40: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse + (*UpstreamJobStatus)(nil), // 41: gotocompany.optimus.core.v1beta1.UpstreamJobStatus + (*UpstreamJobsStatus)(nil), // 42: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus + (*GenerateExpectedFinishTimeRequest)(nil), // 43: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest + (*GenerateExpectedFinishTimeResponse)(nil), // 44: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse + (*FinishTimeDetailResponse)(nil), // 45: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse + nil, // 46: gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry + nil, // 47: gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry + nil, // 48: gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry + nil, // 49: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry + nil, // 50: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry + nil, // 51: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry + nil, // 52: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry + nil, // 53: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry + (*timestamppb.Timestamp)(nil), // 54: google.protobuf.Timestamp + (*JobEvent)(nil), // 55: gotocompany.optimus.core.v1beta1.JobEvent + (*JobRun)(nil), // 56: gotocompany.optimus.core.v1beta1.JobRun + (*durationpb.Duration)(nil), // 57: google.protobuf.Duration } var file_gotocompany_optimus_core_v1beta1_job_run_proto_depIdxs = []int32{ - 58, // 0: gotocompany.optimus.core.v1beta1.DataCompleteness.date:type_name -> google.protobuf.Timestamp - 4, // 1: gotocompany.optimus.core.v1beta1.DexSensorResponse.log:type_name -> gotocompany.optimus.core.v1beta1.DataCompleteness - 58, // 2: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.scheduled_at:type_name -> google.protobuf.Timestamp - 3, // 3: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.dex_sensor_request:type_name -> gotocompany.optimus.core.v1beta1.DexSensorRequest - 5, // 4: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse.dex_sensor_response:type_name -> gotocompany.optimus.core.v1beta1.DexSensorResponse - 58, // 5: gotocompany.optimus.core.v1beta1.GetIntervalRequest.reference_time:type_name -> google.protobuf.Timestamp - 58, // 6: gotocompany.optimus.core.v1beta1.GetIntervalResponse.start_time:type_name -> google.protobuf.Timestamp - 58, // 7: gotocompany.optimus.core.v1beta1.GetIntervalResponse.end_time:type_name -> google.protobuf.Timestamp - 59, // 8: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest.event:type_name -> gotocompany.optimus.core.v1beta1.JobEvent - 58, // 9: gotocompany.optimus.core.v1beta1.JobRunInputRequest.scheduled_at:type_name -> google.protobuf.Timestamp + 54, // 0: gotocompany.optimus.core.v1beta1.DataCompleteness.date:type_name -> google.protobuf.Timestamp + 3, // 1: gotocompany.optimus.core.v1beta1.DexSensorResponse.log:type_name -> gotocompany.optimus.core.v1beta1.DataCompleteness + 54, // 2: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.scheduled_at:type_name -> google.protobuf.Timestamp + 2, // 3: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.dex_sensor_request:type_name -> gotocompany.optimus.core.v1beta1.DexSensorRequest + 4, // 4: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse.dex_sensor_response:type_name -> gotocompany.optimus.core.v1beta1.DexSensorResponse + 54, // 5: gotocompany.optimus.core.v1beta1.GetIntervalRequest.reference_time:type_name -> google.protobuf.Timestamp + 54, // 6: gotocompany.optimus.core.v1beta1.GetIntervalResponse.start_time:type_name -> google.protobuf.Timestamp + 54, // 7: gotocompany.optimus.core.v1beta1.GetIntervalResponse.end_time:type_name -> google.protobuf.Timestamp + 55, // 8: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest.event:type_name -> gotocompany.optimus.core.v1beta1.JobEvent + 54, // 9: gotocompany.optimus.core.v1beta1.JobRunInputRequest.scheduled_at:type_name -> google.protobuf.Timestamp 0, // 10: gotocompany.optimus.core.v1beta1.JobRunInputRequest.instance_type:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpec.Type - 58, // 11: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.since:type_name -> google.protobuf.Timestamp - 58, // 12: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.until:type_name -> google.protobuf.Timestamp - 58, // 13: gotocompany.optimus.core.v1beta1.JobRunWithDetail.scheduled_at:type_name -> google.protobuf.Timestamp - 58, // 14: gotocompany.optimus.core.v1beta1.JobRunWithDetail.start_time:type_name -> google.protobuf.Timestamp - 58, // 15: gotocompany.optimus.core.v1beta1.JobRunWithDetail.end_time:type_name -> google.protobuf.Timestamp - 16, // 16: gotocompany.optimus.core.v1beta1.GetJobRunsResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRunWithDetail - 58, // 17: gotocompany.optimus.core.v1beta1.JobRunRequest.start_date:type_name -> google.protobuf.Timestamp - 58, // 18: gotocompany.optimus.core.v1beta1.JobRunRequest.end_date:type_name -> google.protobuf.Timestamp - 60, // 19: gotocompany.optimus.core.v1beta1.JobRunResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRun - 25, // 20: gotocompany.optimus.core.v1beta1.InstanceSpec.data:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpecData - 58, // 21: gotocompany.optimus.core.v1beta1.InstanceSpec.executed_at:type_name -> google.protobuf.Timestamp + 54, // 11: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.since:type_name -> google.protobuf.Timestamp + 54, // 12: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.until:type_name -> google.protobuf.Timestamp + 54, // 13: gotocompany.optimus.core.v1beta1.JobRunWithDetail.scheduled_at:type_name -> google.protobuf.Timestamp + 54, // 14: gotocompany.optimus.core.v1beta1.JobRunWithDetail.start_time:type_name -> google.protobuf.Timestamp + 54, // 15: gotocompany.optimus.core.v1beta1.JobRunWithDetail.end_time:type_name -> google.protobuf.Timestamp + 15, // 16: gotocompany.optimus.core.v1beta1.GetJobRunsResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRunWithDetail + 54, // 17: gotocompany.optimus.core.v1beta1.JobRunRequest.start_date:type_name -> google.protobuf.Timestamp + 54, // 18: gotocompany.optimus.core.v1beta1.JobRunRequest.end_date:type_name -> google.protobuf.Timestamp + 56, // 19: gotocompany.optimus.core.v1beta1.JobRunResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRun + 24, // 20: gotocompany.optimus.core.v1beta1.InstanceSpec.data:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpecData + 54, // 21: gotocompany.optimus.core.v1beta1.InstanceSpec.executed_at:type_name -> google.protobuf.Timestamp 0, // 22: gotocompany.optimus.core.v1beta1.InstanceSpec.type:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpec.Type 1, // 23: gotocompany.optimus.core.v1beta1.InstanceSpecData.type:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpecData.Type - 49, // 24: gotocompany.optimus.core.v1beta1.JobRunInputResponse.envs:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry - 50, // 25: gotocompany.optimus.core.v1beta1.JobRunInputResponse.files:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry - 51, // 26: gotocompany.optimus.core.v1beta1.JobRunInputResponse.secrets:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry - 61, // 27: gotocompany.optimus.core.v1beta1.TaskWindow.size:type_name -> google.protobuf.Duration - 61, // 28: gotocompany.optimus.core.v1beta1.TaskWindow.offset:type_name -> google.protobuf.Duration - 29, // 29: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest.target_jobs:type_name -> gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier - 58, // 30: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier.scheduled_at:type_name -> google.protobuf.Timestamp - 31, // 31: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobRunLineageSummary - 58, // 32: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.scheduled_at:type_name -> google.protobuf.Timestamp - 35, // 33: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobExecutionSummary - 32, // 34: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.execution_summary:type_name -> gotocompany.optimus.core.v1beta1.LineageExecutionSummary - 34, // 35: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_scheduled_way_too_late_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary - 34, // 36: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_system_scheduling_delay_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary - 33, // 37: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_task_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration - 33, // 38: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_hook_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration - 58, // 39: gotocompany.optimus.core.v1beta1.LineageDelaySummary.scheduled_at:type_name -> google.protobuf.Timestamp - 58, // 40: gotocompany.optimus.core.v1beta1.LineageDelaySummary.upstream_scheduled_at:type_name -> google.protobuf.Timestamp - 39, // 41: gotocompany.optimus.core.v1beta1.JobExecutionSummary.sla:type_name -> gotocompany.optimus.core.v1beta1.SLAConfig - 36, // 42: gotocompany.optimus.core.v1beta1.JobExecutionSummary.job_run_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunSummary - 38, // 43: gotocompany.optimus.core.v1beta1.JobExecutionSummary.delay_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunDelaySummary - 37, // 44: gotocompany.optimus.core.v1beta1.JobExecutionSummary.historical_duration_trend:type_name -> gotocompany.optimus.core.v1beta1.HistoricalDurationTrend - 58, // 45: gotocompany.optimus.core.v1beta1.JobRunSummary.scheduled_at:type_name -> google.protobuf.Timestamp - 58, // 46: gotocompany.optimus.core.v1beta1.JobRunSummary.sla_time:type_name -> google.protobuf.Timestamp - 58, // 47: gotocompany.optimus.core.v1beta1.JobRunSummary.job_start_time:type_name -> google.protobuf.Timestamp - 58, // 48: gotocompany.optimus.core.v1beta1.JobRunSummary.job_end_time:type_name -> google.protobuf.Timestamp - 58, // 49: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_start_time:type_name -> google.protobuf.Timestamp - 58, // 50: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_end_time:type_name -> google.protobuf.Timestamp - 58, // 51: gotocompany.optimus.core.v1beta1.JobRunSummary.task_start_time:type_name -> google.protobuf.Timestamp - 58, // 52: gotocompany.optimus.core.v1beta1.JobRunSummary.task_end_time:type_name -> google.protobuf.Timestamp - 58, // 53: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_start_time:type_name -> google.protobuf.Timestamp - 58, // 54: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_end_time:type_name -> google.protobuf.Timestamp - 61, // 55: gotocompany.optimus.core.v1beta1.SLAConfig.duration:type_name -> google.protobuf.Duration - 52, // 56: gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup.job_labels:type_name -> gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup.JobLabelsEntry - 2, // 57: gotocompany.optimus.core.v1beta1.DamperFactor.method:type_name -> gotocompany.optimus.core.v1beta1.DamperFactor.ApplyMethod - 53, // 58: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry - 58, // 59: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.reference_time:type_name -> google.protobuf.Timestamp - 40, // 60: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.label_groups:type_name -> gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup - 41, // 61: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.damper_factor:type_name -> gotocompany.optimus.core.v1beta1.DamperFactor - 54, // 62: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry - 58, // 63: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.inferred_sla_time:type_name -> google.protobuf.Timestamp - 58, // 64: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.scheduled_at:type_name -> google.protobuf.Timestamp - 44, // 65: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus.jobs_status:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobStatus - 55, // 66: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry - 58, // 67: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.reference_time:type_name -> google.protobuf.Timestamp - 56, // 68: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.inprogress_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry - 57, // 69: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.finished_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry - 58, // 70: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.scheduled_at:type_name -> google.protobuf.Timestamp - 58, // 71: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.expected_finish_time:type_name -> google.protobuf.Timestamp - 58, // 72: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.actual_finish_time:type_name -> google.protobuf.Timestamp - 45, // 73: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobsStatus - 48, // 74: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse - 48, // 75: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse - 14, // 76: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:input_type -> gotocompany.optimus.core.v1beta1.JobRunInputRequest - 18, // 77: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:input_type -> gotocompany.optimus.core.v1beta1.JobRunRequest - 20, // 78: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest - 22, // 79: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest - 15, // 80: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunsRequest - 6, // 81: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:input_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest - 12, // 82: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:input_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventRequest - 10, // 83: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:input_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest - 8, // 84: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:input_type -> gotocompany.optimus.core.v1beta1.GetIntervalRequest - 28, // 85: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest - 42, // 86: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:input_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest - 46, // 87: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:input_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest - 26, // 88: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:output_type -> gotocompany.optimus.core.v1beta1.JobRunInputResponse - 19, // 89: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:output_type -> gotocompany.optimus.core.v1beta1.JobRunResponse - 21, // 90: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse - 23, // 91: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse - 17, // 92: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunsResponse - 7, // 93: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:output_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse - 13, // 94: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:output_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventResponse - 11, // 95: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:output_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse - 9, // 96: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:output_type -> gotocompany.optimus.core.v1beta1.GetIntervalResponse - 30, // 97: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse - 43, // 98: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:output_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse - 47, // 99: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:output_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse - 88, // [88:100] is the sub-list for method output_type - 76, // [76:88] is the sub-list for method input_type - 76, // [76:76] is the sub-list for extension type_name - 76, // [76:76] is the sub-list for extension extendee - 0, // [0:76] is the sub-list for field type_name + 46, // 24: gotocompany.optimus.core.v1beta1.JobRunInputResponse.envs:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry + 47, // 25: gotocompany.optimus.core.v1beta1.JobRunInputResponse.files:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry + 48, // 26: gotocompany.optimus.core.v1beta1.JobRunInputResponse.secrets:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry + 57, // 27: gotocompany.optimus.core.v1beta1.TaskWindow.size:type_name -> google.protobuf.Duration + 57, // 28: gotocompany.optimus.core.v1beta1.TaskWindow.offset:type_name -> google.protobuf.Duration + 28, // 29: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest.target_jobs:type_name -> gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier + 54, // 30: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier.scheduled_at:type_name -> google.protobuf.Timestamp + 30, // 31: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobRunLineageSummary + 54, // 32: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.scheduled_at:type_name -> google.protobuf.Timestamp + 34, // 33: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobExecutionSummary + 31, // 34: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.execution_summary:type_name -> gotocompany.optimus.core.v1beta1.LineageExecutionSummary + 33, // 35: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_scheduled_way_too_late_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary + 33, // 36: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_system_scheduling_delay_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary + 32, // 37: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_task_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration + 32, // 38: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_hook_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration + 54, // 39: gotocompany.optimus.core.v1beta1.LineageDelaySummary.scheduled_at:type_name -> google.protobuf.Timestamp + 54, // 40: gotocompany.optimus.core.v1beta1.LineageDelaySummary.upstream_scheduled_at:type_name -> google.protobuf.Timestamp + 38, // 41: gotocompany.optimus.core.v1beta1.JobExecutionSummary.sla:type_name -> gotocompany.optimus.core.v1beta1.SLAConfig + 35, // 42: gotocompany.optimus.core.v1beta1.JobExecutionSummary.job_run_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunSummary + 37, // 43: gotocompany.optimus.core.v1beta1.JobExecutionSummary.delay_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunDelaySummary + 36, // 44: gotocompany.optimus.core.v1beta1.JobExecutionSummary.historical_duration_trend:type_name -> gotocompany.optimus.core.v1beta1.HistoricalDurationTrend + 54, // 45: gotocompany.optimus.core.v1beta1.JobRunSummary.scheduled_at:type_name -> google.protobuf.Timestamp + 54, // 46: gotocompany.optimus.core.v1beta1.JobRunSummary.sla_time:type_name -> google.protobuf.Timestamp + 54, // 47: gotocompany.optimus.core.v1beta1.JobRunSummary.job_start_time:type_name -> google.protobuf.Timestamp + 54, // 48: gotocompany.optimus.core.v1beta1.JobRunSummary.job_end_time:type_name -> google.protobuf.Timestamp + 54, // 49: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_start_time:type_name -> google.protobuf.Timestamp + 54, // 50: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_end_time:type_name -> google.protobuf.Timestamp + 54, // 51: gotocompany.optimus.core.v1beta1.JobRunSummary.task_start_time:type_name -> google.protobuf.Timestamp + 54, // 52: gotocompany.optimus.core.v1beta1.JobRunSummary.task_end_time:type_name -> google.protobuf.Timestamp + 54, // 53: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_start_time:type_name -> google.protobuf.Timestamp + 54, // 54: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_end_time:type_name -> google.protobuf.Timestamp + 57, // 55: gotocompany.optimus.core.v1beta1.SLAConfig.duration:type_name -> google.protobuf.Duration + 49, // 56: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry + 54, // 57: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.reference_time:type_name -> google.protobuf.Timestamp + 50, // 58: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry + 54, // 59: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.inferred_sla_time:type_name -> google.protobuf.Timestamp + 54, // 60: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.scheduled_at:type_name -> google.protobuf.Timestamp + 41, // 61: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus.jobs_status:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobStatus + 51, // 62: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry + 54, // 63: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.reference_time:type_name -> google.protobuf.Timestamp + 52, // 64: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.inprogress_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry + 53, // 65: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.finished_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry + 54, // 66: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.scheduled_at:type_name -> google.protobuf.Timestamp + 54, // 67: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.expected_finish_time:type_name -> google.protobuf.Timestamp + 54, // 68: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.actual_finish_time:type_name -> google.protobuf.Timestamp + 42, // 69: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobsStatus + 45, // 70: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse + 45, // 71: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse + 13, // 72: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:input_type -> gotocompany.optimus.core.v1beta1.JobRunInputRequest + 17, // 73: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:input_type -> gotocompany.optimus.core.v1beta1.JobRunRequest + 19, // 74: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest + 21, // 75: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest + 14, // 76: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunsRequest + 5, // 77: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:input_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest + 11, // 78: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:input_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventRequest + 9, // 79: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:input_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest + 7, // 80: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:input_type -> gotocompany.optimus.core.v1beta1.GetIntervalRequest + 27, // 81: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest + 39, // 82: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:input_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest + 43, // 83: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:input_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest + 25, // 84: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:output_type -> gotocompany.optimus.core.v1beta1.JobRunInputResponse + 18, // 85: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:output_type -> gotocompany.optimus.core.v1beta1.JobRunResponse + 20, // 86: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse + 22, // 87: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse + 16, // 88: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunsResponse + 6, // 89: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:output_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse + 12, // 90: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:output_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventResponse + 10, // 91: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:output_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse + 8, // 92: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:output_type -> gotocompany.optimus.core.v1beta1.GetIntervalResponse + 29, // 93: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse + 40, // 94: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:output_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse + 44, // 95: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:output_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse + 84, // [84:96] is the sub-list for method output_type + 72, // [72:84] is the sub-list for method input_type + 72, // [72:72] is the sub-list for extension type_name + 72, // [72:72] is the sub-list for extension extendee + 0, // [0:72] is the sub-list for field type_name } func init() { file_gotocompany_optimus_core_v1beta1_job_run_proto_init() } @@ -4889,30 +4593,6 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PotentialSLABreachLabelGroup); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DamperFactor); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IdentifyPotentialSLABreachRequest); i { case 0: return &v.state @@ -4924,7 +4604,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IdentifyPotentialSLABreachResponse); i { case 0: return &v.state @@ -4936,7 +4616,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpstreamJobStatus); i { case 0: return &v.state @@ -4948,7 +4628,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpstreamJobsStatus); i { case 0: return &v.state @@ -4960,7 +4640,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenerateExpectedFinishTimeRequest); i { case 0: return &v.state @@ -4972,7 +4652,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenerateExpectedFinishTimeResponse); i { case 0: return &v.state @@ -4984,7 +4664,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { return nil } } - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinishTimeDetailResponse); i { case 0: return &v.state @@ -5004,7 +4684,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { (*GetThirdPartySensorResponse_DexSensorResponse)(nil), } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[7].OneofWrappers = []interface{}{} - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45].OneofWrappers = []interface{}{ + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43].OneofWrappers = []interface{}{ (*FinishTimeDetailResponse_ExpectedFinishTime)(nil), (*FinishTimeDetailResponse_ActualFinishTime)(nil), } @@ -5013,8 +4693,8 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDesc, - NumEnums: 3, - NumMessages: 55, + NumEnums: 2, + NumMessages: 52, NumExtensions: 0, NumServices: 1, }, diff --git a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go index 2292fcb162..f7bc0edf82 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go +++ b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go @@ -935,40 +935,6 @@ func local_request_JobRunService_IdentifyPotentialSLABreach_0(ctx context.Contex } -func request_JobRunService_IdentifyPotentialSLABreach_1(ctx context.Context, marshaler runtime.Marshaler, client JobRunServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq IdentifyPotentialSLABreachRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.IdentifyPotentialSLABreach(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_JobRunService_IdentifyPotentialSLABreach_1(ctx context.Context, marshaler runtime.Marshaler, server JobRunServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq IdentifyPotentialSLABreachRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.IdentifyPotentialSLABreach(ctx, &protoReq) - return msg, metadata, err - -} - func request_JobRunService_GenerateExpectedFinishTime_0(ctx context.Context, marshaler runtime.Marshaler, client JobRunServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GenerateExpectedFinishTimeRequest var metadata runtime.ServerMetadata @@ -1296,29 +1262,6 @@ func RegisterJobRunServiceHandlerServer(ctx context.Context, mux *runtime.ServeM }) - mux.Handle("POST", pattern_JobRunService_IdentifyPotentialSLABreach_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gotocompany.optimus.core.v1beta1.JobRunService/IdentifyPotentialSLABreach", runtime.WithHTTPPathPattern("/v1beta1/potential_sla_breach/identify")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_JobRunService_IdentifyPotentialSLABreach_1(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_JobRunService_IdentifyPotentialSLABreach_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_JobRunService_GenerateExpectedFinishTime_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1603,26 +1546,6 @@ func RegisterJobRunServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) - mux.Handle("POST", pattern_JobRunService_IdentifyPotentialSLABreach_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gotocompany.optimus.core.v1beta1.JobRunService/IdentifyPotentialSLABreach", runtime.WithHTTPPathPattern("/v1beta1/potential_sla_breach/identify")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_JobRunService_IdentifyPotentialSLABreach_1(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_JobRunService_IdentifyPotentialSLABreach_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_JobRunService_GenerateExpectedFinishTime_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1669,8 +1592,6 @@ var ( pattern_JobRunService_IdentifyPotentialSLABreach_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"v1beta1", "project", "project_name", "potential_sla_breach", "identify"}, "")) - pattern_JobRunService_IdentifyPotentialSLABreach_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1beta1", "potential_sla_breach", "identify"}, "")) - pattern_JobRunService_GenerateExpectedFinishTime_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1beta1", "project", "project_name", "expected_job_finish_time"}, "")) ) @@ -1697,7 +1618,5 @@ var ( forward_JobRunService_IdentifyPotentialSLABreach_0 = runtime.ForwardResponseMessage - forward_JobRunService_IdentifyPotentialSLABreach_1 = runtime.ForwardResponseMessage - forward_JobRunService_GenerateExpectedFinishTime_0 = runtime.ForwardResponseMessage ) diff --git a/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json b/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json index 4477d17604..0149c913bb 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json +++ b/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json @@ -54,39 +54,6 @@ ] } }, - "/v1beta1/potential_sla_breach/identify": { - "post": { - "summary": "IdentifyPotentialSLABreach notifies optimus service about potential SLA breach for given job(s)", - "operationId": "JobRunService_IdentifyPotentialSLABreach2", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/v1beta1IdentifyPotentialSLABreachResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/v1beta1IdentifyPotentialSLABreachRequest" - } - } - ], - "tags": [ - "JobRunService" - ] - } - }, "/v1beta1/project/{projectName}/expected_job_finish_time": { "post": { "summary": "GenerateExpectedFinishTime generates and stores the expected finish time for a given job(s)", @@ -650,22 +617,6 @@ "items": { "type": "string" } - }, - "projectNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Batch mode. When project_names is non-empty it takes precedence over\nproject_name; when label_groups is non-empty it takes precedence over\njob_labels + the request-level severity. The server evaluates the cross\nproduct of project_names x label_groups and emits one consolidated alert\nper team. job_names remains single-project only (path project_name)." - }, - "labelGroups": { - "type": "array", - "items": { - "$ref": "#/definitions/v1beta1PotentialSLABreachLabelGroup" - } - }, - "damperFactor": { - "$ref": "#/definitions/v1beta1DamperFactor" } } } @@ -722,16 +673,6 @@ } }, "definitions": { - "DamperFactorApplyMethod": { - "type": "string", - "enum": [ - "APPLY_METHOD_UNSPECIFIED", - "APPLY_METHOD_EXPONENTIAL", - "APPLY_METHOD_DECREMENT", - "APPLY_METHOD_CONSTANT" - ], - "default": "APPLY_METHOD_UNSPECIFIED" - }, "protobufAny": { "type": "object", "properties": { @@ -750,7 +691,7 @@ "NULL_VALUE" ], "default": "NULL_VALUE", - "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." }, "rpcStatus": { "type": "object", @@ -773,27 +714,6 @@ "v1beta1CreateSchedulerRoleResponse": { "type": "object" }, - "v1beta1DamperFactor": { - "type": "object", - "properties": { - "baseValue": { - "type": "number", - "format": "float" - }, - "alpha": { - "type": "number", - "format": "float" - }, - "minValue": { - "type": "number", - "format": "float" - }, - "method": { - "$ref": "#/definitions/DamperFactorApplyMethod" - } - }, - "title": "DamperFactor configures the dampening factor used to calculate\ninferredSLA for upstream jobs, applied at each upstream level" - }, "v1beta1DataCompleteness": { "type": "object", "properties": { @@ -944,73 +864,6 @@ } } }, - "v1beta1IdentifyPotentialSLABreachRequest": { - "type": "object", - "properties": { - "projectName": { - "type": "string" - }, - "jobNames": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobLabels": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "nextScheduledRangeInHours": { - "type": "integer", - "format": "int32" - }, - "alertOnBreach": { - "type": "boolean" - }, - "severity": { - "type": "string" - }, - "referenceTime": { - "type": "string", - "format": "date-time" - }, - "scheduledRangeInHours": { - "type": "integer", - "format": "int32" - }, - "enableDeduplication": { - "type": "boolean" - }, - "damperCoeff": { - "type": "number", - "format": "float" - }, - "skipJobNames": { - "type": "array", - "items": { - "type": "string" - } - }, - "projectNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Batch mode. When project_names is non-empty it takes precedence over\nproject_name; when label_groups is non-empty it takes precedence over\njob_labels + the request-level severity. The server evaluates the cross\nproduct of project_names x label_groups and emits one consolidated alert\nper team. job_names remains single-project only (path project_name)." - }, - "labelGroups": { - "type": "array", - "items": { - "$ref": "#/definitions/v1beta1PotentialSLABreachLabelGroup" - } - }, - "damperFactor": { - "$ref": "#/definitions/v1beta1DamperFactor" - } - } - }, "v1beta1IdentifyPotentialSLABreachResponse": { "type": "object", "properties": { @@ -1018,8 +871,7 @@ "type": "object", "additionalProperties": { "$ref": "#/definitions/v1beta1UpstreamJobsStatus" - }, - "description": "key is \"\u003cproject_name\u003e/\u003cjob_name\u003e\" (project-qualified) so targets from\ndifferent projects don't collide in batch mode." + } } } }, @@ -1335,21 +1187,6 @@ } } }, - "v1beta1PotentialSLABreachLabelGroup": { - "type": "object", - "properties": { - "jobLabels": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "name": { - "type": "string" - } - }, - "description": "PotentialSLABreachLabelGroup is one set of job labels (AND-ed together) that\nshare the same SLA target. Each group can carry its own severity and a\nhuman-friendly display name used when rendering the consolidated alert." - }, "v1beta1RegisterJobEventResponse": { "type": "object" }, @@ -1418,12 +1255,6 @@ "items": { "$ref": "#/definitions/v1beta1UpstreamJobStatus" } - }, - "targetProjectName": { - "type": "string" - }, - "targetJobName": { - "type": "string" } } } diff --git a/protos/gotocompany/optimus/core/v1beta1/replay.pb.go b/protos/gotocompany/optimus/core/v1beta1/replay.pb.go index 7e2f358a25..e1eeaf72cb 100644 --- a/protos/gotocompany/optimus/core/v1beta1/replay.pb.go +++ b/protos/gotocompany/optimus/core/v1beta1/replay.pb.go @@ -422,7 +422,8 @@ type ReplayDryRunResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReplayRuns []*ReplayRun `protobuf:"bytes,1,rep,name=replay_runs,json=replayRuns,proto3" json:"replay_runs,omitempty"` + ReplayRuns []*ReplayRun `protobuf:"bytes,1,rep,name=replay_runs,json=replayRuns,proto3" json:"replay_runs,omitempty"` + JobConfig map[string]string `protobuf:"bytes,2,rep,name=job_config,json=jobConfig,proto3" json:"job_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ReplayDryRunResponse) Reset() { @@ -464,6 +465,13 @@ func (x *ReplayDryRunResponse) GetReplayRuns() []*ReplayRun { return nil } +func (x *ReplayDryRunResponse) GetJobConfig() map[string]string { + if x != nil { + return x.JobConfig + } + return nil +} + type ReplayRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1097,184 +1105,194 @@ var file_gotocompany_optimus_core_v1beta1_replay_proto_rawDesc = []byte{ 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, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x64, - 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, - 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x52, 0x75, 0x6e, 0x73, 0x22, 0x99, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, - 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x22, 0x9f, 0x03, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, - 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, - 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, - 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x22, 0x20, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x88, + 0x02, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, + 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, + 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x99, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x22, 0x7f, 0x0a, 0x14, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 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, 0x4c, - 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x9f, 0x03, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, + 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, + 0x0b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x20, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x13, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, + 0x22, 0x7f, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x4c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x75, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x75, 0x6e, + 0x73, 0x22, 0x87, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 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, 0x0b, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x32, 0xcf, 0x08, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9e, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x75, 0x6e, - 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x75, 0x6e, 0x73, 0x22, 0x87, 0x02, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 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, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x61, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x26, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xb8, 0x01, 0x0a, 0x0c, 0x52, 0x65, + 0x70, 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x33, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x2d, 0x64, 0x72, 0x79, 0x2d, 0x72, 0x75, + 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0xa7, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x73, 0x32, 0xcf, 0x08, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x9e, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x2f, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x30, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, - 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xb8, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, - 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, - 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0xb0, + 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x2e, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, - 0x70, 0x6c, 0x61, 0x79, 0x2d, 0x64, 0x72, 0x79, 0x2d, 0x72, 0x75, 0x6e, 0x3a, 0x01, 0x2a, 0x12, - 0xa7, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x33, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0xb0, 0x01, 0x0a, 0x09, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, - 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xc0, 0x01, 0x0a, - 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x35, 0x2e, - 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, - 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x3b, 0x1a, 0x39, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x2f, 0x7b, 0x72, 0x65, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, - 0xc1, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0xc0, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x1a, 0x39, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x12, 0xc1, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, - 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x2d, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x42, 0x95, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x1e, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x74, 0x6f, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x92, 0x41, - 0x3a, 0x12, 0x05, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x1a, 0x0e, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, - 0x30, 0x2e, 0x31, 0x3a, 0x39, 0x31, 0x30, 0x30, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x01, - 0x01, 0x72, 0x18, 0x0a, 0x16, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x20, 0x52, 0x65, 0x70, - 0x6c, 0x61, 0x79, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x2d, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x95, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x6e, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x14, 0x52, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x50, 0x01, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2f, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x75, 0x73, 0x92, 0x41, 0x3a, 0x12, 0x05, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x1a, 0x0e, 0x31, + 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x3a, 0x39, 0x31, 0x30, 0x30, 0x22, 0x04, 0x2f, + 0x61, 0x70, 0x69, 0x2a, 0x01, 0x01, 0x72, 0x18, 0x0a, 0x16, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x75, + 0x73, 0x20, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1289,7 +1307,7 @@ func file_gotocompany_optimus_core_v1beta1_replay_proto_rawDescGZIP() []byte { return file_gotocompany_optimus_core_v1beta1_replay_proto_rawDescData } -var file_gotocompany_optimus_core_v1beta1_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_gotocompany_optimus_core_v1beta1_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_gotocompany_optimus_core_v1beta1_replay_proto_goTypes = []interface{}{ (*ListReplayRequest)(nil), // 0: gotocompany.optimus.core.v1beta1.ListReplayRequest (*ListReplayResponse)(nil), // 1: gotocompany.optimus.core.v1beta1.ListReplayResponse @@ -1306,41 +1324,43 @@ var file_gotocompany_optimus_core_v1beta1_replay_proto_goTypes = []interface{}{ (*GetReplayDetailsRequest)(nil), // 12: gotocompany.optimus.core.v1beta1.GetReplayDetailsRequest (*GetReplayDetailsResponse)(nil), // 13: gotocompany.optimus.core.v1beta1.GetReplayDetailsResponse nil, // 14: gotocompany.optimus.core.v1beta1.ReplayConfig.JobConfigEntry - (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp + nil, // 15: gotocompany.optimus.core.v1beta1.ReplayDryRunResponse.JobConfigEntry + (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp } var file_gotocompany_optimus_core_v1beta1_replay_proto_depIdxs = []int32{ 3, // 0: gotocompany.optimus.core.v1beta1.ListReplayResponse.replays:type_name -> gotocompany.optimus.core.v1beta1.GetReplayResponse 4, // 1: gotocompany.optimus.core.v1beta1.GetReplayResponse.replay_config:type_name -> gotocompany.optimus.core.v1beta1.ReplayConfig 5, // 2: gotocompany.optimus.core.v1beta1.GetReplayResponse.replay_runs:type_name -> gotocompany.optimus.core.v1beta1.ReplayRun - 15, // 3: gotocompany.optimus.core.v1beta1.ReplayConfig.start_time:type_name -> google.protobuf.Timestamp - 15, // 4: gotocompany.optimus.core.v1beta1.ReplayConfig.end_time:type_name -> google.protobuf.Timestamp + 16, // 3: gotocompany.optimus.core.v1beta1.ReplayConfig.start_time:type_name -> google.protobuf.Timestamp + 16, // 4: gotocompany.optimus.core.v1beta1.ReplayConfig.end_time:type_name -> google.protobuf.Timestamp 14, // 5: gotocompany.optimus.core.v1beta1.ReplayConfig.job_config:type_name -> gotocompany.optimus.core.v1beta1.ReplayConfig.JobConfigEntry - 15, // 6: gotocompany.optimus.core.v1beta1.ReplayRun.scheduled_at:type_name -> google.protobuf.Timestamp + 16, // 6: gotocompany.optimus.core.v1beta1.ReplayRun.scheduled_at:type_name -> google.protobuf.Timestamp 5, // 7: gotocompany.optimus.core.v1beta1.ReplayDryRunResponse.replay_runs:type_name -> gotocompany.optimus.core.v1beta1.ReplayRun - 15, // 8: gotocompany.optimus.core.v1beta1.ReplayRequest.start_time:type_name -> google.protobuf.Timestamp - 15, // 9: gotocompany.optimus.core.v1beta1.ReplayRequest.end_time:type_name -> google.protobuf.Timestamp - 15, // 10: gotocompany.optimus.core.v1beta1.ReplayDryRunRequest.start_time:type_name -> google.protobuf.Timestamp - 15, // 11: gotocompany.optimus.core.v1beta1.ReplayDryRunRequest.end_time:type_name -> google.protobuf.Timestamp - 5, // 12: gotocompany.optimus.core.v1beta1.CancelReplayResponse.replay_runs:type_name -> gotocompany.optimus.core.v1beta1.ReplayRun - 15, // 13: gotocompany.optimus.core.v1beta1.GetReplayDetailsRequest.scheduled_at:type_name -> google.protobuf.Timestamp - 3, // 14: gotocompany.optimus.core.v1beta1.GetReplayDetailsResponse.replays:type_name -> gotocompany.optimus.core.v1beta1.GetReplayResponse - 7, // 15: gotocompany.optimus.core.v1beta1.ReplayService.Replay:input_type -> gotocompany.optimus.core.v1beta1.ReplayRequest - 8, // 16: gotocompany.optimus.core.v1beta1.ReplayService.ReplayDryRun:input_type -> gotocompany.optimus.core.v1beta1.ReplayDryRunRequest - 0, // 17: gotocompany.optimus.core.v1beta1.ReplayService.ListReplay:input_type -> gotocompany.optimus.core.v1beta1.ListReplayRequest - 2, // 18: gotocompany.optimus.core.v1beta1.ReplayService.GetReplay:input_type -> gotocompany.optimus.core.v1beta1.GetReplayRequest - 10, // 19: gotocompany.optimus.core.v1beta1.ReplayService.CancelReplay:input_type -> gotocompany.optimus.core.v1beta1.CancelReplayRequest - 12, // 20: gotocompany.optimus.core.v1beta1.ReplayService.GetReplayDetails:input_type -> gotocompany.optimus.core.v1beta1.GetReplayDetailsRequest - 9, // 21: gotocompany.optimus.core.v1beta1.ReplayService.Replay:output_type -> gotocompany.optimus.core.v1beta1.ReplayResponse - 6, // 22: gotocompany.optimus.core.v1beta1.ReplayService.ReplayDryRun:output_type -> gotocompany.optimus.core.v1beta1.ReplayDryRunResponse - 1, // 23: gotocompany.optimus.core.v1beta1.ReplayService.ListReplay:output_type -> gotocompany.optimus.core.v1beta1.ListReplayResponse - 3, // 24: gotocompany.optimus.core.v1beta1.ReplayService.GetReplay:output_type -> gotocompany.optimus.core.v1beta1.GetReplayResponse - 11, // 25: gotocompany.optimus.core.v1beta1.ReplayService.CancelReplay:output_type -> gotocompany.optimus.core.v1beta1.CancelReplayResponse - 13, // 26: gotocompany.optimus.core.v1beta1.ReplayService.GetReplayDetails:output_type -> gotocompany.optimus.core.v1beta1.GetReplayDetailsResponse - 21, // [21:27] is the sub-list for method output_type - 15, // [15:21] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 15, // 8: gotocompany.optimus.core.v1beta1.ReplayDryRunResponse.job_config:type_name -> gotocompany.optimus.core.v1beta1.ReplayDryRunResponse.JobConfigEntry + 16, // 9: gotocompany.optimus.core.v1beta1.ReplayRequest.start_time:type_name -> google.protobuf.Timestamp + 16, // 10: gotocompany.optimus.core.v1beta1.ReplayRequest.end_time:type_name -> google.protobuf.Timestamp + 16, // 11: gotocompany.optimus.core.v1beta1.ReplayDryRunRequest.start_time:type_name -> google.protobuf.Timestamp + 16, // 12: gotocompany.optimus.core.v1beta1.ReplayDryRunRequest.end_time:type_name -> google.protobuf.Timestamp + 5, // 13: gotocompany.optimus.core.v1beta1.CancelReplayResponse.replay_runs:type_name -> gotocompany.optimus.core.v1beta1.ReplayRun + 16, // 14: gotocompany.optimus.core.v1beta1.GetReplayDetailsRequest.scheduled_at:type_name -> google.protobuf.Timestamp + 3, // 15: gotocompany.optimus.core.v1beta1.GetReplayDetailsResponse.replays:type_name -> gotocompany.optimus.core.v1beta1.GetReplayResponse + 7, // 16: gotocompany.optimus.core.v1beta1.ReplayService.Replay:input_type -> gotocompany.optimus.core.v1beta1.ReplayRequest + 8, // 17: gotocompany.optimus.core.v1beta1.ReplayService.ReplayDryRun:input_type -> gotocompany.optimus.core.v1beta1.ReplayDryRunRequest + 0, // 18: gotocompany.optimus.core.v1beta1.ReplayService.ListReplay:input_type -> gotocompany.optimus.core.v1beta1.ListReplayRequest + 2, // 19: gotocompany.optimus.core.v1beta1.ReplayService.GetReplay:input_type -> gotocompany.optimus.core.v1beta1.GetReplayRequest + 10, // 20: gotocompany.optimus.core.v1beta1.ReplayService.CancelReplay:input_type -> gotocompany.optimus.core.v1beta1.CancelReplayRequest + 12, // 21: gotocompany.optimus.core.v1beta1.ReplayService.GetReplayDetails:input_type -> gotocompany.optimus.core.v1beta1.GetReplayDetailsRequest + 9, // 22: gotocompany.optimus.core.v1beta1.ReplayService.Replay:output_type -> gotocompany.optimus.core.v1beta1.ReplayResponse + 6, // 23: gotocompany.optimus.core.v1beta1.ReplayService.ReplayDryRun:output_type -> gotocompany.optimus.core.v1beta1.ReplayDryRunResponse + 1, // 24: gotocompany.optimus.core.v1beta1.ReplayService.ListReplay:output_type -> gotocompany.optimus.core.v1beta1.ListReplayResponse + 3, // 25: gotocompany.optimus.core.v1beta1.ReplayService.GetReplay:output_type -> gotocompany.optimus.core.v1beta1.GetReplayResponse + 11, // 26: gotocompany.optimus.core.v1beta1.ReplayService.CancelReplay:output_type -> gotocompany.optimus.core.v1beta1.CancelReplayResponse + 13, // 27: gotocompany.optimus.core.v1beta1.ReplayService.GetReplayDetails:output_type -> gotocompany.optimus.core.v1beta1.GetReplayDetailsResponse + 22, // [22:28] is the sub-list for method output_type + 16, // [16:22] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_gotocompany_optimus_core_v1beta1_replay_proto_init() } @@ -1524,7 +1544,7 @@ func file_gotocompany_optimus_core_v1beta1_replay_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gotocompany_optimus_core_v1beta1_replay_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/protos/gotocompany/optimus/core/v1beta1/replay.swagger.json b/protos/gotocompany/optimus/core/v1beta1/replay.swagger.json index 16d57ab595..f4c8c6c14e 100644 --- a/protos/gotocompany/optimus/core/v1beta1/replay.swagger.json +++ b/protos/gotocompany/optimus/core/v1beta1/replay.swagger.json @@ -472,6 +472,12 @@ "items": { "$ref": "#/definitions/v1beta1ReplayRun" } + }, + "jobConfig": { + "type": "object", + "additionalProperties": { + "type": "string" + } } } }, From b827cbb6ae124741866bfd3908e9bb8985d01ff8 Mon Sep 17 00:00:00 2001 From: Yash bhardwaj Date: Wed, 22 Jul 2026 10:59:49 +0530 Subject: [PATCH 2/3] fix: return task config as part of job replay config --- Makefile | 2 +- core/scheduler/handler/v1beta1/replay_test.go | 5 +- .../service/executor_input_compiler_test.go | 12 +- core/scheduler/service/replay_service.go | 2 +- .../optimus/core/v1beta1/job_run.pb.go | 1290 ++++++++++------- .../optimus/core/v1beta1/job_run.pb.gw.go | 81 ++ .../optimus/core/v1beta1/job_run.swagger.json | 171 ++- 7 files changed, 1067 insertions(+), 496 deletions(-) diff --git a/Makefile b/Makefile index 72e0178d88..4b837a3734 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ NAME = "github.com/goto/optimus" LAST_COMMIT := $(shell git rev-parse --short HEAD) LAST_TAG := "$(shell git rev-list --tags --max-count=1)" OPMS_VERSION := "$(shell git describe --tags ${LAST_TAG})-next" -PROTON_COMMIT := "8bc01726b64979b3a2df23741845449792a932c1" +PROTON_COMMIT := "bba736bdc93dabd74e2ce2ec155cee99692c0268" .PHONY: build test test-ci generate-proto unit-test-ci integration-test vet coverage clean install lint diff --git a/core/scheduler/handler/v1beta1/replay_test.go b/core/scheduler/handler/v1beta1/replay_test.go index cc4ea07232..f8c214d956 100644 --- a/core/scheduler/handler/v1beta1/replay_test.go +++ b/core/scheduler/handler/v1beta1/replay_test.go @@ -178,6 +178,7 @@ func TestReplayHandler(t *testing.T) { } service.On("GetRunsStatus", ctx, jobTenant, jobName, replayConfig).Return(runs, nil) + service.On("GetJobConfig", ctx, jobTenant, jobName, replayConfig).Return(jobConfig, nil) result, err := replayHandler.ReplayDryRun(ctx, req) assert.NoError(t, err) @@ -778,8 +779,8 @@ func (_m *mockReplayService) CancelReplay(ctx context.Context, replayWithRun *sc return r0 } -func (_m *mockReplayService) GetReplayConfig(ctx context.Context, projectName tenant.ProjectName, name scheduler.JobName, scheduledAt time.Time) (map[string]string, error) { - args := _m.Called(ctx, projectName, name, scheduledAt) +func (_m *mockReplayService) GetJobConfig(ctx context.Context, jobTenant tenant.Tenant, jobName scheduler.JobName, config *scheduler.ReplayConfig) (map[string]string, error) { + args := _m.Called(ctx, jobTenant, jobName, config) if args.Get(0) == nil { return nil, args.Error(1) } diff --git a/core/scheduler/service/executor_input_compiler_test.go b/core/scheduler/service/executor_input_compiler_test.go index b3c34376af..9ae8d7b2f8 100644 --- a/core/scheduler/service/executor_input_compiler_test.go +++ b/core/scheduler/service/executor_input_compiler_test.go @@ -156,7 +156,7 @@ func TestExecutorCompiler(t *testing.T) { templateCompiler.On("Compile", mock.Anything, taskContext).Return(map[string]string{}, nil) defer templateCompiler.AssertExpectations(t) assetCompiler := new(mockAssetCompiler) - assetCompiler.On("CompileJobRunAssets", ctx, &job, systemDefinedVars, interval, taskContext).Return(nil, fmt.Errorf("CompileJobRunAssets error")) + assetCompiler.On("CompileJobRunAssets", mock.Anything, &job, systemDefinedVars, interval, taskContext).Return(nil, fmt.Errorf("CompileJobRunAssets error")) defer assetCompiler.AssertExpectations(t) inputCompiler := service.NewJobInputCompiler(tenantService, templateCompiler, assetCompiler, logger) @@ -263,7 +263,7 @@ func TestExecutorCompiler(t *testing.T) { Return(map[string]string{"secret.config.compiled": "a.secret.val.compiled"}, nil) defer templateCompiler.AssertExpectations(t) assetCompiler := new(mockAssetCompiler) - assetCompiler.On("CompileJobRunAssets", ctx, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) + assetCompiler.On("CompileJobRunAssets", mock.Anything, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) defer assetCompiler.AssertExpectations(t) inputCompiler := service.NewJobInputCompiler(tenantService, templateCompiler, assetCompiler, logger) inputExecutorResp, err := inputCompiler.Compile(ctx, &details, config, executedAt, nil) @@ -313,7 +313,7 @@ func TestExecutorCompiler(t *testing.T) { } assetCompilerNew := new(mockAssetCompiler) - assetCompilerNew.On("CompileJobRunAssets", ctx, &jobNew, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) + assetCompilerNew.On("CompileJobRunAssets", mock.Anything, &jobNew, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) defer assetCompilerNew.AssertExpectations(t) inputCompiler := service.NewJobInputCompiler(tenantService, templateCompiler, assetCompilerNew, logger) @@ -408,7 +408,7 @@ func TestExecutorCompiler(t *testing.T) { "someFileName": "fileContents", } assetCompiler := new(mockAssetCompiler) - assetCompiler.On("CompileJobRunAssets", ctx, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) + assetCompiler.On("CompileJobRunAssets", mock.Anything, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) defer assetCompiler.AssertExpectations(t) templateCompiler := new(mockTemplateCompiler) @@ -507,7 +507,7 @@ func TestExecutorCompiler(t *testing.T) { "someFileName": "fileContents", } assetCompiler := new(mockAssetCompiler) - assetCompiler.On("CompileJobRunAssets", ctx, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) + assetCompiler.On("CompileJobRunAssets", mock.Anything, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) defer assetCompiler.AssertExpectations(t) templateCompiler := new(mockTemplateCompiler) @@ -579,7 +579,7 @@ func TestExecutorCompiler(t *testing.T) { "someFileName": "fileContents", } assetCompiler := new(mockAssetCompiler) - assetCompiler.On("CompileJobRunAssets", ctx, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) + assetCompiler.On("CompileJobRunAssets", mock.Anything, &job, systemDefinedVars, interval, taskContext).Return(compiledFile, nil) defer assetCompiler.AssertExpectations(t) templateCompiler := new(mockTemplateCompiler) diff --git a/core/scheduler/service/replay_service.go b/core/scheduler/service/replay_service.go index 6b3a8eeb3b..aeba91eb4b 100644 --- a/core/scheduler/service/replay_service.go +++ b/core/scheduler/service/replay_service.go @@ -193,7 +193,7 @@ func (r *ReplayService) GetReplayByApprovalID(ctx context.Context, approvalID st return replayWithRun, nil } -func (r *ReplayService) GetReplayJobConfig(ctx context.Context, tenant tenant.Tenant, jobName scheduler.JobName, config *scheduler.ReplayConfig) (map[string]string, error) { +func (r *ReplayService) GetJobConfig(ctx context.Context, tenant tenant.Tenant, jobName scheduler.JobName, config *scheduler.ReplayConfig) (map[string]string, error) { details, err := r.jobRepo.GetJobDetails(ctx, tenant.ProjectName(), jobName) if err != nil { r.logger.Error("error getting job [%s]: %s", jobName, err) diff --git a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go index 6af8c74fb2..da30b36361 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go +++ b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.go @@ -123,6 +123,58 @@ func (InstanceSpecData_Type) EnumDescriptor() ([]byte, []int) { return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{22, 0} } +type DamperFactor_ApplyMethod int32 + +const ( + DamperFactor_APPLY_METHOD_UNSPECIFIED DamperFactor_ApplyMethod = 0 + DamperFactor_APPLY_METHOD_EXPONENTIAL DamperFactor_ApplyMethod = 1 + DamperFactor_APPLY_METHOD_DECREMENT DamperFactor_ApplyMethod = 2 + DamperFactor_APPLY_METHOD_CONSTANT DamperFactor_ApplyMethod = 3 +) + +// Enum value maps for DamperFactor_ApplyMethod. +var ( + DamperFactor_ApplyMethod_name = map[int32]string{ + 0: "APPLY_METHOD_UNSPECIFIED", + 1: "APPLY_METHOD_EXPONENTIAL", + 2: "APPLY_METHOD_DECREMENT", + 3: "APPLY_METHOD_CONSTANT", + } + DamperFactor_ApplyMethod_value = map[string]int32{ + "APPLY_METHOD_UNSPECIFIED": 0, + "APPLY_METHOD_EXPONENTIAL": 1, + "APPLY_METHOD_DECREMENT": 2, + "APPLY_METHOD_CONSTANT": 3, + } +) + +func (x DamperFactor_ApplyMethod) Enum() *DamperFactor_ApplyMethod { + p := new(DamperFactor_ApplyMethod) + *p = x + return p +} + +func (x DamperFactor_ApplyMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DamperFactor_ApplyMethod) Descriptor() protoreflect.EnumDescriptor { + return file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes[2].Descriptor() +} + +func (DamperFactor_ApplyMethod) Type() protoreflect.EnumType { + return &file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes[2] +} + +func (x DamperFactor_ApplyMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DamperFactor_ApplyMethod.Descriptor instead. +func (DamperFactor_ApplyMethod) EnumDescriptor() ([]byte, []int) { + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{38, 0} +} + type DexSensorRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2587,6 +2639,137 @@ func (x *SLAConfig) GetDuration() *durationpb.Duration { return nil } +// PotentialSLABreachLabelGroup is one set of job labels (AND-ed together) that +// share the same SLA target. Each group can carry its own severity and a +// human-friendly display name used when rendering the consolidated alert. +type PotentialSLABreachLabelGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JobLabels map[string]string `protobuf:"bytes,1,rep,name=job_labels,json=jobLabels,proto3" json:"job_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // optional; server derives from labels if empty +} + +func (x *PotentialSLABreachLabelGroup) Reset() { + *x = PotentialSLABreachLabelGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PotentialSLABreachLabelGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PotentialSLABreachLabelGroup) ProtoMessage() {} + +func (x *PotentialSLABreachLabelGroup) ProtoReflect() protoreflect.Message { + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PotentialSLABreachLabelGroup.ProtoReflect.Descriptor instead. +func (*PotentialSLABreachLabelGroup) Descriptor() ([]byte, []int) { + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{37} +} + +func (x *PotentialSLABreachLabelGroup) GetJobLabels() map[string]string { + if x != nil { + return x.JobLabels + } + return nil +} + +func (x *PotentialSLABreachLabelGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// DamperFactor configures the dampening factor used to calculate +// inferredSLA for upstream jobs, applied at each upstream level +type DamperFactor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BaseValue float32 `protobuf:"fixed32,1,opt,name=base_value,json=baseValue,proto3" json:"base_value,omitempty"` + Alpha float32 `protobuf:"fixed32,2,opt,name=alpha,proto3" json:"alpha,omitempty"` + MinValue float32 `protobuf:"fixed32,3,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"` + Method DamperFactor_ApplyMethod `protobuf:"varint,4,opt,name=method,proto3,enum=gotocompany.optimus.core.v1beta1.DamperFactor_ApplyMethod" json:"method,omitempty"` +} + +func (x *DamperFactor) Reset() { + *x = DamperFactor{} + if protoimpl.UnsafeEnabled { + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DamperFactor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DamperFactor) ProtoMessage() {} + +func (x *DamperFactor) ProtoReflect() protoreflect.Message { + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] + 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 DamperFactor.ProtoReflect.Descriptor instead. +func (*DamperFactor) Descriptor() ([]byte, []int) { + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{38} +} + +func (x *DamperFactor) GetBaseValue() float32 { + if x != nil { + return x.BaseValue + } + return 0 +} + +func (x *DamperFactor) GetAlpha() float32 { + if x != nil { + return x.Alpha + } + return 0 +} + +func (x *DamperFactor) GetMinValue() float32 { + if x != nil { + return x.MinValue + } + return 0 +} + +func (x *DamperFactor) GetMethod() DamperFactor_ApplyMethod { + if x != nil { + return x.Method + } + return DamperFactor_APPLY_METHOD_UNSPECIFIED +} + type IdentifyPotentialSLABreachRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2602,14 +2785,23 @@ type IdentifyPotentialSLABreachRequest struct { ReferenceTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=reference_time,json=referenceTime,proto3" json:"reference_time,omitempty"` // RFC3339 format ScheduledRangeInHours int32 `protobuf:"varint,8,opt,name=scheduled_range_in_hours,json=scheduledRangeInHours,proto3" json:"scheduled_range_in_hours,omitempty"` EnableDeduplication bool `protobuf:"varint,9,opt,name=enable_deduplication,json=enableDeduplication,proto3" json:"enable_deduplication,omitempty"` - DamperCoeff float32 `protobuf:"fixed32,10,opt,name=damper_coeff,json=damperCoeff,proto3" json:"damper_coeff,omitempty"` - SkipJobNames []string `protobuf:"bytes,11,rep,name=skip_job_names,json=skipJobNames,proto3" json:"skip_job_names,omitempty"` + // Deprecated: Do not use. + DamperCoeff float32 `protobuf:"fixed32,10,opt,name=damper_coeff,json=damperCoeff,proto3" json:"damper_coeff,omitempty"` // configure damper factor from the new damper_factor field instead + SkipJobNames []string `protobuf:"bytes,11,rep,name=skip_job_names,json=skipJobNames,proto3" json:"skip_job_names,omitempty"` + // Batch mode. When project_names is non-empty it takes precedence over + // project_name; when label_groups is non-empty it takes precedence over + // job_labels + the request-level severity. The server evaluates the cross + // product of project_names x label_groups and emits one consolidated alert + // per team. job_names remains single-project only (path project_name). + ProjectNames []string `protobuf:"bytes,12,rep,name=project_names,json=projectNames,proto3" json:"project_names,omitempty"` + LabelGroups []*PotentialSLABreachLabelGroup `protobuf:"bytes,13,rep,name=label_groups,json=labelGroups,proto3" json:"label_groups,omitempty"` + DamperFactor *DamperFactor `protobuf:"bytes,14,opt,name=damper_factor,json=damperFactor,proto3" json:"damper_factor,omitempty"` } func (x *IdentifyPotentialSLABreachRequest) Reset() { *x = IdentifyPotentialSLABreachRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2622,7 +2814,7 @@ func (x *IdentifyPotentialSLABreachRequest) String() string { func (*IdentifyPotentialSLABreachRequest) ProtoMessage() {} func (x *IdentifyPotentialSLABreachRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2635,7 +2827,7 @@ func (x *IdentifyPotentialSLABreachRequest) ProtoReflect() protoreflect.Message // Deprecated: Use IdentifyPotentialSLABreachRequest.ProtoReflect.Descriptor instead. func (*IdentifyPotentialSLABreachRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{37} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{39} } func (x *IdentifyPotentialSLABreachRequest) GetProjectName() string { @@ -2702,6 +2894,7 @@ func (x *IdentifyPotentialSLABreachRequest) GetEnableDeduplication() bool { return false } +// Deprecated: Do not use. func (x *IdentifyPotentialSLABreachRequest) GetDamperCoeff() float32 { if x != nil { return x.DamperCoeff @@ -2716,18 +2909,41 @@ func (x *IdentifyPotentialSLABreachRequest) GetSkipJobNames() []string { return nil } +func (x *IdentifyPotentialSLABreachRequest) GetProjectNames() []string { + if x != nil { + return x.ProjectNames + } + return nil +} + +func (x *IdentifyPotentialSLABreachRequest) GetLabelGroups() []*PotentialSLABreachLabelGroup { + if x != nil { + return x.LabelGroups + } + return nil +} + +func (x *IdentifyPotentialSLABreachRequest) GetDamperFactor() *DamperFactor { + if x != nil { + return x.DamperFactor + } + return nil +} + type IdentifyPotentialSLABreachResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // key is "/" (project-qualified) so targets from + // different projects don't collide in batch mode. Jobs map[string]*UpstreamJobsStatus `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *IdentifyPotentialSLABreachResponse) Reset() { *x = IdentifyPotentialSLABreachResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2740,7 +2956,7 @@ func (x *IdentifyPotentialSLABreachResponse) String() string { func (*IdentifyPotentialSLABreachResponse) ProtoMessage() {} func (x *IdentifyPotentialSLABreachResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2753,7 +2969,7 @@ func (x *IdentifyPotentialSLABreachResponse) ProtoReflect() protoreflect.Message // Deprecated: Use IdentifyPotentialSLABreachResponse.ProtoReflect.Descriptor instead. func (*IdentifyPotentialSLABreachResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{38} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{40} } func (x *IdentifyPotentialSLABreachResponse) GetJobs() map[string]*UpstreamJobsStatus { @@ -2779,7 +2995,7 @@ type UpstreamJobStatus struct { func (x *UpstreamJobStatus) Reset() { *x = UpstreamJobStatus{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2792,7 +3008,7 @@ func (x *UpstreamJobStatus) String() string { func (*UpstreamJobStatus) ProtoMessage() {} func (x *UpstreamJobStatus) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2805,7 +3021,7 @@ func (x *UpstreamJobStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use UpstreamJobStatus.ProtoReflect.Descriptor instead. func (*UpstreamJobStatus) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{39} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{41} } func (x *UpstreamJobStatus) GetProjectName() string { @@ -2855,13 +3071,15 @@ type UpstreamJobsStatus struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobsStatus []*UpstreamJobStatus `protobuf:"bytes,1,rep,name=jobs_status,json=jobsStatus,proto3" json:"jobs_status,omitempty"` + JobsStatus []*UpstreamJobStatus `protobuf:"bytes,1,rep,name=jobs_status,json=jobsStatus,proto3" json:"jobs_status,omitempty"` + TargetProjectName string `protobuf:"bytes,2,opt,name=target_project_name,json=targetProjectName,proto3" json:"target_project_name,omitempty"` // project of the target (SLA) job + TargetJobName string `protobuf:"bytes,3,opt,name=target_job_name,json=targetJobName,proto3" json:"target_job_name,omitempty"` // bare target job name } func (x *UpstreamJobsStatus) Reset() { *x = UpstreamJobsStatus{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2874,7 +3092,7 @@ func (x *UpstreamJobsStatus) String() string { func (*UpstreamJobsStatus) ProtoMessage() {} func (x *UpstreamJobsStatus) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2887,7 +3105,7 @@ func (x *UpstreamJobsStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use UpstreamJobsStatus.ProtoReflect.Descriptor instead. func (*UpstreamJobsStatus) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{40} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{42} } func (x *UpstreamJobsStatus) GetJobsStatus() []*UpstreamJobStatus { @@ -2897,6 +3115,20 @@ func (x *UpstreamJobsStatus) GetJobsStatus() []*UpstreamJobStatus { return nil } +func (x *UpstreamJobsStatus) GetTargetProjectName() string { + if x != nil { + return x.TargetProjectName + } + return "" +} + +func (x *UpstreamJobsStatus) GetTargetJobName() string { + if x != nil { + return x.TargetJobName + } + return "" +} + type GenerateExpectedFinishTimeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2912,7 +3144,7 @@ type GenerateExpectedFinishTimeRequest struct { func (x *GenerateExpectedFinishTimeRequest) Reset() { *x = GenerateExpectedFinishTimeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2925,7 +3157,7 @@ func (x *GenerateExpectedFinishTimeRequest) String() string { func (*GenerateExpectedFinishTimeRequest) ProtoMessage() {} func (x *GenerateExpectedFinishTimeRequest) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2938,7 +3170,7 @@ func (x *GenerateExpectedFinishTimeRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GenerateExpectedFinishTimeRequest.ProtoReflect.Descriptor instead. func (*GenerateExpectedFinishTimeRequest) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{41} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{43} } func (x *GenerateExpectedFinishTimeRequest) GetProjectName() string { @@ -2988,7 +3220,7 @@ type GenerateExpectedFinishTimeResponse struct { func (x *GenerateExpectedFinishTimeResponse) Reset() { *x = GenerateExpectedFinishTimeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3001,7 +3233,7 @@ func (x *GenerateExpectedFinishTimeResponse) String() string { func (*GenerateExpectedFinishTimeResponse) ProtoMessage() {} func (x *GenerateExpectedFinishTimeResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3014,7 +3246,7 @@ func (x *GenerateExpectedFinishTimeResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GenerateExpectedFinishTimeResponse.ProtoReflect.Descriptor instead. func (*GenerateExpectedFinishTimeResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{42} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{44} } func (x *GenerateExpectedFinishTimeResponse) GetInprogressJobs() map[string]*FinishTimeDetailResponse { @@ -3047,7 +3279,7 @@ type FinishTimeDetailResponse struct { func (x *FinishTimeDetailResponse) Reset() { *x = FinishTimeDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3060,7 +3292,7 @@ func (x *FinishTimeDetailResponse) String() string { func (*FinishTimeDetailResponse) ProtoMessage() {} func (x *FinishTimeDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43] + mi := &file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3073,7 +3305,7 @@ func (x *FinishTimeDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FinishTimeDetailResponse.ProtoReflect.Descriptor instead. func (*FinishTimeDetailResponse) Descriptor() ([]byte, []int) { - return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{43} + return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP(), []int{45} } func (x *FinishTimeDetailResponse) GetScheduledAt() *timestamppb.Timestamp { @@ -3634,333 +3866,389 @@ var file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDesc = []byte{ 0x41, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x96, - 0x05, 0x0a, 0x21, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xde, + 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x6c, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, + 0xb7, 0x02, 0x0a, 0x0c, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x62, 0x61, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x46, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, + 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, 0x4d, 0x45, + 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, 0x4d, 0x45, 0x54, 0x48, + 0x4f, 0x44, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x19, + 0x0a, 0x15, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, + 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x10, 0x03, 0x22, 0xf7, 0x06, 0x0a, 0x21, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, + 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x71, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, + 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, + 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6e, + 0x65, 0x78, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x6e, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0e, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, + 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0c, 0x64, + 0x61, 0x6d, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x43, 0x6f, 0x65, + 0x66, 0x66, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6b, 0x69, 0x70, + 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x61, 0x0a, + 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x53, 0x0a, 0x0d, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x61, 0x6d, 0x70, 0x65, + 0x72, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x46, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 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, 0xf7, 0x01, 0x0a, 0x22, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, + 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x04, 0x6a, 0x6f, + 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, - 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, - 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, - 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x19, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x6e, 0x42, - 0x72, 0x65, 0x61, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x31, 0x0a, - 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x44, 0x65, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x70, 0x65, 0x72, 0x43, 0x6f, - 0x65, 0x66, 0x66, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6b, 0x69, - 0x70, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0xf7, 0x01, 0x0a, 0x22, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, - 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, - 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, + 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4a, + 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x1a, 0x6d, + 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4a, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6a, 0x6f, - 0x62, 0x73, 0x1a, 0x6d, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x4a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x97, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, - 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, - 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, - 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, - 0x64, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, - 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x6c, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x0c, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 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, 0x0b, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x22, 0x6a, 0x0a, 0x12, 0x55, - 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, + 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x97, 0x02, + 0x0a, 0x11, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x6c, + 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x53, 0x6c, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 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, 0x0b, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, + 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4a, + 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6a, + 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x90, 0x03, 0x0a, + 0x21, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x71, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6a, 0x6f, 0x62, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x90, 0x03, 0x0a, 0x21, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, - 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x71, 0x0a, - 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x41, + 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 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, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, + 0xa1, 0x04, 0x0a, 0x22, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x7b, 0x0a, 0x0d, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x49, 0x6e, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0d, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, - 0x4a, 0x6f, 0x62, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x4a, 0x6f, 0x62, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x1a, 0x7d, 0x0a, 0x13, 0x49, 0x6e, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x4a, 0x6f, 0x62, 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, 0xa1, 0x04, 0x0a, 0x22, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, - 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4a, 0x6f, 0x62, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x7b, 0x0a, 0x0d, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, + 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7b, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x4a, 0x6f, 0x62, 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, 0x50, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4a, 0x6f, - 0x62, 0x73, 0x1a, 0x7d, 0x0a, 0x13, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x4a, 0x6f, 0x62, 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, 0x50, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x7b, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4a, 0x6f, 0x62, - 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, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x84, - 0x02, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x65, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x61, 0x63, - 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x84, 0x02, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x48, 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x32, 0xeb, 0x13, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, 0x52, - 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, - 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x6d, 0x70, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x4e, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x12, 0x65, 0x78, 0x70, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x4a, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x10, 0x61, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x66, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x98, 0x14, 0x0a, 0x0d, 0x4a, + 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbf, 0x01, 0x0a, + 0x0b, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x34, 0x2e, 0x67, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, + 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xa7, + 0x01, 0x0a, 0x06, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, + 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, + 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x12, 0xd2, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, - 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x75, 0x6e, - 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xa7, 0x01, 0x0a, 0x06, 0x4a, 0x6f, - 0x62, 0x52, 0x75, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, - 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x72, 0x75, 0x6e, 0x12, 0xd2, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xdb, 0x01, + 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xdb, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4a, 0x6f, - 0x62, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x74, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xb8, 0x01, 0x0a, 0x0a, + 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, - 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, - 0x73, 0x12, 0xe6, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, - 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, - 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, - 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, - 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x65, - 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x46, 0x1a, 0x41, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x68, 0x69, 0x72, 0x64, 0x2d, 0x70, 0x61, 0x72, 0x74, 0x79, - 0x2d, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0xe5, 0x01, 0x0a, 0x10, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, + 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, + 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x12, 0xe6, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, + 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, + 0x72, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x1a, 0x41, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, + 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x68, 0x69, 0x72, 0x64, 0x2d, + 0x70, 0x61, 0x72, 0x74, 0x79, 0x2d, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x3a, 0x01, 0x2a, 0x12, + 0xe5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, 0x22, 0x4f, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x54, 0x22, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xbf, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x3a, 0x2e, + 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, - 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3a, - 0x01, 0x2a, 0x12, 0xbf, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x54, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x1a, 0x26, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x3a, 0x01, 0x2a, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x2f, 0x7b, - 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x12, 0xcb, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, - 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x40, - 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x6e, 0x65, 0x61, - 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x6e, - 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x2d, 0x72, 0x75, 0x6e, 0x2d, 0x6c, 0x69, - 0x6e, 0x65, 0x61, 0x67, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x01, 0x2a, - 0x12, 0xf1, 0x01, 0x0a, 0x1a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x12, - 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x35, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x6a, 0x6f, 0x62, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0xcb, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, + 0x75, 0x6e, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, + 0x22, 0x20, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x2d, 0x72, + 0x75, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x67, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x9e, 0x02, 0x0a, 0x1a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, + 0x65, 0x61, 0x63, 0x68, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, 0x41, 0x42, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x42, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x6c, - 0x61, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xec, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x4c, + 0x41, 0x42, 0x72, 0x65, 0x61, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x75, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6f, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x2f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x2b, 0x22, 0x26, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, + 0x73, 0x6c, 0x61, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x63, 0x68, 0x2f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xec, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x3a, 0x01, 0x2a, 0x42, 0x8f, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2e, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2f, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x92, 0x41, 0x3b, 0x12, 0x05, 0x32, 0x03, 0x30, 0x2e, - 0x31, 0x1a, 0x0e, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x3a, 0x39, 0x31, 0x30, - 0x30, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x01, 0x01, 0x72, 0x19, 0x0a, 0x17, 0x4f, 0x70, - 0x74, 0x69, 0x6d, 0x75, 0x73, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x3a, 0x01, 0x2a, 0x42, 0x8f, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x42, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x75, 0x6e, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x6e, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x92, 0x41, 0x3b, 0x12, 0x05, 0x32, 0x03, + 0x30, 0x2e, 0x31, 0x1a, 0x0e, 0x31, 0x32, 0x37, 0x2e, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x3a, 0x39, + 0x31, 0x30, 0x30, 0x22, 0x04, 0x2f, 0x61, 0x70, 0x69, 0x2a, 0x01, 0x01, 0x72, 0x19, 0x0a, 0x17, + 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x75, 0x73, 0x20, 0x4a, 0x6f, 0x62, 0x20, 0x52, 0x75, 0x6e, 0x20, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3975,170 +4263,178 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescGZIP() []byte { return file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDescData } -var file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes = make([]protoimpl.MessageInfo, 52) +var file_gotocompany_optimus_core_v1beta1_job_run_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes = make([]protoimpl.MessageInfo, 55) var file_gotocompany_optimus_core_v1beta1_job_run_proto_goTypes = []interface{}{ (InstanceSpec_Type)(0), // 0: gotocompany.optimus.core.v1beta1.InstanceSpec.Type (InstanceSpecData_Type)(0), // 1: gotocompany.optimus.core.v1beta1.InstanceSpecData.Type - (*DexSensorRequest)(nil), // 2: gotocompany.optimus.core.v1beta1.DexSensorRequest - (*DataCompleteness)(nil), // 3: gotocompany.optimus.core.v1beta1.DataCompleteness - (*DexSensorResponse)(nil), // 4: gotocompany.optimus.core.v1beta1.DexSensorResponse - (*GetThirdPartySensorRequest)(nil), // 5: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest - (*GetThirdPartySensorResponse)(nil), // 6: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse - (*GetIntervalRequest)(nil), // 7: gotocompany.optimus.core.v1beta1.GetIntervalRequest - (*GetIntervalResponse)(nil), // 8: gotocompany.optimus.core.v1beta1.GetIntervalResponse - (*UploadToSchedulerRequest)(nil), // 9: gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest - (*UploadToSchedulerResponse)(nil), // 10: gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse - (*RegisterJobEventRequest)(nil), // 11: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest - (*RegisterJobEventResponse)(nil), // 12: gotocompany.optimus.core.v1beta1.RegisterJobEventResponse - (*JobRunInputRequest)(nil), // 13: gotocompany.optimus.core.v1beta1.JobRunInputRequest - (*GetJobRunsRequest)(nil), // 14: gotocompany.optimus.core.v1beta1.GetJobRunsRequest - (*JobRunWithDetail)(nil), // 15: gotocompany.optimus.core.v1beta1.JobRunWithDetail - (*GetJobRunsResponse)(nil), // 16: gotocompany.optimus.core.v1beta1.GetJobRunsResponse - (*JobRunRequest)(nil), // 17: gotocompany.optimus.core.v1beta1.JobRunRequest - (*JobRunResponse)(nil), // 18: gotocompany.optimus.core.v1beta1.JobRunResponse - (*GetSchedulerRoleRequest)(nil), // 19: gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest - (*GetSchedulerRoleResponse)(nil), // 20: gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse - (*CreateSchedulerRoleRequest)(nil), // 21: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest - (*CreateSchedulerRoleResponse)(nil), // 22: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse - (*InstanceSpec)(nil), // 23: gotocompany.optimus.core.v1beta1.InstanceSpec - (*InstanceSpecData)(nil), // 24: gotocompany.optimus.core.v1beta1.InstanceSpecData - (*JobRunInputResponse)(nil), // 25: gotocompany.optimus.core.v1beta1.JobRunInputResponse - (*TaskWindow)(nil), // 26: gotocompany.optimus.core.v1beta1.TaskWindow - (*GetJobRunLineageSummaryRequest)(nil), // 27: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest - (*TargetJobRunIdentifier)(nil), // 28: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier - (*GetJobRunLineageSummaryResponse)(nil), // 29: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse - (*JobRunLineageSummary)(nil), // 30: gotocompany.optimus.core.v1beta1.JobRunLineageSummary - (*LineageExecutionSummary)(nil), // 31: gotocompany.optimus.core.v1beta1.LineageExecutionSummary - (*JobWithTaskDuration)(nil), // 32: gotocompany.optimus.core.v1beta1.JobWithTaskDuration - (*LineageDelaySummary)(nil), // 33: gotocompany.optimus.core.v1beta1.LineageDelaySummary - (*JobExecutionSummary)(nil), // 34: gotocompany.optimus.core.v1beta1.JobExecutionSummary - (*JobRunSummary)(nil), // 35: gotocompany.optimus.core.v1beta1.JobRunSummary - (*HistoricalDurationTrend)(nil), // 36: gotocompany.optimus.core.v1beta1.HistoricalDurationTrend - (*JobRunDelaySummary)(nil), // 37: gotocompany.optimus.core.v1beta1.JobRunDelaySummary - (*SLAConfig)(nil), // 38: gotocompany.optimus.core.v1beta1.SLAConfig - (*IdentifyPotentialSLABreachRequest)(nil), // 39: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest - (*IdentifyPotentialSLABreachResponse)(nil), // 40: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse - (*UpstreamJobStatus)(nil), // 41: gotocompany.optimus.core.v1beta1.UpstreamJobStatus - (*UpstreamJobsStatus)(nil), // 42: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus - (*GenerateExpectedFinishTimeRequest)(nil), // 43: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest - (*GenerateExpectedFinishTimeResponse)(nil), // 44: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse - (*FinishTimeDetailResponse)(nil), // 45: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse - nil, // 46: gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry - nil, // 47: gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry - nil, // 48: gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry - nil, // 49: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry - nil, // 50: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry - nil, // 51: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry - nil, // 52: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry - nil, // 53: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry - (*timestamppb.Timestamp)(nil), // 54: google.protobuf.Timestamp - (*JobEvent)(nil), // 55: gotocompany.optimus.core.v1beta1.JobEvent - (*JobRun)(nil), // 56: gotocompany.optimus.core.v1beta1.JobRun - (*durationpb.Duration)(nil), // 57: google.protobuf.Duration + (DamperFactor_ApplyMethod)(0), // 2: gotocompany.optimus.core.v1beta1.DamperFactor.ApplyMethod + (*DexSensorRequest)(nil), // 3: gotocompany.optimus.core.v1beta1.DexSensorRequest + (*DataCompleteness)(nil), // 4: gotocompany.optimus.core.v1beta1.DataCompleteness + (*DexSensorResponse)(nil), // 5: gotocompany.optimus.core.v1beta1.DexSensorResponse + (*GetThirdPartySensorRequest)(nil), // 6: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest + (*GetThirdPartySensorResponse)(nil), // 7: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse + (*GetIntervalRequest)(nil), // 8: gotocompany.optimus.core.v1beta1.GetIntervalRequest + (*GetIntervalResponse)(nil), // 9: gotocompany.optimus.core.v1beta1.GetIntervalResponse + (*UploadToSchedulerRequest)(nil), // 10: gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest + (*UploadToSchedulerResponse)(nil), // 11: gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse + (*RegisterJobEventRequest)(nil), // 12: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest + (*RegisterJobEventResponse)(nil), // 13: gotocompany.optimus.core.v1beta1.RegisterJobEventResponse + (*JobRunInputRequest)(nil), // 14: gotocompany.optimus.core.v1beta1.JobRunInputRequest + (*GetJobRunsRequest)(nil), // 15: gotocompany.optimus.core.v1beta1.GetJobRunsRequest + (*JobRunWithDetail)(nil), // 16: gotocompany.optimus.core.v1beta1.JobRunWithDetail + (*GetJobRunsResponse)(nil), // 17: gotocompany.optimus.core.v1beta1.GetJobRunsResponse + (*JobRunRequest)(nil), // 18: gotocompany.optimus.core.v1beta1.JobRunRequest + (*JobRunResponse)(nil), // 19: gotocompany.optimus.core.v1beta1.JobRunResponse + (*GetSchedulerRoleRequest)(nil), // 20: gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest + (*GetSchedulerRoleResponse)(nil), // 21: gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse + (*CreateSchedulerRoleRequest)(nil), // 22: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest + (*CreateSchedulerRoleResponse)(nil), // 23: gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse + (*InstanceSpec)(nil), // 24: gotocompany.optimus.core.v1beta1.InstanceSpec + (*InstanceSpecData)(nil), // 25: gotocompany.optimus.core.v1beta1.InstanceSpecData + (*JobRunInputResponse)(nil), // 26: gotocompany.optimus.core.v1beta1.JobRunInputResponse + (*TaskWindow)(nil), // 27: gotocompany.optimus.core.v1beta1.TaskWindow + (*GetJobRunLineageSummaryRequest)(nil), // 28: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest + (*TargetJobRunIdentifier)(nil), // 29: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier + (*GetJobRunLineageSummaryResponse)(nil), // 30: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse + (*JobRunLineageSummary)(nil), // 31: gotocompany.optimus.core.v1beta1.JobRunLineageSummary + (*LineageExecutionSummary)(nil), // 32: gotocompany.optimus.core.v1beta1.LineageExecutionSummary + (*JobWithTaskDuration)(nil), // 33: gotocompany.optimus.core.v1beta1.JobWithTaskDuration + (*LineageDelaySummary)(nil), // 34: gotocompany.optimus.core.v1beta1.LineageDelaySummary + (*JobExecutionSummary)(nil), // 35: gotocompany.optimus.core.v1beta1.JobExecutionSummary + (*JobRunSummary)(nil), // 36: gotocompany.optimus.core.v1beta1.JobRunSummary + (*HistoricalDurationTrend)(nil), // 37: gotocompany.optimus.core.v1beta1.HistoricalDurationTrend + (*JobRunDelaySummary)(nil), // 38: gotocompany.optimus.core.v1beta1.JobRunDelaySummary + (*SLAConfig)(nil), // 39: gotocompany.optimus.core.v1beta1.SLAConfig + (*PotentialSLABreachLabelGroup)(nil), // 40: gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup + (*DamperFactor)(nil), // 41: gotocompany.optimus.core.v1beta1.DamperFactor + (*IdentifyPotentialSLABreachRequest)(nil), // 42: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest + (*IdentifyPotentialSLABreachResponse)(nil), // 43: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse + (*UpstreamJobStatus)(nil), // 44: gotocompany.optimus.core.v1beta1.UpstreamJobStatus + (*UpstreamJobsStatus)(nil), // 45: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus + (*GenerateExpectedFinishTimeRequest)(nil), // 46: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest + (*GenerateExpectedFinishTimeResponse)(nil), // 47: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse + (*FinishTimeDetailResponse)(nil), // 48: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse + nil, // 49: gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry + nil, // 50: gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry + nil, // 51: gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry + nil, // 52: gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup.JobLabelsEntry + nil, // 53: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry + nil, // 54: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry + nil, // 55: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry + nil, // 56: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry + nil, // 57: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry + (*timestamppb.Timestamp)(nil), // 58: google.protobuf.Timestamp + (*JobEvent)(nil), // 59: gotocompany.optimus.core.v1beta1.JobEvent + (*JobRun)(nil), // 60: gotocompany.optimus.core.v1beta1.JobRun + (*durationpb.Duration)(nil), // 61: google.protobuf.Duration } var file_gotocompany_optimus_core_v1beta1_job_run_proto_depIdxs = []int32{ - 54, // 0: gotocompany.optimus.core.v1beta1.DataCompleteness.date:type_name -> google.protobuf.Timestamp - 3, // 1: gotocompany.optimus.core.v1beta1.DexSensorResponse.log:type_name -> gotocompany.optimus.core.v1beta1.DataCompleteness - 54, // 2: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.scheduled_at:type_name -> google.protobuf.Timestamp - 2, // 3: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.dex_sensor_request:type_name -> gotocompany.optimus.core.v1beta1.DexSensorRequest - 4, // 4: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse.dex_sensor_response:type_name -> gotocompany.optimus.core.v1beta1.DexSensorResponse - 54, // 5: gotocompany.optimus.core.v1beta1.GetIntervalRequest.reference_time:type_name -> google.protobuf.Timestamp - 54, // 6: gotocompany.optimus.core.v1beta1.GetIntervalResponse.start_time:type_name -> google.protobuf.Timestamp - 54, // 7: gotocompany.optimus.core.v1beta1.GetIntervalResponse.end_time:type_name -> google.protobuf.Timestamp - 55, // 8: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest.event:type_name -> gotocompany.optimus.core.v1beta1.JobEvent - 54, // 9: gotocompany.optimus.core.v1beta1.JobRunInputRequest.scheduled_at:type_name -> google.protobuf.Timestamp + 58, // 0: gotocompany.optimus.core.v1beta1.DataCompleteness.date:type_name -> google.protobuf.Timestamp + 4, // 1: gotocompany.optimus.core.v1beta1.DexSensorResponse.log:type_name -> gotocompany.optimus.core.v1beta1.DataCompleteness + 58, // 2: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.scheduled_at:type_name -> google.protobuf.Timestamp + 3, // 3: gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest.dex_sensor_request:type_name -> gotocompany.optimus.core.v1beta1.DexSensorRequest + 5, // 4: gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse.dex_sensor_response:type_name -> gotocompany.optimus.core.v1beta1.DexSensorResponse + 58, // 5: gotocompany.optimus.core.v1beta1.GetIntervalRequest.reference_time:type_name -> google.protobuf.Timestamp + 58, // 6: gotocompany.optimus.core.v1beta1.GetIntervalResponse.start_time:type_name -> google.protobuf.Timestamp + 58, // 7: gotocompany.optimus.core.v1beta1.GetIntervalResponse.end_time:type_name -> google.protobuf.Timestamp + 59, // 8: gotocompany.optimus.core.v1beta1.RegisterJobEventRequest.event:type_name -> gotocompany.optimus.core.v1beta1.JobEvent + 58, // 9: gotocompany.optimus.core.v1beta1.JobRunInputRequest.scheduled_at:type_name -> google.protobuf.Timestamp 0, // 10: gotocompany.optimus.core.v1beta1.JobRunInputRequest.instance_type:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpec.Type - 54, // 11: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.since:type_name -> google.protobuf.Timestamp - 54, // 12: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.until:type_name -> google.protobuf.Timestamp - 54, // 13: gotocompany.optimus.core.v1beta1.JobRunWithDetail.scheduled_at:type_name -> google.protobuf.Timestamp - 54, // 14: gotocompany.optimus.core.v1beta1.JobRunWithDetail.start_time:type_name -> google.protobuf.Timestamp - 54, // 15: gotocompany.optimus.core.v1beta1.JobRunWithDetail.end_time:type_name -> google.protobuf.Timestamp - 15, // 16: gotocompany.optimus.core.v1beta1.GetJobRunsResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRunWithDetail - 54, // 17: gotocompany.optimus.core.v1beta1.JobRunRequest.start_date:type_name -> google.protobuf.Timestamp - 54, // 18: gotocompany.optimus.core.v1beta1.JobRunRequest.end_date:type_name -> google.protobuf.Timestamp - 56, // 19: gotocompany.optimus.core.v1beta1.JobRunResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRun - 24, // 20: gotocompany.optimus.core.v1beta1.InstanceSpec.data:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpecData - 54, // 21: gotocompany.optimus.core.v1beta1.InstanceSpec.executed_at:type_name -> google.protobuf.Timestamp + 58, // 11: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.since:type_name -> google.protobuf.Timestamp + 58, // 12: gotocompany.optimus.core.v1beta1.GetJobRunsRequest.until:type_name -> google.protobuf.Timestamp + 58, // 13: gotocompany.optimus.core.v1beta1.JobRunWithDetail.scheduled_at:type_name -> google.protobuf.Timestamp + 58, // 14: gotocompany.optimus.core.v1beta1.JobRunWithDetail.start_time:type_name -> google.protobuf.Timestamp + 58, // 15: gotocompany.optimus.core.v1beta1.JobRunWithDetail.end_time:type_name -> google.protobuf.Timestamp + 16, // 16: gotocompany.optimus.core.v1beta1.GetJobRunsResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRunWithDetail + 58, // 17: gotocompany.optimus.core.v1beta1.JobRunRequest.start_date:type_name -> google.protobuf.Timestamp + 58, // 18: gotocompany.optimus.core.v1beta1.JobRunRequest.end_date:type_name -> google.protobuf.Timestamp + 60, // 19: gotocompany.optimus.core.v1beta1.JobRunResponse.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobRun + 25, // 20: gotocompany.optimus.core.v1beta1.InstanceSpec.data:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpecData + 58, // 21: gotocompany.optimus.core.v1beta1.InstanceSpec.executed_at:type_name -> google.protobuf.Timestamp 0, // 22: gotocompany.optimus.core.v1beta1.InstanceSpec.type:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpec.Type 1, // 23: gotocompany.optimus.core.v1beta1.InstanceSpecData.type:type_name -> gotocompany.optimus.core.v1beta1.InstanceSpecData.Type - 46, // 24: gotocompany.optimus.core.v1beta1.JobRunInputResponse.envs:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry - 47, // 25: gotocompany.optimus.core.v1beta1.JobRunInputResponse.files:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry - 48, // 26: gotocompany.optimus.core.v1beta1.JobRunInputResponse.secrets:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry - 57, // 27: gotocompany.optimus.core.v1beta1.TaskWindow.size:type_name -> google.protobuf.Duration - 57, // 28: gotocompany.optimus.core.v1beta1.TaskWindow.offset:type_name -> google.protobuf.Duration - 28, // 29: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest.target_jobs:type_name -> gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier - 54, // 30: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier.scheduled_at:type_name -> google.protobuf.Timestamp - 30, // 31: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobRunLineageSummary - 54, // 32: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.scheduled_at:type_name -> google.protobuf.Timestamp - 34, // 33: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobExecutionSummary - 31, // 34: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.execution_summary:type_name -> gotocompany.optimus.core.v1beta1.LineageExecutionSummary - 33, // 35: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_scheduled_way_too_late_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary - 33, // 36: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_system_scheduling_delay_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary - 32, // 37: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_task_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration - 32, // 38: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_hook_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration - 54, // 39: gotocompany.optimus.core.v1beta1.LineageDelaySummary.scheduled_at:type_name -> google.protobuf.Timestamp - 54, // 40: gotocompany.optimus.core.v1beta1.LineageDelaySummary.upstream_scheduled_at:type_name -> google.protobuf.Timestamp - 38, // 41: gotocompany.optimus.core.v1beta1.JobExecutionSummary.sla:type_name -> gotocompany.optimus.core.v1beta1.SLAConfig - 35, // 42: gotocompany.optimus.core.v1beta1.JobExecutionSummary.job_run_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunSummary - 37, // 43: gotocompany.optimus.core.v1beta1.JobExecutionSummary.delay_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunDelaySummary - 36, // 44: gotocompany.optimus.core.v1beta1.JobExecutionSummary.historical_duration_trend:type_name -> gotocompany.optimus.core.v1beta1.HistoricalDurationTrend - 54, // 45: gotocompany.optimus.core.v1beta1.JobRunSummary.scheduled_at:type_name -> google.protobuf.Timestamp - 54, // 46: gotocompany.optimus.core.v1beta1.JobRunSummary.sla_time:type_name -> google.protobuf.Timestamp - 54, // 47: gotocompany.optimus.core.v1beta1.JobRunSummary.job_start_time:type_name -> google.protobuf.Timestamp - 54, // 48: gotocompany.optimus.core.v1beta1.JobRunSummary.job_end_time:type_name -> google.protobuf.Timestamp - 54, // 49: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_start_time:type_name -> google.protobuf.Timestamp - 54, // 50: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_end_time:type_name -> google.protobuf.Timestamp - 54, // 51: gotocompany.optimus.core.v1beta1.JobRunSummary.task_start_time:type_name -> google.protobuf.Timestamp - 54, // 52: gotocompany.optimus.core.v1beta1.JobRunSummary.task_end_time:type_name -> google.protobuf.Timestamp - 54, // 53: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_start_time:type_name -> google.protobuf.Timestamp - 54, // 54: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_end_time:type_name -> google.protobuf.Timestamp - 57, // 55: gotocompany.optimus.core.v1beta1.SLAConfig.duration:type_name -> google.protobuf.Duration - 49, // 56: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry - 54, // 57: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.reference_time:type_name -> google.protobuf.Timestamp - 50, // 58: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry - 54, // 59: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.inferred_sla_time:type_name -> google.protobuf.Timestamp - 54, // 60: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.scheduled_at:type_name -> google.protobuf.Timestamp - 41, // 61: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus.jobs_status:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobStatus - 51, // 62: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry - 54, // 63: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.reference_time:type_name -> google.protobuf.Timestamp - 52, // 64: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.inprogress_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry - 53, // 65: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.finished_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry - 54, // 66: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.scheduled_at:type_name -> google.protobuf.Timestamp - 54, // 67: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.expected_finish_time:type_name -> google.protobuf.Timestamp - 54, // 68: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.actual_finish_time:type_name -> google.protobuf.Timestamp - 42, // 69: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobsStatus - 45, // 70: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse - 45, // 71: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse - 13, // 72: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:input_type -> gotocompany.optimus.core.v1beta1.JobRunInputRequest - 17, // 73: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:input_type -> gotocompany.optimus.core.v1beta1.JobRunRequest - 19, // 74: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest - 21, // 75: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest - 14, // 76: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunsRequest - 5, // 77: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:input_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest - 11, // 78: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:input_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventRequest - 9, // 79: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:input_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest - 7, // 80: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:input_type -> gotocompany.optimus.core.v1beta1.GetIntervalRequest - 27, // 81: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest - 39, // 82: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:input_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest - 43, // 83: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:input_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest - 25, // 84: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:output_type -> gotocompany.optimus.core.v1beta1.JobRunInputResponse - 18, // 85: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:output_type -> gotocompany.optimus.core.v1beta1.JobRunResponse - 20, // 86: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse - 22, // 87: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse - 16, // 88: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunsResponse - 6, // 89: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:output_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse - 12, // 90: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:output_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventResponse - 10, // 91: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:output_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse - 8, // 92: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:output_type -> gotocompany.optimus.core.v1beta1.GetIntervalResponse - 29, // 93: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse - 40, // 94: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:output_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse - 44, // 95: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:output_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse - 84, // [84:96] is the sub-list for method output_type - 72, // [72:84] is the sub-list for method input_type - 72, // [72:72] is the sub-list for extension type_name - 72, // [72:72] is the sub-list for extension extendee - 0, // [0:72] is the sub-list for field type_name + 49, // 24: gotocompany.optimus.core.v1beta1.JobRunInputResponse.envs:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.EnvsEntry + 50, // 25: gotocompany.optimus.core.v1beta1.JobRunInputResponse.files:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.FilesEntry + 51, // 26: gotocompany.optimus.core.v1beta1.JobRunInputResponse.secrets:type_name -> gotocompany.optimus.core.v1beta1.JobRunInputResponse.SecretsEntry + 61, // 27: gotocompany.optimus.core.v1beta1.TaskWindow.size:type_name -> google.protobuf.Duration + 61, // 28: gotocompany.optimus.core.v1beta1.TaskWindow.offset:type_name -> google.protobuf.Duration + 29, // 29: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest.target_jobs:type_name -> gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier + 58, // 30: gotocompany.optimus.core.v1beta1.TargetJobRunIdentifier.scheduled_at:type_name -> google.protobuf.Timestamp + 31, // 31: gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.JobRunLineageSummary + 58, // 32: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.scheduled_at:type_name -> google.protobuf.Timestamp + 35, // 33: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.job_runs:type_name -> gotocompany.optimus.core.v1beta1.JobExecutionSummary + 32, // 34: gotocompany.optimus.core.v1beta1.JobRunLineageSummary.execution_summary:type_name -> gotocompany.optimus.core.v1beta1.LineageExecutionSummary + 34, // 35: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_scheduled_way_too_late_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary + 34, // 36: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.largest_system_scheduling_delay_job:type_name -> gotocompany.optimus.core.v1beta1.LineageDelaySummary + 33, // 37: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_task_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration + 33, // 38: gotocompany.optimus.core.v1beta1.LineageExecutionSummary.top_longest_hook_duration_jobs:type_name -> gotocompany.optimus.core.v1beta1.JobWithTaskDuration + 58, // 39: gotocompany.optimus.core.v1beta1.LineageDelaySummary.scheduled_at:type_name -> google.protobuf.Timestamp + 58, // 40: gotocompany.optimus.core.v1beta1.LineageDelaySummary.upstream_scheduled_at:type_name -> google.protobuf.Timestamp + 39, // 41: gotocompany.optimus.core.v1beta1.JobExecutionSummary.sla:type_name -> gotocompany.optimus.core.v1beta1.SLAConfig + 36, // 42: gotocompany.optimus.core.v1beta1.JobExecutionSummary.job_run_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunSummary + 38, // 43: gotocompany.optimus.core.v1beta1.JobExecutionSummary.delay_summary:type_name -> gotocompany.optimus.core.v1beta1.JobRunDelaySummary + 37, // 44: gotocompany.optimus.core.v1beta1.JobExecutionSummary.historical_duration_trend:type_name -> gotocompany.optimus.core.v1beta1.HistoricalDurationTrend + 58, // 45: gotocompany.optimus.core.v1beta1.JobRunSummary.scheduled_at:type_name -> google.protobuf.Timestamp + 58, // 46: gotocompany.optimus.core.v1beta1.JobRunSummary.sla_time:type_name -> google.protobuf.Timestamp + 58, // 47: gotocompany.optimus.core.v1beta1.JobRunSummary.job_start_time:type_name -> google.protobuf.Timestamp + 58, // 48: gotocompany.optimus.core.v1beta1.JobRunSummary.job_end_time:type_name -> google.protobuf.Timestamp + 58, // 49: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_start_time:type_name -> google.protobuf.Timestamp + 58, // 50: gotocompany.optimus.core.v1beta1.JobRunSummary.wait_end_time:type_name -> google.protobuf.Timestamp + 58, // 51: gotocompany.optimus.core.v1beta1.JobRunSummary.task_start_time:type_name -> google.protobuf.Timestamp + 58, // 52: gotocompany.optimus.core.v1beta1.JobRunSummary.task_end_time:type_name -> google.protobuf.Timestamp + 58, // 53: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_start_time:type_name -> google.protobuf.Timestamp + 58, // 54: gotocompany.optimus.core.v1beta1.JobRunSummary.hook_end_time:type_name -> google.protobuf.Timestamp + 61, // 55: gotocompany.optimus.core.v1beta1.SLAConfig.duration:type_name -> google.protobuf.Duration + 52, // 56: gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup.job_labels:type_name -> gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup.JobLabelsEntry + 2, // 57: gotocompany.optimus.core.v1beta1.DamperFactor.method:type_name -> gotocompany.optimus.core.v1beta1.DamperFactor.ApplyMethod + 53, // 58: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.JobLabelsEntry + 58, // 59: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.reference_time:type_name -> google.protobuf.Timestamp + 40, // 60: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.label_groups:type_name -> gotocompany.optimus.core.v1beta1.PotentialSLABreachLabelGroup + 41, // 61: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest.damper_factor:type_name -> gotocompany.optimus.core.v1beta1.DamperFactor + 54, // 62: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.jobs:type_name -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry + 58, // 63: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.inferred_sla_time:type_name -> google.protobuf.Timestamp + 58, // 64: gotocompany.optimus.core.v1beta1.UpstreamJobStatus.scheduled_at:type_name -> google.protobuf.Timestamp + 44, // 65: gotocompany.optimus.core.v1beta1.UpstreamJobsStatus.jobs_status:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobStatus + 55, // 66: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.job_labels:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.JobLabelsEntry + 58, // 67: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest.reference_time:type_name -> google.protobuf.Timestamp + 56, // 68: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.inprogress_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry + 57, // 69: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.finished_jobs:type_name -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry + 58, // 70: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.scheduled_at:type_name -> google.protobuf.Timestamp + 58, // 71: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.expected_finish_time:type_name -> google.protobuf.Timestamp + 58, // 72: gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse.actual_finish_time:type_name -> google.protobuf.Timestamp + 45, // 73: gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse.JobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.UpstreamJobsStatus + 48, // 74: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.InprogressJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse + 48, // 75: gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse.FinishedJobsEntry.value:type_name -> gotocompany.optimus.core.v1beta1.FinishTimeDetailResponse + 14, // 76: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:input_type -> gotocompany.optimus.core.v1beta1.JobRunInputRequest + 18, // 77: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:input_type -> gotocompany.optimus.core.v1beta1.JobRunRequest + 20, // 78: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleRequest + 22, // 79: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:input_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleRequest + 15, // 80: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunsRequest + 6, // 81: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:input_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorRequest + 12, // 82: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:input_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventRequest + 10, // 83: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:input_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerRequest + 8, // 84: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:input_type -> gotocompany.optimus.core.v1beta1.GetIntervalRequest + 28, // 85: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:input_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryRequest + 42, // 86: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:input_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachRequest + 46, // 87: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:input_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeRequest + 26, // 88: gotocompany.optimus.core.v1beta1.JobRunService.JobRunInput:output_type -> gotocompany.optimus.core.v1beta1.JobRunInputResponse + 19, // 89: gotocompany.optimus.core.v1beta1.JobRunService.JobRun:output_type -> gotocompany.optimus.core.v1beta1.JobRunResponse + 21, // 90: gotocompany.optimus.core.v1beta1.JobRunService.GetSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.GetSchedulerRoleResponse + 23, // 91: gotocompany.optimus.core.v1beta1.JobRunService.CreateSchedulerRole:output_type -> gotocompany.optimus.core.v1beta1.CreateSchedulerRoleResponse + 17, // 92: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRuns:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunsResponse + 7, // 93: gotocompany.optimus.core.v1beta1.JobRunService.GetThirdPartySensorStatus:output_type -> gotocompany.optimus.core.v1beta1.GetThirdPartySensorResponse + 13, // 94: gotocompany.optimus.core.v1beta1.JobRunService.RegisterJobEvent:output_type -> gotocompany.optimus.core.v1beta1.RegisterJobEventResponse + 11, // 95: gotocompany.optimus.core.v1beta1.JobRunService.UploadToScheduler:output_type -> gotocompany.optimus.core.v1beta1.UploadToSchedulerResponse + 9, // 96: gotocompany.optimus.core.v1beta1.JobRunService.GetInterval:output_type -> gotocompany.optimus.core.v1beta1.GetIntervalResponse + 30, // 97: gotocompany.optimus.core.v1beta1.JobRunService.GetJobRunLineageSummary:output_type -> gotocompany.optimus.core.v1beta1.GetJobRunLineageSummaryResponse + 43, // 98: gotocompany.optimus.core.v1beta1.JobRunService.IdentifyPotentialSLABreach:output_type -> gotocompany.optimus.core.v1beta1.IdentifyPotentialSLABreachResponse + 47, // 99: gotocompany.optimus.core.v1beta1.JobRunService.GenerateExpectedFinishTime:output_type -> gotocompany.optimus.core.v1beta1.GenerateExpectedFinishTimeResponse + 88, // [88:100] is the sub-list for method output_type + 76, // [76:88] is the sub-list for method input_type + 76, // [76:76] is the sub-list for extension type_name + 76, // [76:76] is the sub-list for extension extendee + 0, // [0:76] is the sub-list for field type_name } func init() { file_gotocompany_optimus_core_v1beta1_job_run_proto_init() } @@ -4593,7 +4889,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdentifyPotentialSLABreachRequest); i { + switch v := v.(*PotentialSLABreachLabelGroup); i { case 0: return &v.state case 1: @@ -4605,7 +4901,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdentifyPotentialSLABreachResponse); i { + switch v := v.(*DamperFactor); i { case 0: return &v.state case 1: @@ -4617,7 +4913,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamJobStatus); i { + switch v := v.(*IdentifyPotentialSLABreachRequest); i { case 0: return &v.state case 1: @@ -4629,7 +4925,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpstreamJobsStatus); i { + switch v := v.(*IdentifyPotentialSLABreachResponse); i { case 0: return &v.state case 1: @@ -4641,7 +4937,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateExpectedFinishTimeRequest); i { + switch v := v.(*UpstreamJobStatus); i { case 0: return &v.state case 1: @@ -4653,7 +4949,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenerateExpectedFinishTimeResponse); i { + switch v := v.(*UpstreamJobsStatus); i { case 0: return &v.state case 1: @@ -4665,6 +4961,30 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { } } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateExpectedFinishTimeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateExpectedFinishTimeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinishTimeDetailResponse); i { case 0: return &v.state @@ -4684,7 +5004,7 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { (*GetThirdPartySensorResponse_DexSensorResponse)(nil), } file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[7].OneofWrappers = []interface{}{} - file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[43].OneofWrappers = []interface{}{ + file_gotocompany_optimus_core_v1beta1_job_run_proto_msgTypes[45].OneofWrappers = []interface{}{ (*FinishTimeDetailResponse_ExpectedFinishTime)(nil), (*FinishTimeDetailResponse_ActualFinishTime)(nil), } @@ -4693,8 +5013,8 @@ func file_gotocompany_optimus_core_v1beta1_job_run_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gotocompany_optimus_core_v1beta1_job_run_proto_rawDesc, - NumEnums: 2, - NumMessages: 52, + NumEnums: 3, + NumMessages: 55, NumExtensions: 0, NumServices: 1, }, diff --git a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go index f7bc0edf82..2292fcb162 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go +++ b/protos/gotocompany/optimus/core/v1beta1/job_run.pb.gw.go @@ -935,6 +935,40 @@ func local_request_JobRunService_IdentifyPotentialSLABreach_0(ctx context.Contex } +func request_JobRunService_IdentifyPotentialSLABreach_1(ctx context.Context, marshaler runtime.Marshaler, client JobRunServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdentifyPotentialSLABreachRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.IdentifyPotentialSLABreach(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_JobRunService_IdentifyPotentialSLABreach_1(ctx context.Context, marshaler runtime.Marshaler, server JobRunServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IdentifyPotentialSLABreachRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.IdentifyPotentialSLABreach(ctx, &protoReq) + return msg, metadata, err + +} + func request_JobRunService_GenerateExpectedFinishTime_0(ctx context.Context, marshaler runtime.Marshaler, client JobRunServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GenerateExpectedFinishTimeRequest var metadata runtime.ServerMetadata @@ -1262,6 +1296,29 @@ func RegisterJobRunServiceHandlerServer(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_JobRunService_IdentifyPotentialSLABreach_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gotocompany.optimus.core.v1beta1.JobRunService/IdentifyPotentialSLABreach", runtime.WithHTTPPathPattern("/v1beta1/potential_sla_breach/identify")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_JobRunService_IdentifyPotentialSLABreach_1(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_JobRunService_IdentifyPotentialSLABreach_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_JobRunService_GenerateExpectedFinishTime_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1546,6 +1603,26 @@ func RegisterJobRunServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_JobRunService_IdentifyPotentialSLABreach_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gotocompany.optimus.core.v1beta1.JobRunService/IdentifyPotentialSLABreach", runtime.WithHTTPPathPattern("/v1beta1/potential_sla_breach/identify")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_JobRunService_IdentifyPotentialSLABreach_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_JobRunService_IdentifyPotentialSLABreach_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_JobRunService_GenerateExpectedFinishTime_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1592,6 +1669,8 @@ var ( pattern_JobRunService_IdentifyPotentialSLABreach_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"v1beta1", "project", "project_name", "potential_sla_breach", "identify"}, "")) + pattern_JobRunService_IdentifyPotentialSLABreach_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1beta1", "potential_sla_breach", "identify"}, "")) + pattern_JobRunService_GenerateExpectedFinishTime_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"v1beta1", "project", "project_name", "expected_job_finish_time"}, "")) ) @@ -1618,5 +1697,7 @@ var ( forward_JobRunService_IdentifyPotentialSLABreach_0 = runtime.ForwardResponseMessage + forward_JobRunService_IdentifyPotentialSLABreach_1 = runtime.ForwardResponseMessage + forward_JobRunService_GenerateExpectedFinishTime_0 = runtime.ForwardResponseMessage ) diff --git a/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json b/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json index 0149c913bb..2069f93cef 100644 --- a/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json +++ b/protos/gotocompany/optimus/core/v1beta1/job_run.swagger.json @@ -54,6 +54,39 @@ ] } }, + "/v1beta1/potential_sla_breach/identify": { + "post": { + "summary": "IdentifyPotentialSLABreach notifies optimus service about potential SLA breach for given job(s)", + "operationId": "JobRunService_IdentifyPotentialSLABreach2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1beta1IdentifyPotentialSLABreachResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1beta1IdentifyPotentialSLABreachRequest" + } + } + ], + "tags": [ + "JobRunService" + ] + } + }, "/v1beta1/project/{projectName}/expected_job_finish_time": { "post": { "summary": "GenerateExpectedFinishTime generates and stores the expected finish time for a given job(s)", @@ -617,6 +650,22 @@ "items": { "type": "string" } + }, + "projectNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Batch mode. When project_names is non-empty it takes precedence over\nproject_name; when label_groups is non-empty it takes precedence over\njob_labels + the request-level severity. The server evaluates the cross\nproduct of project_names x label_groups and emits one consolidated alert\nper team. job_names remains single-project only (path project_name)." + }, + "labelGroups": { + "type": "array", + "items": { + "$ref": "#/definitions/v1beta1PotentialSLABreachLabelGroup" + } + }, + "damperFactor": { + "$ref": "#/definitions/v1beta1DamperFactor" } } } @@ -673,6 +722,16 @@ } }, "definitions": { + "DamperFactorApplyMethod": { + "type": "string", + "enum": [ + "APPLY_METHOD_UNSPECIFIED", + "APPLY_METHOD_EXPONENTIAL", + "APPLY_METHOD_DECREMENT", + "APPLY_METHOD_CONSTANT" + ], + "default": "APPLY_METHOD_UNSPECIFIED" + }, "protobufAny": { "type": "object", "properties": { @@ -714,6 +773,27 @@ "v1beta1CreateSchedulerRoleResponse": { "type": "object" }, + "v1beta1DamperFactor": { + "type": "object", + "properties": { + "baseValue": { + "type": "number", + "format": "float" + }, + "alpha": { + "type": "number", + "format": "float" + }, + "minValue": { + "type": "number", + "format": "float" + }, + "method": { + "$ref": "#/definitions/DamperFactorApplyMethod" + } + }, + "title": "DamperFactor configures the dampening factor used to calculate\ninferredSLA for upstream jobs, applied at each upstream level" + }, "v1beta1DataCompleteness": { "type": "object", "properties": { @@ -864,6 +944,73 @@ } } }, + "v1beta1IdentifyPotentialSLABreachRequest": { + "type": "object", + "properties": { + "projectName": { + "type": "string" + }, + "jobNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobLabels": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "nextScheduledRangeInHours": { + "type": "integer", + "format": "int32" + }, + "alertOnBreach": { + "type": "boolean" + }, + "severity": { + "type": "string" + }, + "referenceTime": { + "type": "string", + "format": "date-time" + }, + "scheduledRangeInHours": { + "type": "integer", + "format": "int32" + }, + "enableDeduplication": { + "type": "boolean" + }, + "damperCoeff": { + "type": "number", + "format": "float" + }, + "skipJobNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "projectNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Batch mode. When project_names is non-empty it takes precedence over\nproject_name; when label_groups is non-empty it takes precedence over\njob_labels + the request-level severity. The server evaluates the cross\nproduct of project_names x label_groups and emits one consolidated alert\nper team. job_names remains single-project only (path project_name)." + }, + "labelGroups": { + "type": "array", + "items": { + "$ref": "#/definitions/v1beta1PotentialSLABreachLabelGroup" + } + }, + "damperFactor": { + "$ref": "#/definitions/v1beta1DamperFactor" + } + } + }, "v1beta1IdentifyPotentialSLABreachResponse": { "type": "object", "properties": { @@ -871,7 +1018,8 @@ "type": "object", "additionalProperties": { "$ref": "#/definitions/v1beta1UpstreamJobsStatus" - } + }, + "description": "key is \"\u003cproject_name\u003e/\u003cjob_name\u003e\" (project-qualified) so targets from\ndifferent projects don't collide in batch mode." } } }, @@ -1187,6 +1335,21 @@ } } }, + "v1beta1PotentialSLABreachLabelGroup": { + "type": "object", + "properties": { + "jobLabels": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "name": { + "type": "string" + } + }, + "description": "PotentialSLABreachLabelGroup is one set of job labels (AND-ed together) that\nshare the same SLA target. Each group can carry its own severity and a\nhuman-friendly display name used when rendering the consolidated alert." + }, "v1beta1RegisterJobEventResponse": { "type": "object" }, @@ -1255,6 +1418,12 @@ "items": { "$ref": "#/definitions/v1beta1UpstreamJobStatus" } + }, + "targetProjectName": { + "type": "string" + }, + "targetJobName": { + "type": "string" } } } From 5ca6645bebcfd8903979064c1c8fcc48d31d508f Mon Sep 17 00:00:00 2001 From: Yash bhardwaj Date: Wed, 22 Jul 2026 11:13:11 +0530 Subject: [PATCH 3/3] fix: lint --- core/scheduler/service/executor_input_compiler.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/scheduler/service/executor_input_compiler.go b/core/scheduler/service/executor_input_compiler.go index 7ea4c830a7..382190d65d 100644 --- a/core/scheduler/service/executor_input_compiler.go +++ b/core/scheduler/service/executor_input_compiler.go @@ -53,6 +53,10 @@ const ( var invalidLabelCharacterRegex *regexp.Regexp +var jobRunMode ctxContext = "run-mode" + +type ctxContext string + type TenantService interface { GetDetails(ctx context.Context, tnnt tenant.Tenant) (*tenant.WithDetails, error) GetSecrets(ctx context.Context, tnnt tenant.Tenant) ([]*tenant.PlainTextSecret, error) @@ -138,7 +142,7 @@ func (i InputCompiler) Compile(ctx context.Context, job *scheduler.JobWithDetail ) mergedContext := utils.MergeAnyMaps(taskContext, allTaskConfigs) - ctx = context.WithValue(ctx, "run-mode", scheduler.DryRun) + ctx = context.WithValue(ctx, jobRunMode, scheduler.DryRun) fileMap, err := i.assetCompiler.CompileJobRunAssets(ctx, job.Job, systemDefinedVars, interval, mergedContext) if err != nil { i.logger.Error("error compiling job run assets: %s", err)