proto/process/v1/process.pb.go (764 lines of code) (raw):

// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.33.0 // protoc v5.26.1 // source: proto/process/v1/process.proto // Package process provides protocol buffers for background process state. package v1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type Process_Status_State int32 const ( Process_Status_UNSPECIFIED Process_Status_State = 0 Process_Status_NEW Process_Status_State = 1 // added to the processing queue Process_Status_ACTIVE Process_Status_State = 2 // worker was actively processing it as of last update Process_Status_ABORTED Process_Status_State = 3 // error state aborted execution early Process_Status_INCOMPLETE Process_Status_State = 4 // has errors and must be retried Process_Status_COMPLETED Process_Status_State = 5 // processing completed without significant errors ) // Enum value maps for Process_Status_State. var ( Process_Status_State_name = map[int32]string{ 0: "UNSPECIFIED", 1: "NEW", 2: "ACTIVE", 3: "ABORTED", 4: "INCOMPLETE", 5: "COMPLETED", } Process_Status_State_value = map[string]int32{ "UNSPECIFIED": 0, "NEW": 1, "ACTIVE": 2, "ABORTED": 3, "INCOMPLETE": 4, "COMPLETED": 5, } ) func (x Process_Status_State) Enum() *Process_Status_State { p := new(Process_Status_State) *p = x return p } func (x Process_Status_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Process_Status_State) Descriptor() protoreflect.EnumDescriptor { return file_proto_process_v1_process_proto_enumTypes[0].Descriptor() } func (Process_Status_State) Type() protoreflect.EnumType { return &file_proto_process_v1_process_proto_enumTypes[0] } func (x Process_Status_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Process_Status_State.Descriptor instead. func (Process_Status_State) EnumDescriptor() ([]byte, []int) { return file_proto_process_v1_process_proto_rawDescGZIP(), []int{0, 2, 0} } // Background process state type Process struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Name of the process. ProcessName string `protobuf:"bytes,1,opt,name=process_name,json=processName,proto3" json:"process_name,omitempty"` // A GUID or other unique identifier for the last process instance that has // updated the process. This is a means of tracking state as multiple // background processes can attempt to grab and lock process state. It may // be used as a means to detect that locks have been lost. Instance string `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` // Frequency of how often a process is scheduled to start processing. ScheduleFrequency *durationpb.Duration `protobuf:"bytes,3,opt,name=schedule_frequency,json=scheduleFrequency,proto3" json:"schedule_frequency,omitempty"` // A set of active work items being processed. The key is the name of the work // item. ActiveWork map[string]*Process_Work `protobuf:"bytes,4,rep,name=active_work,json=activeWork,proto3" json:"active_work,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Work to be dropped during a future active period. Is a map of the work // item name to timestamp of request. Some workers may treat this as a no-op // while others may have critical cleanup to do before dropping the work. // The key is the name of the work item. CleanupWork map[string]*timestamppb.Timestamp `protobuf:"bytes,5,rep,name=cleanup_work,json=cleanupWork,proto3" json:"cleanup_work,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Work that are no longer active (i.e. dropped) as a form of tracking // previous state. Is a map of work item name to timestamp of when the work // item was dropped. The key is the name of the work item. DroppedWork map[string]*timestamppb.Timestamp `protobuf:"bytes,6,rep,name=dropped_work,json=droppedWork,proto3" json:"dropped_work,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Input parameters for the worker to use across work items. Settings *Process_Params `protobuf:"bytes,7,opt,name=settings,proto3" json:"settings,omitempty"` // Time of most recent change to the ProcessStatus.Params settings. SettingsTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=settings_time,json=settingsTime,proto3" json:"settings_time,omitempty"` // Status over all work items for the most recent period or active period. ProcessStatus *Process_Status `protobuf:"bytes,9,opt,name=process_status,json=processStatus,proto3" json:"process_status,omitempty"` // Aggregate stats over all time periods for all work items since last reset. AggregateStats map[string]float64 `protobuf:"bytes,10,rep,name=aggregate_stats,json=aggregateStats,proto3" json:"aggregate_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` } func (x *Process) Reset() { *x = Process{} if protoimpl.UnsafeEnabled { mi := &file_proto_process_v1_process_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Process) String() string { return protoimpl.X.MessageStringOf(x) } func (*Process) ProtoMessage() {} func (x *Process) ProtoReflect() protoreflect.Message { mi := &file_proto_process_v1_process_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Process.ProtoReflect.Descriptor instead. func (*Process) Descriptor() ([]byte, []int) { return file_proto_process_v1_process_proto_rawDescGZIP(), []int{0} } func (x *Process) GetProcessName() string { if x != nil { return x.ProcessName } return "" } func (x *Process) GetInstance() string { if x != nil { return x.Instance } return "" } func (x *Process) GetScheduleFrequency() *durationpb.Duration { if x != nil { return x.ScheduleFrequency } return nil } func (x *Process) GetActiveWork() map[string]*Process_Work { if x != nil { return x.ActiveWork } return nil } func (x *Process) GetCleanupWork() map[string]*timestamppb.Timestamp { if x != nil { return x.CleanupWork } return nil } func (x *Process) GetDroppedWork() map[string]*timestamppb.Timestamp { if x != nil { return x.DroppedWork } return nil } func (x *Process) GetSettings() *Process_Params { if x != nil { return x.Settings } return nil } func (x *Process) GetSettingsTime() *timestamppb.Timestamp { if x != nil { return x.SettingsTime } return nil } func (x *Process) GetProcessStatus() *Process_Status { if x != nil { return x.ProcessStatus } return nil } func (x *Process) GetAggregateStats() map[string]float64 { if x != nil { return x.AggregateStats } return nil } // WorkResponse returns the state of one work item related to. For use with // endpoint responses such as LROs. type WorkResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Identifier for the work item. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The completion state of the work item as one of the following: // // "unspecified": Status.State.UNSPECIFIED // "queued": Status.State.NEW // "active": Status.State.ACTIVE // "aborted": Status.State.ABORTED // "incomplete": Status.State.INCOMPLETE // "completed": Status.State.COMPLETED // "dropped": On the DroppedWork list // "cleanup": On the CleanupWork list // "purged": Status was removed from the system (or never existed) State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` // The work processing/queuing details. Only available when the work item // is on the ActiveWork list. Details *Process_Work `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"` // The URI of where to fetch the more information about the work item. Uri string `protobuf:"bytes,4,opt,name=uri,proto3" json:"uri,omitempty"` } func (x *WorkResponse) Reset() { *x = WorkResponse{} if protoimpl.UnsafeEnabled { mi := &file_proto_process_v1_process_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkResponse) ProtoMessage() {} func (x *WorkResponse) ProtoReflect() protoreflect.Message { mi := &file_proto_process_v1_process_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkResponse.ProtoReflect.Descriptor instead. func (*WorkResponse) Descriptor() ([]byte, []int) { return file_proto_process_v1_process_proto_rawDescGZIP(), []int{1} } func (x *WorkResponse) GetId() string { if x != nil { return x.Id } return "" } func (x *WorkResponse) GetState() string { if x != nil { return x.State } return "" } func (x *WorkResponse) GetDetails() *Process_Work { if x != nil { return x.Details } return nil } func (x *WorkResponse) GetUri() string { if x != nil { return x.Uri } return "" } // Error message that is kept in context with the background process // for debugging. type Process_Error struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Timestamp of the error. Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` // Error message. Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` } func (x *Process_Error) Reset() { *x = Process_Error{} if protoimpl.UnsafeEnabled { mi := &file_proto_process_v1_process_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Process_Error) String() string { return protoimpl.X.MessageStringOf(x) } func (*Process_Error) ProtoMessage() {} func (x *Process_Error) ProtoReflect() protoreflect.Message { mi := &file_proto_process_v1_process_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Process_Error.ProtoReflect.Descriptor instead. func (*Process_Error) Descriptor() ([]byte, []int) { return file_proto_process_v1_process_proto_rawDescGZIP(), []int{0, 0} } func (x *Process_Error) GetTime() *timestamppb.Timestamp { if x != nil { return x.Time } return nil } func (x *Process_Error) GetText() string { if x != nil { return x.Text } return "" } // Input parameters configured for the background process that control // its behavior. type Process_Params struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Process-specific map of integer parameter name to parameter value. IntParams map[string]int64 `protobuf:"bytes,1,rep,name=int_params,json=intParams,proto3" json:"int_params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // Process-specific map of string parameter name to parameter value. StringParams map[string]string `protobuf:"bytes,2,rep,name=string_params,json=stringParams,proto3" json:"string_params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Process_Params) Reset() { *x = Process_Params{} if protoimpl.UnsafeEnabled { mi := &file_proto_process_v1_process_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Process_Params) String() string { return protoimpl.X.MessageStringOf(x) } func (*Process_Params) ProtoMessage() {} func (x *Process_Params) ProtoReflect() protoreflect.Message { mi := &file_proto_process_v1_process_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Process_Params.ProtoReflect.Descriptor instead. func (*Process_Params) Descriptor() ([]byte, []int) { return file_proto_process_v1_process_proto_rawDescGZIP(), []int{0, 1} } func (x *Process_Params) GetIntParams() map[string]int64 { if x != nil { return x.IntParams } return nil } func (x *Process_Params) GetStringParams() map[string]string { if x != nil { return x.StringParams } return nil } // Execution status for a particular run or snapshot of the process. type Process_Status struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Time period start. StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // Time of last progress status update. This will be equal to the // finish_time if the processing has completed. ProgressTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=progress_time,json=progressTime,proto3" json:"progress_time,omitempty"` // Time period end. FinishTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"` // Time of most recent error. LastErrorTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_error_time,json=lastErrorTime,proto3" json:"last_error_time,omitempty"` // Statistics collected of statistic label to statistic value. Stats map[string]float64 `protobuf:"bytes,5,rep,name=stats,proto3" json:"stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` // Recent errors, which may have less entries than total errors to reduce // space and noise. Errors []*Process_Error `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors,omitempty"` // Total number of errors before the process completed or aborted. TotalErrors int64 `protobuf:"varint,7,opt,name=total_errors,json=totalErrors,proto3" json:"total_errors,omitempty"` State Process_Status_State `protobuf:"varint,8,opt,name=state,proto3,enum=process.Process_Status_State" json:"state,omitempty"` } func (x *Process_Status) Reset() { *x = Process_Status{} if protoimpl.UnsafeEnabled { mi := &file_proto_process_v1_process_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Process_Status) String() string { return protoimpl.X.MessageStringOf(x) } func (*Process_Status) ProtoMessage() {} func (x *Process_Status) ProtoReflect() protoreflect.Message { mi := &file_proto_process_v1_process_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Process_Status.ProtoReflect.Descriptor instead. func (*Process_Status) Descriptor() ([]byte, []int) { return file_proto_process_v1_process_proto_rawDescGZIP(), []int{0, 2} } func (x *Process_Status) GetStartTime() *timestamppb.Timestamp { if x != nil { return x.StartTime } return nil } func (x *Process_Status) GetProgressTime() *timestamppb.Timestamp { if x != nil { return x.ProgressTime } return nil } func (x *Process_Status) GetFinishTime() *timestamppb.Timestamp { if x != nil { return x.FinishTime } return nil } func (x *Process_Status) GetLastErrorTime() *timestamppb.Timestamp { if x != nil { return x.LastErrorTime } return nil } func (x *Process_Status) GetStats() map[string]float64 { if x != nil { return x.Stats } return nil } func (x *Process_Status) GetErrors() []*Process_Error { if x != nil { return x.Errors } return nil } func (x *Process_Status) GetTotalErrors() int64 { if x != nil { return x.TotalErrors } return 0 } func (x *Process_Status) GetState() Process_Status_State { if x != nil { return x.State } return Process_Status_UNSPECIFIED } // Processes may act on a set of work items, and may have different input // parameters per item. What work items represent may be different between // different types of workers. A worker gets called for each item on a work // list (stored as maps, but can be iterated over as a list). // A named work item can only appear on one of three maps: // 1. active_work // 2. cleanup_work // 3. dropped_work type Process_Work struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Time when the work item's settings was last modified. Modified *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=modified,proto3" json:"modified,omitempty"` // Input parameters for the work item. These will vary depending on the // needs of process workers that may need input parameters to complete their // work. // Example: if there were a rename process that occationally updates the // names of objects in the storage layer, then it may have params of: // // { // "stringParams": { // "find": "old_name", // "replace": "new_name" // } // "intParams": { // "maxReplacements": 1 // } // } // // Note: this structure allows input parameters to vary between work items. Params *Process_Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"` // Work status. Changes here do not cause "modified" settings timestamp // to change. Status *Process_Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` } func (x *Process_Work) Reset() { *x = Process_Work{} if protoimpl.UnsafeEnabled { mi := &file_proto_process_v1_process_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Process_Work) String() string { return protoimpl.X.MessageStringOf(x) } func (*Process_Work) ProtoMessage() {} func (x *Process_Work) ProtoReflect() protoreflect.Message { mi := &file_proto_process_v1_process_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Process_Work.ProtoReflect.Descriptor instead. func (*Process_Work) Descriptor() ([]byte, []int) { return file_proto_process_v1_process_proto_rawDescGZIP(), []int{0, 3} } func (x *Process_Work) GetModified() *timestamppb.Timestamp { if x != nil { return x.Modified } return nil } func (x *Process_Work) GetParams() *Process_Params { if x != nil { return x.Params } return nil } func (x *Process_Work) GetStatus() *Process_Status { if x != nil { return x.Status } return nil } var File_proto_process_v1_process_proto protoreflect.FileDescriptor var file_proto_process_v1_process_proto_rawDesc = []byte{ 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x10, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x44, 0x0a, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x44, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x33, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x4b, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x9e, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 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, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xdc, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 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, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 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, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 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, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x59, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x1a, 0xa0, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x36, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 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, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x54, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x10, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 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, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x42, 0x56, 0x5a, 0x54, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x61, 0x72, 0x65, 0x2d, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_proto_process_v1_process_proto_rawDescOnce sync.Once file_proto_process_v1_process_proto_rawDescData = file_proto_process_v1_process_proto_rawDesc ) func file_proto_process_v1_process_proto_rawDescGZIP() []byte { file_proto_process_v1_process_proto_rawDescOnce.Do(func() { file_proto_process_v1_process_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_process_v1_process_proto_rawDescData) }) return file_proto_process_v1_process_proto_rawDescData } var file_proto_process_v1_process_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_proto_process_v1_process_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_proto_process_v1_process_proto_goTypes = []interface{}{ (Process_Status_State)(0), // 0: process.Process.Status.State (*Process)(nil), // 1: process.Process (*WorkResponse)(nil), // 2: process.WorkResponse (*Process_Error)(nil), // 3: process.Process.Error (*Process_Params)(nil), // 4: process.Process.Params (*Process_Status)(nil), // 5: process.Process.Status (*Process_Work)(nil), // 6: process.Process.Work nil, // 7: process.Process.ActiveWorkEntry nil, // 8: process.Process.CleanupWorkEntry nil, // 9: process.Process.DroppedWorkEntry nil, // 10: process.Process.AggregateStatsEntry nil, // 11: process.Process.Params.IntParamsEntry nil, // 12: process.Process.Params.StringParamsEntry nil, // 13: process.Process.Status.StatsEntry (*durationpb.Duration)(nil), // 14: google.protobuf.Duration (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp } var file_proto_process_v1_process_proto_depIdxs = []int32{ 14, // 0: process.Process.schedule_frequency:type_name -> google.protobuf.Duration 7, // 1: process.Process.active_work:type_name -> process.Process.ActiveWorkEntry 8, // 2: process.Process.cleanup_work:type_name -> process.Process.CleanupWorkEntry 9, // 3: process.Process.dropped_work:type_name -> process.Process.DroppedWorkEntry 4, // 4: process.Process.settings:type_name -> process.Process.Params 15, // 5: process.Process.settings_time:type_name -> google.protobuf.Timestamp 5, // 6: process.Process.process_status:type_name -> process.Process.Status 10, // 7: process.Process.aggregate_stats:type_name -> process.Process.AggregateStatsEntry 6, // 8: process.WorkResponse.details:type_name -> process.Process.Work 15, // 9: process.Process.Error.time:type_name -> google.protobuf.Timestamp 11, // 10: process.Process.Params.int_params:type_name -> process.Process.Params.IntParamsEntry 12, // 11: process.Process.Params.string_params:type_name -> process.Process.Params.StringParamsEntry 15, // 12: process.Process.Status.start_time:type_name -> google.protobuf.Timestamp 15, // 13: process.Process.Status.progress_time:type_name -> google.protobuf.Timestamp 15, // 14: process.Process.Status.finish_time:type_name -> google.protobuf.Timestamp 15, // 15: process.Process.Status.last_error_time:type_name -> google.protobuf.Timestamp 13, // 16: process.Process.Status.stats:type_name -> process.Process.Status.StatsEntry 3, // 17: process.Process.Status.errors:type_name -> process.Process.Error 0, // 18: process.Process.Status.state:type_name -> process.Process.Status.State 15, // 19: process.Process.Work.modified:type_name -> google.protobuf.Timestamp 4, // 20: process.Process.Work.params:type_name -> process.Process.Params 5, // 21: process.Process.Work.status:type_name -> process.Process.Status 6, // 22: process.Process.ActiveWorkEntry.value:type_name -> process.Process.Work 15, // 23: process.Process.CleanupWorkEntry.value:type_name -> google.protobuf.Timestamp 15, // 24: process.Process.DroppedWorkEntry.value:type_name -> google.protobuf.Timestamp 25, // [25:25] is the sub-list for method output_type 25, // [25:25] is the sub-list for method input_type 25, // [25:25] is the sub-list for extension type_name 25, // [25:25] is the sub-list for extension extendee 0, // [0:25] is the sub-list for field type_name } func init() { file_proto_process_v1_process_proto_init() } func file_proto_process_v1_process_proto_init() { if File_proto_process_v1_process_proto != nil { return } if !protoimpl.UnsafeEnabled { file_proto_process_v1_process_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Process); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_proto_process_v1_process_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_proto_process_v1_process_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Process_Error); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_proto_process_v1_process_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Process_Params); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_proto_process_v1_process_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Process_Status); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_proto_process_v1_process_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Process_Work); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_proto_process_v1_process_proto_rawDesc, NumEnums: 1, NumMessages: 13, NumExtensions: 0, NumServices: 0, }, GoTypes: file_proto_process_v1_process_proto_goTypes, DependencyIndexes: file_proto_process_v1_process_proto_depIdxs, EnumInfos: file_proto_process_v1_process_proto_enumTypes, MessageInfos: file_proto_process_v1_process_proto_msgTypes, }.Build() File_proto_process_v1_process_proto = out.File file_proto_process_v1_process_proto_rawDesc = nil file_proto_process_v1_process_proto_goTypes = nil file_proto_process_v1_process_proto_depIdxs = nil }