From 0091d7324c6319a357ce92487b2ffb6e6250736b Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 23:30:01 +0000 Subject: [PATCH 1/6] Add GetExecutionStats endpoint to count executions from the last 7 days with status breakdowns Co-Authored-By: Chris Li --- aggregator/rpc_server.go | 15 +++++++++ core/taskengine/engine.go | 64 +++++++++++++++++++++++++++++++++++++++ protobuf/avs.proto | 18 +++++++++++ 3 files changed, 97 insertions(+) diff --git a/aggregator/rpc_server.go b/aggregator/rpc_server.go index 948c97de..3b8e9d4c 100644 --- a/aggregator/rpc_server.go +++ b/aggregator/rpc_server.go @@ -349,6 +349,21 @@ func (r *RpcServer) GetExecutionCount(ctx context.Context, req *avsproto.GetExec return r.engine.GetExecutionCount(user, req) } +func (r *RpcServer) GetExecutionStats(ctx context.Context, req *avsproto.GetExecutionStatsReq) (*avsproto.GetExecutionStatsResp, error) { + user, err := r.verifyAuth(ctx) + if err != nil { + return nil, status.Errorf(codes.Unauthenticated, "%s: %s", auth.AuthenticationError, err.Error()) + } + + r.config.Logger.Info("process execution stats", + "user", user.Address.String(), + "workflow_ids", req.WorkflowIds, + "days", req.Days, + ) + + return r.engine.GetExecutionStats(user, req) +} + // Operator action func (r *RpcServer) SyncMessages(payload *avsproto.SyncMessagesReq, srv avsproto.Node_SyncMessagesServer) error { err := r.engine.StreamCheckToOperator(payload, srv) diff --git a/core/taskengine/engine.go b/core/taskengine/engine.go index 5f70debb..8f088750 100644 --- a/core/taskengine/engine.go +++ b/core/taskengine/engine.go @@ -1024,6 +1024,70 @@ func (n *Engine) CanStreamCheck(address string) bool { } // GetWorkflowCount returns the number of workflows for the given addresses of smart wallets, or if no addresses are provided, it returns the total number of workflows belongs to the requested user +func (n *Engine) GetExecutionStats(user *model.User, payload *avsproto.GetExecutionStatsReq) (*avsproto.GetExecutionStatsResp, error) { + workflowIds := payload.WorkflowIds + days := payload.Days + if days <= 0 { + days = 7 // Default to 7 days if not specified + } + + cutoffTime := time.Now().AddDate(0, 0, -int(days)).UnixMilli() + + // Initialize counters + total := int64(0) + succeeded := int64(0) + failed := int64(0) + + if len(workflowIds) == 0 { + workflowIds = []string{} + taskIds, err := n.db.GetKeyHasPrefix(UserTaskStoragePrefix(user.Address)) + if err != nil { + return nil, grpcstatus.Errorf(codes.Internal, "Internal error retrieving tasks") + } + for _, id := range taskIds { + taskId := TaskIdFromTaskStatusStorageKey(id) + workflowIds = append(workflowIds, string(taskId)) + } + } + + for _, id := range workflowIds { + if len(id) != 26 { + continue + } + + items, err := n.db.GetByPrefix(TaskExecutionPrefix(id)) + if err != nil { + n.logger.Error("error getting executions", "workflow", id, "error", err) + continue + } + + for _, item := range items { + execution := &avsproto.Execution{} + if err := protojson.Unmarshal(item.Value, execution); err != nil { + n.logger.Error("error unmarshalling execution", "error", err) + continue + } + + if execution.StartAt < cutoffTime { + continue + } + + total++ + if execution.Success { + succeeded++ + } else { + failed++ + } + } + } + + return &avsproto.GetExecutionStatsResp{ + Total: total, + Succeeded: succeeded, + Failed: failed, + }, nil +} + func (n *Engine) GetWorkflowCount(user *model.User, payload *avsproto.GetWorkflowCountReq) (*avsproto.GetWorkflowCountResp, error) { smartWalletAddresses := payload.Addresses diff --git a/protobuf/avs.proto b/protobuf/avs.proto index 430f6ca7..20e3b021 100644 --- a/protobuf/avs.proto +++ b/protobuf/avs.proto @@ -709,6 +709,11 @@ service Aggregator { // Workflow IDs not found in the system are ignored. // Workflow IDs not linked to the EOA in the auth key are also ignored. rpc GetExecutionCount(GetExecutionCountReq) returns (GetExecutionCountResp); + + // GetExecutionStats returns execution statistics for a specified time period + // It counts total executions, successful executions, and failed executions + // If no workflow IDs are provided, it counts for all workflows of the authenticated user + rpc GetExecutionStats(GetExecutionStatsReq) returns (GetExecutionStatsResp); } // Request message for GetWorkflowCount @@ -732,6 +737,19 @@ message GetExecutionCountResp { int64 total = 1; // The total count of executions } +// Request message for GetExecutionStats +message GetExecutionStatsReq { + repeated string workflow_ids = 1; // Optional array of workflow IDs + int64 days = 2; // Number of days to look back (default: 7) +} + +// Response message for GetExecutionStats +message GetExecutionStatsResp { + int64 total = 1; // Total number of executions + int64 succeeded = 2; // Number of successful executions + int64 failed = 3; // Number of failed executions +} + message Evm { message Log { // Consensus fields From a5d4ab67d0ab284ac7539ad762dea6123e29cc37 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 23:35:55 +0000 Subject: [PATCH 2/6] Add average execution time to GetExecutionStats endpoint Co-Authored-By: Chris Li --- core/taskengine/engine.go | 18 +++++++++++++++--- protobuf/avs.proto | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/core/taskengine/engine.go b/core/taskengine/engine.go index 8f088750..072b8aab 100644 --- a/core/taskengine/engine.go +++ b/core/taskengine/engine.go @@ -1037,6 +1037,7 @@ func (n *Engine) GetExecutionStats(user *model.User, payload *avsproto.GetExecut total := int64(0) succeeded := int64(0) failed := int64(0) + var totalExecutionTime int64 = 0 if len(workflowIds) == 0 { workflowIds = []string{} @@ -1078,13 +1079,24 @@ func (n *Engine) GetExecutionStats(user *model.User, payload *avsproto.GetExecut } else { failed++ } + + if execution.EndAt > execution.StartAt { + executionTime := execution.EndAt - execution.StartAt + totalExecutionTime += executionTime + } } } + var avgExecutionTime float64 = 0 + if total > 0 { + avgExecutionTime = float64(totalExecutionTime) / float64(total) + } + return &avsproto.GetExecutionStatsResp{ - Total: total, - Succeeded: succeeded, - Failed: failed, + Total: total, + Succeeded: succeeded, + Failed: failed, + AvgExecutionTime: avgExecutionTime, }, nil } diff --git a/protobuf/avs.proto b/protobuf/avs.proto index 20e3b021..96d464ea 100644 --- a/protobuf/avs.proto +++ b/protobuf/avs.proto @@ -748,6 +748,7 @@ message GetExecutionStatsResp { int64 total = 1; // Total number of executions int64 succeeded = 2; // Number of successful executions int64 failed = 3; // Number of failed executions + double avg_execution_time = 4; // Average execution time in milliseconds } message Evm { From 01c915ef2acfebcf158ed54d68f9a50f6f3c11e2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 11 May 2025 23:36:13 +0000 Subject: [PATCH 3/6] style: Automated gofmt Formatted Go code using gofmt. --- core/taskengine/engine.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/taskengine/engine.go b/core/taskengine/engine.go index 072b8aab..be3eef6f 100644 --- a/core/taskengine/engine.go +++ b/core/taskengine/engine.go @@ -1079,7 +1079,7 @@ func (n *Engine) GetExecutionStats(user *model.User, payload *avsproto.GetExecut } else { failed++ } - + if execution.EndAt > execution.StartAt { executionTime := execution.EndAt - execution.StartAt totalExecutionTime += executionTime From 8318b79c1506b61367f24fc7130e40febc3dacec Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 23:48:32 +0000 Subject: [PATCH 4/6] chore: Regenerate protobuf code for GetExecutionStats endpoint Co-Authored-By: Chris Li --- protobuf/avs.pb.go | 2606 +++++++++++++++++++++------------------ protobuf/avs_grpc.pb.go | 100 +- 2 files changed, 1462 insertions(+), 1244 deletions(-) diff --git a/protobuf/avs.pb.go b/protobuf/avs.pb.go index 2e1ffc6f..aae33a09 100644 --- a/protobuf/avs.pb.go +++ b/protobuf/avs.pb.go @@ -1,18 +1,18 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v5.29.3 -// source: protobuf/avs.proto +// protoc v3.12.4 +// source: avs.proto package avsproto import ( + any1 "github.com/golang/protobuf/ptypes/any" + _struct "github.com/golang/protobuf/ptypes/struct" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + wrappers "github.com/golang/protobuf/ptypes/wrappers" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - anypb "google.golang.org/protobuf/types/known/anypb" - structpb "google.golang.org/protobuf/types/known/structpb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" ) @@ -84,11 +84,11 @@ func (x Error) String() string { } func (Error) Descriptor() protoreflect.EnumDescriptor { - return file_protobuf_avs_proto_enumTypes[0].Descriptor() + return file_avs_proto_enumTypes[0].Descriptor() } func (Error) Type() protoreflect.EnumType { - return &file_protobuf_avs_proto_enumTypes[0] + return &file_avs_proto_enumTypes[0] } func (x Error) Number() protoreflect.EnumNumber { @@ -97,7 +97,7 @@ func (x Error) Number() protoreflect.EnumNumber { // Deprecated: Use Error.Descriptor instead. func (Error) EnumDescriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{0} + return file_avs_proto_rawDescGZIP(), []int{0} } // TaskStatus represents status of the task. The transition is as follow @@ -141,11 +141,11 @@ func (x TaskStatus) String() string { } func (TaskStatus) Descriptor() protoreflect.EnumDescriptor { - return file_protobuf_avs_proto_enumTypes[1].Descriptor() + return file_avs_proto_enumTypes[1].Descriptor() } func (TaskStatus) Type() protoreflect.EnumType { - return &file_protobuf_avs_proto_enumTypes[1] + return &file_avs_proto_enumTypes[1] } func (x TaskStatus) Number() protoreflect.EnumNumber { @@ -154,7 +154,7 @@ func (x TaskStatus) Number() protoreflect.EnumNumber { // Deprecated: Use TaskStatus.Descriptor instead. func (TaskStatus) EnumDescriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{1} + return file_avs_proto_rawDescGZIP(), []int{1} } // Execution Status re-present a run of the task @@ -188,11 +188,11 @@ func (x ExecutionStatus) String() string { } func (ExecutionStatus) Descriptor() protoreflect.EnumDescriptor { - return file_protobuf_avs_proto_enumTypes[2].Descriptor() + return file_avs_proto_enumTypes[2].Descriptor() } func (ExecutionStatus) Type() protoreflect.EnumType { - return &file_protobuf_avs_proto_enumTypes[2] + return &file_avs_proto_enumTypes[2] } func (x ExecutionStatus) Number() protoreflect.EnumNumber { @@ -201,7 +201,7 @@ func (x ExecutionStatus) Number() protoreflect.EnumNumber { // Deprecated: Use ExecutionStatus.Descriptor instead. func (ExecutionStatus) EnumDescriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{2} + return file_avs_proto_rawDescGZIP(), []int{2} } type CustomCodeLang int32 @@ -231,11 +231,11 @@ func (x CustomCodeLang) String() string { } func (CustomCodeLang) Descriptor() protoreflect.EnumDescriptor { - return file_protobuf_avs_proto_enumTypes[3].Descriptor() + return file_avs_proto_enumTypes[3].Descriptor() } func (CustomCodeLang) Type() protoreflect.EnumType { - return &file_protobuf_avs_proto_enumTypes[3] + return &file_avs_proto_enumTypes[3] } func (x CustomCodeLang) Number() protoreflect.EnumNumber { @@ -244,7 +244,7 @@ func (x CustomCodeLang) Number() protoreflect.EnumNumber { // Deprecated: Use CustomCodeLang.Descriptor instead. func (CustomCodeLang) EnumDescriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{3} + return file_avs_proto_rawDescGZIP(), []int{3} } // This value isn't needed because when we query an execution or trigger a task, we know the trigger type @@ -294,11 +294,11 @@ func (x TriggerReason_TriggerType) String() string { } func (TriggerReason_TriggerType) Descriptor() protoreflect.EnumDescriptor { - return file_protobuf_avs_proto_enumTypes[4].Descriptor() + return file_avs_proto_enumTypes[4].Descriptor() } func (TriggerReason_TriggerType) Type() protoreflect.EnumType { - return &file_protobuf_avs_proto_enumTypes[4] + return &file_avs_proto_enumTypes[4] } func (x TriggerReason_TriggerType) Number() protoreflect.EnumNumber { @@ -307,7 +307,7 @@ func (x TriggerReason_TriggerType) Number() protoreflect.EnumNumber { // Deprecated: Use TriggerReason_TriggerType.Descriptor instead. func (TriggerReason_TriggerType) EnumDescriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{35, 0} + return file_avs_proto_rawDescGZIP(), []int{35, 0} } type IdReq struct { @@ -321,7 +321,7 @@ type IdReq struct { func (x *IdReq) Reset() { *x = IdReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[0] + mi := &file_avs_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -334,7 +334,7 @@ func (x *IdReq) String() string { func (*IdReq) ProtoMessage() {} func (x *IdReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[0] + mi := &file_avs_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -347,7 +347,7 @@ func (x *IdReq) ProtoReflect() protoreflect.Message { // Deprecated: Use IdReq.ProtoReflect.Descriptor instead. func (*IdReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{0} + return file_avs_proto_rawDescGZIP(), []int{0} } func (x *IdReq) GetId() string { @@ -368,7 +368,7 @@ type FixedTimeCondition struct { func (x *FixedTimeCondition) Reset() { *x = FixedTimeCondition{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[1] + mi := &file_avs_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -381,7 +381,7 @@ func (x *FixedTimeCondition) String() string { func (*FixedTimeCondition) ProtoMessage() {} func (x *FixedTimeCondition) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[1] + mi := &file_avs_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -394,7 +394,7 @@ func (x *FixedTimeCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use FixedTimeCondition.ProtoReflect.Descriptor instead. func (*FixedTimeCondition) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{1} + return file_avs_proto_rawDescGZIP(), []int{1} } func (x *FixedTimeCondition) GetEpochs() []int64 { @@ -416,7 +416,7 @@ type CronCondition struct { func (x *CronCondition) Reset() { *x = CronCondition{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[2] + mi := &file_avs_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -429,7 +429,7 @@ func (x *CronCondition) String() string { func (*CronCondition) ProtoMessage() {} func (x *CronCondition) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[2] + mi := &file_avs_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -442,7 +442,7 @@ func (x *CronCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use CronCondition.ProtoReflect.Descriptor instead. func (*CronCondition) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{2} + return file_avs_proto_rawDescGZIP(), []int{2} } func (x *CronCondition) GetSchedule() []string { @@ -463,7 +463,7 @@ type BlockCondition struct { func (x *BlockCondition) Reset() { *x = BlockCondition{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[3] + mi := &file_avs_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -476,7 +476,7 @@ func (x *BlockCondition) String() string { func (*BlockCondition) ProtoMessage() {} func (x *BlockCondition) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[3] + mi := &file_avs_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -489,7 +489,7 @@ func (x *BlockCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockCondition.ProtoReflect.Descriptor instead. func (*BlockCondition) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{3} + return file_avs_proto_rawDescGZIP(), []int{3} } func (x *BlockCondition) GetInterval() int64 { @@ -513,7 +513,7 @@ type EventCondition struct { func (x *EventCondition) Reset() { *x = EventCondition{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[4] + mi := &file_avs_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -526,7 +526,7 @@ func (x *EventCondition) String() string { func (*EventCondition) ProtoMessage() {} func (x *EventCondition) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[4] + mi := &file_avs_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -539,7 +539,7 @@ func (x *EventCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use EventCondition.ProtoReflect.Descriptor instead. func (*EventCondition) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{4} + return file_avs_proto_rawDescGZIP(), []int{4} } func (x *EventCondition) GetMatcher() []*EventCondition_Matcher { @@ -563,7 +563,6 @@ type TaskTrigger struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Types that are assignable to TriggerType: - // // *TaskTrigger_Manual // *TaskTrigger_FixedTime // *TaskTrigger_Cron @@ -576,7 +575,7 @@ type TaskTrigger struct { func (x *TaskTrigger) Reset() { *x = TaskTrigger{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[5] + mi := &file_avs_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -589,7 +588,7 @@ func (x *TaskTrigger) String() string { func (*TaskTrigger) ProtoMessage() {} func (x *TaskTrigger) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[5] + mi := &file_avs_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -602,7 +601,7 @@ func (x *TaskTrigger) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskTrigger.ProtoReflect.Descriptor instead. func (*TaskTrigger) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{5} + return file_avs_proto_rawDescGZIP(), []int{5} } func (x *TaskTrigger) GetName() string { @@ -712,7 +711,7 @@ type ETHTransferNode struct { func (x *ETHTransferNode) Reset() { *x = ETHTransferNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[6] + mi := &file_avs_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -725,7 +724,7 @@ func (x *ETHTransferNode) String() string { func (*ETHTransferNode) ProtoMessage() {} func (x *ETHTransferNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[6] + mi := &file_avs_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -738,7 +737,7 @@ func (x *ETHTransferNode) ProtoReflect() protoreflect.Message { // Deprecated: Use ETHTransferNode.ProtoReflect.Descriptor instead. func (*ETHTransferNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{6} + return file_avs_proto_rawDescGZIP(), []int{6} } func (x *ETHTransferNode) GetDestination() string { @@ -771,7 +770,7 @@ type ContractWriteNode struct { func (x *ContractWriteNode) Reset() { *x = ContractWriteNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[7] + mi := &file_avs_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -784,7 +783,7 @@ func (x *ContractWriteNode) String() string { func (*ContractWriteNode) ProtoMessage() {} func (x *ContractWriteNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[7] + mi := &file_avs_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -797,7 +796,7 @@ func (x *ContractWriteNode) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractWriteNode.ProtoReflect.Descriptor instead. func (*ContractWriteNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{7} + return file_avs_proto_rawDescGZIP(), []int{7} } func (x *ContractWriteNode) GetContractAddress() string { @@ -837,7 +836,7 @@ type ContractReadNode struct { func (x *ContractReadNode) Reset() { *x = ContractReadNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[8] + mi := &file_avs_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -850,7 +849,7 @@ func (x *ContractReadNode) String() string { func (*ContractReadNode) ProtoMessage() {} func (x *ContractReadNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[8] + mi := &file_avs_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -863,7 +862,7 @@ func (x *ContractReadNode) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractReadNode.ProtoReflect.Descriptor instead. func (*ContractReadNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{8} + return file_avs_proto_rawDescGZIP(), []int{8} } func (x *ContractReadNode) GetContractAddress() string { @@ -900,7 +899,7 @@ type GraphQLQueryNode struct { func (x *GraphQLQueryNode) Reset() { *x = GraphQLQueryNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[9] + mi := &file_avs_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -913,7 +912,7 @@ func (x *GraphQLQueryNode) String() string { func (*GraphQLQueryNode) ProtoMessage() {} func (x *GraphQLQueryNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[9] + mi := &file_avs_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -926,7 +925,7 @@ func (x *GraphQLQueryNode) ProtoReflect() protoreflect.Message { // Deprecated: Use GraphQLQueryNode.ProtoReflect.Descriptor instead. func (*GraphQLQueryNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{9} + return file_avs_proto_rawDescGZIP(), []int{9} } func (x *GraphQLQueryNode) GetUrl() string { @@ -964,7 +963,7 @@ type RestAPINode struct { func (x *RestAPINode) Reset() { *x = RestAPINode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[10] + mi := &file_avs_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -977,7 +976,7 @@ func (x *RestAPINode) String() string { func (*RestAPINode) ProtoMessage() {} func (x *RestAPINode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[10] + mi := &file_avs_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -990,7 +989,7 @@ func (x *RestAPINode) ProtoReflect() protoreflect.Message { // Deprecated: Use RestAPINode.ProtoReflect.Descriptor instead. func (*RestAPINode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{10} + return file_avs_proto_rawDescGZIP(), []int{10} } func (x *RestAPINode) GetUrl() string { @@ -1033,7 +1032,7 @@ type CustomCodeNode struct { func (x *CustomCodeNode) Reset() { *x = CustomCodeNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[11] + mi := &file_avs_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1046,7 +1045,7 @@ func (x *CustomCodeNode) String() string { func (*CustomCodeNode) ProtoMessage() {} func (x *CustomCodeNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[11] + mi := &file_avs_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1059,7 +1058,7 @@ func (x *CustomCodeNode) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomCodeNode.ProtoReflect.Descriptor instead. func (*CustomCodeNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{11} + return file_avs_proto_rawDescGZIP(), []int{11} } func (x *CustomCodeNode) GetLang() CustomCodeLang { @@ -1089,7 +1088,7 @@ type Condition struct { func (x *Condition) Reset() { *x = Condition{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[12] + mi := &file_avs_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1102,7 +1101,7 @@ func (x *Condition) String() string { func (*Condition) ProtoMessage() {} func (x *Condition) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[12] + mi := &file_avs_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1115,7 +1114,7 @@ func (x *Condition) ProtoReflect() protoreflect.Message { // Deprecated: Use Condition.ProtoReflect.Descriptor instead. func (*Condition) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{12} + return file_avs_proto_rawDescGZIP(), []int{12} } func (x *Condition) GetId() string { @@ -1150,7 +1149,7 @@ type BranchNode struct { func (x *BranchNode) Reset() { *x = BranchNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[13] + mi := &file_avs_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1163,7 +1162,7 @@ func (x *BranchNode) String() string { func (*BranchNode) ProtoMessage() {} func (x *BranchNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[13] + mi := &file_avs_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1176,7 +1175,7 @@ func (x *BranchNode) ProtoReflect() protoreflect.Message { // Deprecated: Use BranchNode.ProtoReflect.Descriptor instead. func (*BranchNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{13} + return file_avs_proto_rawDescGZIP(), []int{13} } func (x *BranchNode) GetConditions() []*Condition { @@ -1201,7 +1200,7 @@ type FilterNode struct { func (x *FilterNode) Reset() { *x = FilterNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[14] + mi := &file_avs_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1214,7 +1213,7 @@ func (x *FilterNode) String() string { func (*FilterNode) ProtoMessage() {} func (x *FilterNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[14] + mi := &file_avs_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1227,7 +1226,7 @@ func (x *FilterNode) ProtoReflect() protoreflect.Message { // Deprecated: Use FilterNode.ProtoReflect.Descriptor instead. func (*FilterNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{14} + return file_avs_proto_rawDescGZIP(), []int{14} } func (x *FilterNode) GetExpression() string { @@ -1258,7 +1257,6 @@ type LoopNode struct { // inside the runner, it can access to the current value of the loop iteration through the iter_val/iter_key above // // Types that are assignable to Runner: - // // *LoopNode_EthTransfer // *LoopNode_ContractWrite // *LoopNode_ContractRead @@ -1271,7 +1269,7 @@ type LoopNode struct { func (x *LoopNode) Reset() { *x = LoopNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[15] + mi := &file_avs_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1284,7 +1282,7 @@ func (x *LoopNode) String() string { func (*LoopNode) ProtoMessage() {} func (x *LoopNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[15] + mi := &file_avs_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1297,7 +1295,7 @@ func (x *LoopNode) ProtoReflect() protoreflect.Message { // Deprecated: Use LoopNode.ProtoReflect.Descriptor instead. func (*LoopNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{15} + return file_avs_proto_rawDescGZIP(), []int{15} } func (x *LoopNode) GetInput() string { @@ -1430,7 +1428,7 @@ type TaskEdge struct { func (x *TaskEdge) Reset() { *x = TaskEdge{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[16] + mi := &file_avs_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1443,7 +1441,7 @@ func (x *TaskEdge) String() string { func (*TaskEdge) ProtoMessage() {} func (x *TaskEdge) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[16] + mi := &file_avs_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1456,7 +1454,7 @@ func (x *TaskEdge) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskEdge.ProtoReflect.Descriptor instead. func (*TaskEdge) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{16} + return file_avs_proto_rawDescGZIP(), []int{16} } func (x *TaskEdge) GetId() string { @@ -1490,7 +1488,6 @@ type TaskNode struct { // based on node_type one and only one of these field are set // // Types that are assignable to TaskType: - // // *TaskNode_EthTransfer // *TaskNode_ContractWrite // *TaskNode_ContractRead @@ -1506,7 +1503,7 @@ type TaskNode struct { func (x *TaskNode) Reset() { *x = TaskNode{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[17] + mi := &file_avs_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1519,7 +1516,7 @@ func (x *TaskNode) String() string { func (*TaskNode) ProtoMessage() {} func (x *TaskNode) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[17] + mi := &file_avs_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1532,7 +1529,7 @@ func (x *TaskNode) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskNode.ProtoReflect.Descriptor instead. func (*TaskNode) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{17} + return file_avs_proto_rawDescGZIP(), []int{17} } func (x *TaskNode) GetId() string { @@ -1689,8 +1686,10 @@ type Execution struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - StartAt int64 `protobuf:"varint,2,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // timestamp when execution started (in milliseconds) + StartAt int64 `protobuf:"varint,2,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` + // timestamp when execution ended (in milliseconds) EndAt int64 `protobuf:"varint,3,opt,name=end_at,json=endAt,proto3" json:"end_at,omitempty"` Success bool `protobuf:"varint,4,opt,name=success,proto3" json:"success,omitempty"` Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` @@ -1705,29 +1704,27 @@ type Execution struct { // For transfer event, we had a set of fields // Chris define them here https://avaprotocol.slack.com/archives/D0570FNE0SJ/p1733336982524899 // // The selected fields of the response to return to the client - // - // const FILTERED_FIELDS = [ - // "token_name", - // "token_symbol", - // "token_decimals", - // "transaction_hash", - // "address", - // "block_timestamp", - // "block_number", - // "from_address", - // "to_address", - // "value", - // "value_formatted", // Formatted value - // "transaction_index", - // "log_index", - // ]; + // const FILTERED_FIELDS = [ + // "token_name", + // "token_symbol", + // "token_decimals", + // "transaction_hash", + // "address", + // "block_timestamp", + // "block_number", + // "from_address", + // "to_address", + // "value", + // "value_formatted", // Formatted value + // "transaction_index", + // "log_index", + // ]; // // For non transfer event, we just have the raw data // For block event, we had the number at that trigger is meet. // For time trigger, it is the epoch // // Types that are assignable to OutputData: - // // *Execution_TransferLog // *Execution_EvmLog // *Execution_Block @@ -1738,7 +1735,7 @@ type Execution struct { func (x *Execution) Reset() { *x = Execution{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[18] + mi := &file_avs_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1751,7 +1748,7 @@ func (x *Execution) String() string { func (*Execution) ProtoMessage() {} func (x *Execution) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[18] + mi := &file_avs_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1764,7 +1761,7 @@ func (x *Execution) ProtoReflect() protoreflect.Message { // Deprecated: Use Execution.ProtoReflect.Descriptor instead. func (*Execution) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{18} + return file_avs_proto_rawDescGZIP(), []int{18} } func (x *Execution) GetId() string { @@ -1896,28 +1893,30 @@ type Task struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` SmartWalletAddress string `protobuf:"bytes,3,opt,name=smart_wallet_address,json=smartWalletAddress,proto3" json:"smart_wallet_address,omitempty"` - // task won't be check before this + // task won't be check before this (timestamp in milliseconds) StartAt int64 `protobuf:"varint,4,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` - // task won't be run/check after this + // task won't be run/check after this (timestamp in milliseconds) ExpiredAt int64 `protobuf:"varint,5,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"` // arbitrary data about this task. has a limit of 255 character - Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` - CompletedAt int64 `protobuf:"varint,7,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + // timestamp when task was completed (in milliseconds) + CompletedAt int64 `protobuf:"varint,7,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` // limit on how many time this task can run. Set to 0 will make it run unlimited until cancelling or reaching its expired time MaxExecution int64 `protobuf:"varint,8,opt,name=max_execution,json=maxExecution,proto3" json:"max_execution,omitempty"` // return how many time this task has run - TotalExecution int64 `protobuf:"varint,9,opt,name=total_execution,json=totalExecution,proto3" json:"total_execution,omitempty"` - LastRanAt int64 `protobuf:"varint,10,opt,name=last_ran_at,json=lastRanAt,proto3" json:"last_ran_at,omitempty"` - Status TaskStatus `protobuf:"varint,11,opt,name=status,proto3,enum=aggregator.TaskStatus" json:"status,omitempty"` - Trigger *TaskTrigger `protobuf:"bytes,12,opt,name=trigger,proto3" json:"trigger,omitempty"` - Nodes []*TaskNode `protobuf:"bytes,13,rep,name=nodes,proto3" json:"nodes,omitempty"` - Edges []*TaskEdge `protobuf:"bytes,14,rep,name=edges,proto3" json:"edges,omitempty"` + TotalExecution int64 `protobuf:"varint,9,opt,name=total_execution,json=totalExecution,proto3" json:"total_execution,omitempty"` + // timestamp when task was last executed (in milliseconds) + LastRanAt int64 `protobuf:"varint,10,opt,name=last_ran_at,json=lastRanAt,proto3" json:"last_ran_at,omitempty"` + Status TaskStatus `protobuf:"varint,11,opt,name=status,proto3,enum=aggregator.TaskStatus" json:"status,omitempty"` + Trigger *TaskTrigger `protobuf:"bytes,12,opt,name=trigger,proto3" json:"trigger,omitempty"` + Nodes []*TaskNode `protobuf:"bytes,13,rep,name=nodes,proto3" json:"nodes,omitempty"` + Edges []*TaskEdge `protobuf:"bytes,14,rep,name=edges,proto3" json:"edges,omitempty"` } func (x *Task) Reset() { *x = Task{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[19] + mi := &file_avs_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1930,7 +1929,7 @@ func (x *Task) String() string { func (*Task) ProtoMessage() {} func (x *Task) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[19] + mi := &file_avs_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1943,7 +1942,7 @@ func (x *Task) ProtoReflect() protoreflect.Message { // Deprecated: Use Task.ProtoReflect.Descriptor instead. func (*Task) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{19} + return file_avs_proto_rawDescGZIP(), []int{19} } func (x *Task) GetId() string { @@ -2064,7 +2063,7 @@ type CreateTaskReq struct { func (x *CreateTaskReq) Reset() { *x = CreateTaskReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[20] + mi := &file_avs_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2077,7 +2076,7 @@ func (x *CreateTaskReq) String() string { func (*CreateTaskReq) ProtoMessage() {} func (x *CreateTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[20] + mi := &file_avs_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2090,7 +2089,7 @@ func (x *CreateTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTaskReq.ProtoReflect.Descriptor instead. func (*CreateTaskReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{20} + return file_avs_proto_rawDescGZIP(), []int{20} } func (x *CreateTaskReq) GetTrigger() *TaskTrigger { @@ -2160,7 +2159,7 @@ type CreateTaskResp struct { func (x *CreateTaskResp) Reset() { *x = CreateTaskResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[21] + mi := &file_avs_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2173,7 +2172,7 @@ func (x *CreateTaskResp) String() string { func (*CreateTaskResp) ProtoMessage() {} func (x *CreateTaskResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[21] + mi := &file_avs_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2186,7 +2185,7 @@ func (x *CreateTaskResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTaskResp.ProtoReflect.Descriptor instead. func (*CreateTaskResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{21} + return file_avs_proto_rawDescGZIP(), []int{21} } func (x *CreateTaskResp) GetId() string { @@ -2207,7 +2206,7 @@ type NonceRequest struct { func (x *NonceRequest) Reset() { *x = NonceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[22] + mi := &file_avs_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2220,7 +2219,7 @@ func (x *NonceRequest) String() string { func (*NonceRequest) ProtoMessage() {} func (x *NonceRequest) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[22] + mi := &file_avs_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2233,7 +2232,7 @@ func (x *NonceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use NonceRequest.ProtoReflect.Descriptor instead. func (*NonceRequest) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{22} + return file_avs_proto_rawDescGZIP(), []int{22} } func (x *NonceRequest) GetOwner() string { @@ -2254,7 +2253,7 @@ type NonceResp struct { func (x *NonceResp) Reset() { *x = NonceResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[23] + mi := &file_avs_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2267,7 +2266,7 @@ func (x *NonceResp) String() string { func (*NonceResp) ProtoMessage() {} func (x *NonceResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[23] + mi := &file_avs_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2280,7 +2279,7 @@ func (x *NonceResp) ProtoReflect() protoreflect.Message { // Deprecated: Use NonceResp.ProtoReflect.Descriptor instead. func (*NonceResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{23} + return file_avs_proto_rawDescGZIP(), []int{23} } func (x *NonceResp) GetNonce() string { @@ -2304,7 +2303,7 @@ type ListWalletReq struct { func (x *ListWalletReq) Reset() { *x = ListWalletReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[24] + mi := &file_avs_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2317,7 +2316,7 @@ func (x *ListWalletReq) String() string { func (*ListWalletReq) ProtoMessage() {} func (x *ListWalletReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[24] + mi := &file_avs_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2330,7 +2329,7 @@ func (x *ListWalletReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWalletReq.ProtoReflect.Descriptor instead. func (*ListWalletReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{24} + return file_avs_proto_rawDescGZIP(), []int{24} } func (x *ListWalletReq) GetFactoryAddress() string { @@ -2360,7 +2359,7 @@ type SmartWallet struct { func (x *SmartWallet) Reset() { *x = SmartWallet{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[25] + mi := &file_avs_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2373,7 +2372,7 @@ func (x *SmartWallet) String() string { func (*SmartWallet) ProtoMessage() {} func (x *SmartWallet) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[25] + mi := &file_avs_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2386,7 +2385,7 @@ func (x *SmartWallet) ProtoReflect() protoreflect.Message { // Deprecated: Use SmartWallet.ProtoReflect.Descriptor instead. func (*SmartWallet) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{25} + return file_avs_proto_rawDescGZIP(), []int{25} } func (x *SmartWallet) GetAddress() string { @@ -2421,7 +2420,7 @@ type ListWalletResp struct { func (x *ListWalletResp) Reset() { *x = ListWalletResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[26] + mi := &file_avs_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2434,7 +2433,7 @@ func (x *ListWalletResp) String() string { func (*ListWalletResp) ProtoMessage() {} func (x *ListWalletResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[26] + mi := &file_avs_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2447,7 +2446,7 @@ func (x *ListWalletResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWalletResp.ProtoReflect.Descriptor instead. func (*ListWalletResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{26} + return file_avs_proto_rawDescGZIP(), []int{26} } func (x *ListWalletResp) GetItems() []*SmartWallet { @@ -2471,7 +2470,7 @@ type ListTasksReq struct { func (x *ListTasksReq) Reset() { *x = ListTasksReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[27] + mi := &file_avs_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2484,7 +2483,7 @@ func (x *ListTasksReq) String() string { func (*ListTasksReq) ProtoMessage() {} func (x *ListTasksReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[27] + mi := &file_avs_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2497,7 +2496,7 @@ func (x *ListTasksReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTasksReq.ProtoReflect.Descriptor instead. func (*ListTasksReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{27} + return file_avs_proto_rawDescGZIP(), []int{27} } func (x *ListTasksReq) GetSmartWalletAddress() []string { @@ -2534,7 +2533,7 @@ type ListTasksResp struct { func (x *ListTasksResp) Reset() { *x = ListTasksResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[28] + mi := &file_avs_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2547,7 +2546,7 @@ func (x *ListTasksResp) String() string { func (*ListTasksResp) ProtoMessage() {} func (x *ListTasksResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[28] + mi := &file_avs_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2560,7 +2559,7 @@ func (x *ListTasksResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTasksResp.ProtoReflect.Descriptor instead. func (*ListTasksResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{28} + return file_avs_proto_rawDescGZIP(), []int{28} } func (x *ListTasksResp) GetItems() []*ListTasksResp_Item { @@ -2597,7 +2596,7 @@ type ListExecutionsReq struct { func (x *ListExecutionsReq) Reset() { *x = ListExecutionsReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[29] + mi := &file_avs_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2610,7 +2609,7 @@ func (x *ListExecutionsReq) String() string { func (*ListExecutionsReq) ProtoMessage() {} func (x *ListExecutionsReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[29] + mi := &file_avs_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2623,7 +2622,7 @@ func (x *ListExecutionsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListExecutionsReq.ProtoReflect.Descriptor instead. func (*ListExecutionsReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{29} + return file_avs_proto_rawDescGZIP(), []int{29} } func (x *ListExecutionsReq) GetTaskIds() []string { @@ -2660,7 +2659,7 @@ type ListExecutionsResp struct { func (x *ListExecutionsResp) Reset() { *x = ListExecutionsResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[30] + mi := &file_avs_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2673,7 +2672,7 @@ func (x *ListExecutionsResp) String() string { func (*ListExecutionsResp) ProtoMessage() {} func (x *ListExecutionsResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[30] + mi := &file_avs_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2686,7 +2685,7 @@ func (x *ListExecutionsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListExecutionsResp.ProtoReflect.Descriptor instead. func (*ListExecutionsResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{30} + return file_avs_proto_rawDescGZIP(), []int{30} } func (x *ListExecutionsResp) GetItems() []*Execution { @@ -2722,7 +2721,7 @@ type ExecutionReq struct { func (x *ExecutionReq) Reset() { *x = ExecutionReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[31] + mi := &file_avs_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2735,7 +2734,7 @@ func (x *ExecutionReq) String() string { func (*ExecutionReq) ProtoMessage() {} func (x *ExecutionReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[31] + mi := &file_avs_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2748,7 +2747,7 @@ func (x *ExecutionReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecutionReq.ProtoReflect.Descriptor instead. func (*ExecutionReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{31} + return file_avs_proto_rawDescGZIP(), []int{31} } func (x *ExecutionReq) GetTaskId() string { @@ -2776,7 +2775,7 @@ type ExecutionStatusResp struct { func (x *ExecutionStatusResp) Reset() { *x = ExecutionStatusResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[32] + mi := &file_avs_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2789,7 +2788,7 @@ func (x *ExecutionStatusResp) String() string { func (*ExecutionStatusResp) ProtoMessage() {} func (x *ExecutionStatusResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[32] + mi := &file_avs_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2802,7 +2801,7 @@ func (x *ExecutionStatusResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecutionStatusResp.ProtoReflect.Descriptor instead. func (*ExecutionStatusResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{32} + return file_avs_proto_rawDescGZIP(), []int{32} } func (x *ExecutionStatusResp) GetStatus() ExecutionStatus { @@ -2817,17 +2816,17 @@ type GetKeyReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` - ChainId int64 `protobuf:"varint,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - IssuedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=issued_at,json=issuedAt,proto3" json:"issued_at,omitempty"` - ExpiredAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"` - Signature string `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"` + Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` + ChainId int64 `protobuf:"varint,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + IssuedAt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=issued_at,json=issuedAt,proto3" json:"issued_at,omitempty"` + ExpiredAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"` + Signature string `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"` } func (x *GetKeyReq) Reset() { *x = GetKeyReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[33] + mi := &file_avs_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2840,7 +2839,7 @@ func (x *GetKeyReq) String() string { func (*GetKeyReq) ProtoMessage() {} func (x *GetKeyReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[33] + mi := &file_avs_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2853,7 +2852,7 @@ func (x *GetKeyReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetKeyReq.ProtoReflect.Descriptor instead. func (*GetKeyReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{33} + return file_avs_proto_rawDescGZIP(), []int{33} } func (x *GetKeyReq) GetOwner() string { @@ -2870,14 +2869,14 @@ func (x *GetKeyReq) GetChainId() int64 { return 0 } -func (x *GetKeyReq) GetIssuedAt() *timestamppb.Timestamp { +func (x *GetKeyReq) GetIssuedAt() *timestamp.Timestamp { if x != nil { return x.IssuedAt } return nil } -func (x *GetKeyReq) GetExpiredAt() *timestamppb.Timestamp { +func (x *GetKeyReq) GetExpiredAt() *timestamp.Timestamp { if x != nil { return x.ExpiredAt } @@ -2902,7 +2901,7 @@ type KeyResp struct { func (x *KeyResp) Reset() { *x = KeyResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[34] + mi := &file_avs_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2915,7 +2914,7 @@ func (x *KeyResp) String() string { func (*KeyResp) ProtoMessage() {} func (x *KeyResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[34] + mi := &file_avs_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2928,7 +2927,7 @@ func (x *KeyResp) ProtoReflect() protoreflect.Message { // Deprecated: Use KeyResp.ProtoReflect.Descriptor instead. func (*KeyResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{34} + return file_avs_proto_rawDescGZIP(), []int{34} } func (x *KeyResp) GetKey() string { @@ -2960,7 +2959,7 @@ type TriggerReason struct { func (x *TriggerReason) Reset() { *x = TriggerReason{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[35] + mi := &file_avs_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2973,7 +2972,7 @@ func (x *TriggerReason) String() string { func (*TriggerReason) ProtoMessage() {} func (x *TriggerReason) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[35] + mi := &file_avs_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2986,7 +2985,7 @@ func (x *TriggerReason) ProtoReflect() protoreflect.Message { // Deprecated: Use TriggerReason.ProtoReflect.Descriptor instead. func (*TriggerReason) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{35} + return file_avs_proto_rawDescGZIP(), []int{35} } func (x *TriggerReason) GetBlockNumber() uint64 { @@ -3037,7 +3036,7 @@ type GetWalletReq struct { func (x *GetWalletReq) Reset() { *x = GetWalletReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[36] + mi := &file_avs_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3050,7 +3049,7 @@ func (x *GetWalletReq) String() string { func (*GetWalletReq) ProtoMessage() {} func (x *GetWalletReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[36] + mi := &file_avs_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3063,7 +3062,7 @@ func (x *GetWalletReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWalletReq.ProtoReflect.Descriptor instead. func (*GetWalletReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{36} + return file_avs_proto_rawDescGZIP(), []int{36} } func (x *GetWalletReq) GetSalt() string { @@ -3098,7 +3097,7 @@ type GetWalletResp struct { func (x *GetWalletResp) Reset() { *x = GetWalletResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[37] + mi := &file_avs_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3111,7 +3110,7 @@ func (x *GetWalletResp) String() string { func (*GetWalletResp) ProtoMessage() {} func (x *GetWalletResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[37] + mi := &file_avs_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3124,7 +3123,7 @@ func (x *GetWalletResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWalletResp.ProtoReflect.Descriptor instead. func (*GetWalletResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{37} + return file_avs_proto_rawDescGZIP(), []int{37} } func (x *GetWalletResp) GetAddress() string { @@ -3199,7 +3198,7 @@ type UserTriggerTaskReq struct { func (x *UserTriggerTaskReq) Reset() { *x = UserTriggerTaskReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[38] + mi := &file_avs_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3212,7 +3211,7 @@ func (x *UserTriggerTaskReq) String() string { func (*UserTriggerTaskReq) ProtoMessage() {} func (x *UserTriggerTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[38] + mi := &file_avs_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3225,7 +3224,7 @@ func (x *UserTriggerTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UserTriggerTaskReq.ProtoReflect.Descriptor instead. func (*UserTriggerTaskReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{38} + return file_avs_proto_rawDescGZIP(), []int{38} } func (x *UserTriggerTaskReq) GetTaskId() string { @@ -3265,7 +3264,7 @@ type UserTriggerTaskResp struct { func (x *UserTriggerTaskResp) Reset() { *x = UserTriggerTaskResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[39] + mi := &file_avs_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3278,7 +3277,7 @@ func (x *UserTriggerTaskResp) String() string { func (*UserTriggerTaskResp) ProtoMessage() {} func (x *UserTriggerTaskResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[39] + mi := &file_avs_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3291,7 +3290,7 @@ func (x *UserTriggerTaskResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UserTriggerTaskResp.ProtoReflect.Descriptor instead. func (*UserTriggerTaskResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{39} + return file_avs_proto_rawDescGZIP(), []int{39} } func (x *UserTriggerTaskResp) GetExecutionId() string { @@ -3329,7 +3328,7 @@ type CreateOrUpdateSecretReq struct { func (x *CreateOrUpdateSecretReq) Reset() { *x = CreateOrUpdateSecretReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[40] + mi := &file_avs_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3342,7 +3341,7 @@ func (x *CreateOrUpdateSecretReq) String() string { func (*CreateOrUpdateSecretReq) ProtoMessage() {} func (x *CreateOrUpdateSecretReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[40] + mi := &file_avs_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3355,7 +3354,7 @@ func (x *CreateOrUpdateSecretReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateOrUpdateSecretReq.ProtoReflect.Descriptor instead. func (*CreateOrUpdateSecretReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{40} + return file_avs_proto_rawDescGZIP(), []int{40} } func (x *CreateOrUpdateSecretReq) GetName() string { @@ -3397,7 +3396,7 @@ type ListSecretsReq struct { func (x *ListSecretsReq) Reset() { *x = ListSecretsReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[41] + mi := &file_avs_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3410,7 +3409,7 @@ func (x *ListSecretsReq) String() string { func (*ListSecretsReq) ProtoMessage() {} func (x *ListSecretsReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[41] + mi := &file_avs_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3423,7 +3422,7 @@ func (x *ListSecretsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSecretsReq.ProtoReflect.Descriptor instead. func (*ListSecretsReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{41} + return file_avs_proto_rawDescGZIP(), []int{41} } func (x *ListSecretsReq) GetWorkflowId() string { @@ -3444,7 +3443,7 @@ type ListSecretsResp struct { func (x *ListSecretsResp) Reset() { *x = ListSecretsResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[42] + mi := &file_avs_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3457,7 +3456,7 @@ func (x *ListSecretsResp) String() string { func (*ListSecretsResp) ProtoMessage() {} func (x *ListSecretsResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[42] + mi := &file_avs_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3470,7 +3469,7 @@ func (x *ListSecretsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSecretsResp.ProtoReflect.Descriptor instead. func (*ListSecretsResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{42} + return file_avs_proto_rawDescGZIP(), []int{42} } func (x *ListSecretsResp) GetItems() []*ListSecretsResp_ResponseSecret { @@ -3495,7 +3494,7 @@ type DeleteSecretReq struct { func (x *DeleteSecretReq) Reset() { *x = DeleteSecretReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[43] + mi := &file_avs_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3508,7 +3507,7 @@ func (x *DeleteSecretReq) String() string { func (*DeleteSecretReq) ProtoMessage() {} func (x *DeleteSecretReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[43] + mi := &file_avs_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3521,7 +3520,7 @@ func (x *DeleteSecretReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSecretReq.ProtoReflect.Descriptor instead. func (*DeleteSecretReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{43} + return file_avs_proto_rawDescGZIP(), []int{43} } func (x *DeleteSecretReq) GetName() string { @@ -3557,7 +3556,7 @@ type GetWorkflowCountReq struct { func (x *GetWorkflowCountReq) Reset() { *x = GetWorkflowCountReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[44] + mi := &file_avs_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3570,7 +3569,7 @@ func (x *GetWorkflowCountReq) String() string { func (*GetWorkflowCountReq) ProtoMessage() {} func (x *GetWorkflowCountReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[44] + mi := &file_avs_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3583,7 +3582,7 @@ func (x *GetWorkflowCountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkflowCountReq.ProtoReflect.Descriptor instead. func (*GetWorkflowCountReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{44} + return file_avs_proto_rawDescGZIP(), []int{44} } func (x *GetWorkflowCountReq) GetAddresses() []string { @@ -3606,7 +3605,7 @@ type GetWorkflowCountResp struct { func (x *GetWorkflowCountResp) Reset() { *x = GetWorkflowCountResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[45] + mi := &file_avs_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3619,7 +3618,7 @@ func (x *GetWorkflowCountResp) String() string { func (*GetWorkflowCountResp) ProtoMessage() {} func (x *GetWorkflowCountResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[45] + mi := &file_avs_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3632,7 +3631,7 @@ func (x *GetWorkflowCountResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkflowCountResp.ProtoReflect.Descriptor instead. func (*GetWorkflowCountResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{45} + return file_avs_proto_rawDescGZIP(), []int{45} } func (x *GetWorkflowCountResp) GetTotal() int64 { @@ -3653,7 +3652,7 @@ type GetExecutionCountReq struct { func (x *GetExecutionCountReq) Reset() { *x = GetExecutionCountReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[46] + mi := &file_avs_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3666,7 +3665,7 @@ func (x *GetExecutionCountReq) String() string { func (*GetExecutionCountReq) ProtoMessage() {} func (x *GetExecutionCountReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[46] + mi := &file_avs_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3679,7 +3678,7 @@ func (x *GetExecutionCountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetExecutionCountReq.ProtoReflect.Descriptor instead. func (*GetExecutionCountReq) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{46} + return file_avs_proto_rawDescGZIP(), []int{46} } func (x *GetExecutionCountReq) GetWorkflowIds() []string { @@ -3702,7 +3701,7 @@ type GetExecutionCountResp struct { func (x *GetExecutionCountResp) Reset() { *x = GetExecutionCountResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[47] + mi := &file_avs_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3715,7 +3714,7 @@ func (x *GetExecutionCountResp) String() string { func (*GetExecutionCountResp) ProtoMessage() {} func (x *GetExecutionCountResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[47] + mi := &file_avs_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3728,7 +3727,7 @@ func (x *GetExecutionCountResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetExecutionCountResp.ProtoReflect.Descriptor instead. func (*GetExecutionCountResp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{47} + return file_avs_proto_rawDescGZIP(), []int{47} } func (x *GetExecutionCountResp) GetTotal() int64 { @@ -3738,6 +3737,134 @@ func (x *GetExecutionCountResp) GetTotal() int64 { return 0 } +// Request message for GetExecutionStats +type GetExecutionStatsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkflowIds []string `protobuf:"bytes,1,rep,name=workflow_ids,json=workflowIds,proto3" json:"workflow_ids,omitempty"` // Optional array of workflow IDs + Days int64 `protobuf:"varint,2,opt,name=days,proto3" json:"days,omitempty"` // Number of days to look back (default: 7) +} + +func (x *GetExecutionStatsReq) Reset() { + *x = GetExecutionStatsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_avs_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExecutionStatsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExecutionStatsReq) ProtoMessage() {} + +func (x *GetExecutionStatsReq) ProtoReflect() protoreflect.Message { + mi := &file_avs_proto_msgTypes[48] + 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 GetExecutionStatsReq.ProtoReflect.Descriptor instead. +func (*GetExecutionStatsReq) Descriptor() ([]byte, []int) { + return file_avs_proto_rawDescGZIP(), []int{48} +} + +func (x *GetExecutionStatsReq) GetWorkflowIds() []string { + if x != nil { + return x.WorkflowIds + } + return nil +} + +func (x *GetExecutionStatsReq) GetDays() int64 { + if x != nil { + return x.Days + } + return 0 +} + +// Response message for GetExecutionStats +type GetExecutionStatsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` // Total number of executions + Succeeded int64 `protobuf:"varint,2,opt,name=succeeded,proto3" json:"succeeded,omitempty"` // Number of successful executions + Failed int64 `protobuf:"varint,3,opt,name=failed,proto3" json:"failed,omitempty"` // Number of failed executions + AvgExecutionTime float64 `protobuf:"fixed64,4,opt,name=avg_execution_time,json=avgExecutionTime,proto3" json:"avg_execution_time,omitempty"` // Average execution time in milliseconds +} + +func (x *GetExecutionStatsResp) Reset() { + *x = GetExecutionStatsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_avs_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExecutionStatsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExecutionStatsResp) ProtoMessage() {} + +func (x *GetExecutionStatsResp) ProtoReflect() protoreflect.Message { + mi := &file_avs_proto_msgTypes[49] + 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 GetExecutionStatsResp.ProtoReflect.Descriptor instead. +func (*GetExecutionStatsResp) Descriptor() ([]byte, []int) { + return file_avs_proto_rawDescGZIP(), []int{49} +} + +func (x *GetExecutionStatsResp) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetExecutionStatsResp) GetSucceeded() int64 { + if x != nil { + return x.Succeeded + } + return 0 +} + +func (x *GetExecutionStatsResp) GetFailed() int64 { + if x != nil { + return x.Failed + } + return 0 +} + +func (x *GetExecutionStatsResp) GetAvgExecutionTime() float64 { + if x != nil { + return x.AvgExecutionTime + } + return 0 +} + type Evm struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3747,7 +3874,7 @@ type Evm struct { func (x *Evm) Reset() { *x = Evm{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[48] + mi := &file_avs_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3760,7 +3887,7 @@ func (x *Evm) String() string { func (*Evm) ProtoMessage() {} func (x *Evm) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[48] + mi := &file_avs_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3773,7 +3900,7 @@ func (x *Evm) ProtoReflect() protoreflect.Message { // Deprecated: Use Evm.ProtoReflect.Descriptor instead. func (*Evm) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{48} + return file_avs_proto_rawDescGZIP(), []int{50} } type EventCondition_Matcher struct { @@ -3782,8 +3909,8 @@ type EventCondition_Matcher struct { unknownFields protoimpl.UnknownFields // the type of Filter we support, right now, we support below value for - // - topics: - // - address: + // - topics: + // - address: Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // the payload of the type data to be mached. Each type will have different semantic meaning on how to match // Given type=topics`. This value is the topic array, for every non null element of the array we perform an equal check @@ -3792,17 +3919,15 @@ type EventCondition_Matcher struct { // Example: // To find all ERC20 transfer event into or out to wallet 0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77 we can do // value = [ - // - // [ - // "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - // "0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77", // tx out - // ], - // [ - // "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - // null, - // "0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77" // tx in - // ], - // + // [ + // "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + // "0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77", // tx out + // ], + // [ + // "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + // null, + // "0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77" // tx in + // ], // ] Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"` } @@ -3810,7 +3935,7 @@ type EventCondition_Matcher struct { func (x *EventCondition_Matcher) Reset() { *x = EventCondition_Matcher{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[49] + mi := &file_avs_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3823,7 +3948,7 @@ func (x *EventCondition_Matcher) String() string { func (*EventCondition_Matcher) ProtoMessage() {} func (x *EventCondition_Matcher) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[49] + mi := &file_avs_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3836,7 +3961,7 @@ func (x *EventCondition_Matcher) ProtoReflect() protoreflect.Message { // Deprecated: Use EventCondition_Matcher.ProtoReflect.Descriptor instead. func (*EventCondition_Matcher) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{4, 0} + return file_avs_proto_rawDescGZIP(), []int{4, 0} } func (x *EventCondition_Matcher) GetType() string { @@ -3864,7 +3989,7 @@ type ETHTransferNode_Output struct { func (x *ETHTransferNode_Output) Reset() { *x = ETHTransferNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[50] + mi := &file_avs_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3877,7 +4002,7 @@ func (x *ETHTransferNode_Output) String() string { func (*ETHTransferNode_Output) ProtoMessage() {} func (x *ETHTransferNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[50] + mi := &file_avs_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3890,7 +4015,7 @@ func (x *ETHTransferNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use ETHTransferNode_Output.ProtoReflect.Descriptor instead. func (*ETHTransferNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{6, 0} + return file_avs_proto_rawDescGZIP(), []int{6, 0} } func (x *ETHTransferNode_Output) GetTransactionHash() string { @@ -3917,7 +4042,7 @@ type ContractWriteNode_Output struct { func (x *ContractWriteNode_Output) Reset() { *x = ContractWriteNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[51] + mi := &file_avs_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3930,7 +4055,7 @@ func (x *ContractWriteNode_Output) String() string { func (*ContractWriteNode_Output) ProtoMessage() {} func (x *ContractWriteNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[51] + mi := &file_avs_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3943,7 +4068,7 @@ func (x *ContractWriteNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractWriteNode_Output.ProtoReflect.Descriptor instead. func (*ContractWriteNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{7, 0} + return file_avs_proto_rawDescGZIP(), []int{7, 0} } func (x *ContractWriteNode_Output) GetUserOp() *Evm_UserOp { @@ -3969,13 +4094,13 @@ type ContractReadNode_Output struct { // we don't know the shape of data ahead of time. // At runtime, the data is dynamically parsed into the correct type for the node to consume // In case of smart contract, the return is always an array, then it's up to the client to map to the right field based on method signature - Data []*structpb.Value `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` + Data []*_struct.Value `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` } func (x *ContractReadNode_Output) Reset() { *x = ContractReadNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[52] + mi := &file_avs_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3988,7 +4113,7 @@ func (x *ContractReadNode_Output) String() string { func (*ContractReadNode_Output) ProtoMessage() {} func (x *ContractReadNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[52] + mi := &file_avs_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4001,10 +4126,10 @@ func (x *ContractReadNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractReadNode_Output.ProtoReflect.Descriptor instead. func (*ContractReadNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{8, 0} + return file_avs_proto_rawDescGZIP(), []int{8, 0} } -func (x *ContractReadNode_Output) GetData() []*structpb.Value { +func (x *ContractReadNode_Output) GetData() []*_struct.Value { if x != nil { return x.Data } @@ -4018,13 +4143,13 @@ type GraphQLQueryNode_Output struct { // The data is the result of the graphql query. Becuase this is GraphQL, the data is a json object // The field of the json object is unknow, its depend on the query - Data *anypb.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *any1.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *GraphQLQueryNode_Output) Reset() { *x = GraphQLQueryNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[54] + mi := &file_avs_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4037,7 +4162,7 @@ func (x *GraphQLQueryNode_Output) String() string { func (*GraphQLQueryNode_Output) ProtoMessage() {} func (x *GraphQLQueryNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[54] + mi := &file_avs_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4050,10 +4175,10 @@ func (x *GraphQLQueryNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use GraphQLQueryNode_Output.ProtoReflect.Descriptor instead. func (*GraphQLQueryNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{9, 1} + return file_avs_proto_rawDescGZIP(), []int{9, 1} } -func (x *GraphQLQueryNode_Output) GetData() *anypb.Any { +func (x *GraphQLQueryNode_Output) GetData() *any1.Any { if x != nil { return x.Data } @@ -4065,13 +4190,13 @@ type RestAPINode_Output struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *anypb.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *any1.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *RestAPINode_Output) Reset() { *x = RestAPINode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[56] + mi := &file_avs_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4084,7 +4209,7 @@ func (x *RestAPINode_Output) String() string { func (*RestAPINode_Output) ProtoMessage() {} func (x *RestAPINode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[56] + mi := &file_avs_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4097,10 +4222,10 @@ func (x *RestAPINode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use RestAPINode_Output.ProtoReflect.Descriptor instead. func (*RestAPINode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{10, 1} + return file_avs_proto_rawDescGZIP(), []int{10, 1} } -func (x *RestAPINode_Output) GetData() *anypb.Any { +func (x *RestAPINode_Output) GetData() *any1.Any { if x != nil { return x.Data } @@ -4112,13 +4237,13 @@ type CustomCodeNode_Output struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *anypb.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *any1.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *CustomCodeNode_Output) Reset() { *x = CustomCodeNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[57] + mi := &file_avs_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4131,7 +4256,7 @@ func (x *CustomCodeNode_Output) String() string { func (*CustomCodeNode_Output) ProtoMessage() {} func (x *CustomCodeNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[57] + mi := &file_avs_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4144,10 +4269,10 @@ func (x *CustomCodeNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomCodeNode_Output.ProtoReflect.Descriptor instead. func (*CustomCodeNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{11, 0} + return file_avs_proto_rawDescGZIP(), []int{11, 0} } -func (x *CustomCodeNode_Output) GetData() *anypb.Any { +func (x *CustomCodeNode_Output) GetData() *any1.Any { if x != nil { return x.Data } @@ -4168,7 +4293,7 @@ type BranchNode_Output struct { func (x *BranchNode_Output) Reset() { *x = BranchNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[58] + mi := &file_avs_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4181,7 +4306,7 @@ func (x *BranchNode_Output) String() string { func (*BranchNode_Output) ProtoMessage() {} func (x *BranchNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[58] + mi := &file_avs_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4194,7 +4319,7 @@ func (x *BranchNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use BranchNode_Output.ProtoReflect.Descriptor instead. func (*BranchNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{13, 0} + return file_avs_proto_rawDescGZIP(), []int{13, 0} } func (x *BranchNode_Output) GetConditionId() string { @@ -4210,13 +4335,13 @@ type FilterNode_Output struct { unknownFields protoimpl.UnknownFields // the output of the filter node is the filtered array after apply the filter expression. It works similar to filter of javascript - Data *anypb.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *any1.Any `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *FilterNode_Output) Reset() { *x = FilterNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[59] + mi := &file_avs_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4229,7 +4354,7 @@ func (x *FilterNode_Output) String() string { func (*FilterNode_Output) ProtoMessage() {} func (x *FilterNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[59] + mi := &file_avs_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4242,10 +4367,10 @@ func (x *FilterNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use FilterNode_Output.ProtoReflect.Descriptor instead. func (*FilterNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{14, 0} + return file_avs_proto_rawDescGZIP(), []int{14, 0} } -func (x *FilterNode_Output) GetData() *anypb.Any { +func (x *FilterNode_Output) GetData() *any1.Any { if x != nil { return x.Data } @@ -4264,7 +4389,7 @@ type LoopNode_Output struct { func (x *LoopNode_Output) Reset() { *x = LoopNode_Output{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[60] + mi := &file_avs_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4277,7 +4402,7 @@ func (x *LoopNode_Output) String() string { func (*LoopNode_Output) ProtoMessage() {} func (x *LoopNode_Output) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[60] + mi := &file_avs_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4290,7 +4415,7 @@ func (x *LoopNode_Output) ProtoReflect() protoreflect.Message { // Deprecated: Use LoopNode_Output.ProtoReflect.Descriptor instead. func (*LoopNode_Output) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{15, 0} + return file_avs_proto_rawDescGZIP(), []int{15, 0} } func (x *LoopNode_Output) GetData() string { @@ -4308,7 +4433,6 @@ type Execution_Step struct { NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"` // Types that are assignable to OutputData: - // // *Execution_Step_EthTransfer // *Execution_Step_Graphql // *Execution_Step_ContractRead @@ -4321,8 +4445,10 @@ type Execution_Step struct { OutputData isExecution_Step_OutputData `protobuf_oneof:"output_data"` Log string `protobuf:"bytes,12,opt,name=log,proto3" json:"log,omitempty"` Error string `protobuf:"bytes,13,opt,name=error,proto3" json:"error,omitempty"` - StartAt int64 `protobuf:"varint,14,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` - EndAt int64 `protobuf:"varint,15,opt,name=end_at,json=endAt,proto3" json:"end_at,omitempty"` + // timestamp when step started (in milliseconds) + StartAt int64 `protobuf:"varint,14,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` + // timestamp when step ended (in milliseconds) + EndAt int64 `protobuf:"varint,15,opt,name=end_at,json=endAt,proto3" json:"end_at,omitempty"` // Reference ticket: https://github.com/AvaProtocol/EigenLayer-AVS/issues/151 Inputs []string `protobuf:"bytes,16,rep,name=inputs,proto3" json:"inputs,omitempty"` } @@ -4330,7 +4456,7 @@ type Execution_Step struct { func (x *Execution_Step) Reset() { *x = Execution_Step{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[61] + mi := &file_avs_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4343,7 +4469,7 @@ func (x *Execution_Step) String() string { func (*Execution_Step) ProtoMessage() {} func (x *Execution_Step) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[61] + mi := &file_avs_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4356,7 +4482,7 @@ func (x *Execution_Step) ProtoReflect() protoreflect.Message { // Deprecated: Use Execution_Step.ProtoReflect.Descriptor instead. func (*Execution_Step) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{18, 0} + return file_avs_proto_rawDescGZIP(), []int{18, 0} } func (x *Execution_Step) GetNodeId() string { @@ -4541,12 +4667,13 @@ type Execution_TransferLogOutput struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TokenName string `protobuf:"bytes,1,opt,name=token_name,json=tokenName,proto3" json:"token_name,omitempty"` - TokenSymbol string `protobuf:"bytes,2,opt,name=token_symbol,json=tokenSymbol,proto3" json:"token_symbol,omitempty"` - TokenDecimals uint32 `protobuf:"varint,3,opt,name=token_decimals,json=tokenDecimals,proto3" json:"token_decimals,omitempty"` - TransactionHash string `protobuf:"bytes,4,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` - Address string `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"` - BlockNumber uint64 `protobuf:"varint,6,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + TokenName string `protobuf:"bytes,1,opt,name=token_name,json=tokenName,proto3" json:"token_name,omitempty"` + TokenSymbol string `protobuf:"bytes,2,opt,name=token_symbol,json=tokenSymbol,proto3" json:"token_symbol,omitempty"` + TokenDecimals uint32 `protobuf:"varint,3,opt,name=token_decimals,json=tokenDecimals,proto3" json:"token_decimals,omitempty"` + TransactionHash string `protobuf:"bytes,4,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` + Address string `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"` + BlockNumber uint64 `protobuf:"varint,6,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + // timestamp of the block (in milliseconds) BlockTimestamp uint64 `protobuf:"varint,7,opt,name=block_timestamp,json=blockTimestamp,proto3" json:"block_timestamp,omitempty"` FromAddress string `protobuf:"bytes,8,opt,name=from_address,json=fromAddress,proto3" json:"from_address,omitempty"` ToAddress string `protobuf:"bytes,9,opt,name=to_address,json=toAddress,proto3" json:"to_address,omitempty"` @@ -4558,7 +4685,7 @@ type Execution_TransferLogOutput struct { func (x *Execution_TransferLogOutput) Reset() { *x = Execution_TransferLogOutput{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[62] + mi := &file_avs_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4571,7 +4698,7 @@ func (x *Execution_TransferLogOutput) String() string { func (*Execution_TransferLogOutput) ProtoMessage() {} func (x *Execution_TransferLogOutput) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[62] + mi := &file_avs_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4584,7 +4711,7 @@ func (x *Execution_TransferLogOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use Execution_TransferLogOutput.ProtoReflect.Descriptor instead. func (*Execution_TransferLogOutput) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{18, 1} + return file_avs_proto_rawDescGZIP(), []int{18, 1} } func (x *Execution_TransferLogOutput) GetTokenName() string { @@ -4682,7 +4809,7 @@ type Execution_BlockOutput struct { func (x *Execution_BlockOutput) Reset() { *x = Execution_BlockOutput{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[63] + mi := &file_avs_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4695,7 +4822,7 @@ func (x *Execution_BlockOutput) String() string { func (*Execution_BlockOutput) ProtoMessage() {} func (x *Execution_BlockOutput) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[63] + mi := &file_avs_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4708,7 +4835,7 @@ func (x *Execution_BlockOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use Execution_BlockOutput.ProtoReflect.Descriptor instead. func (*Execution_BlockOutput) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{18, 2} + return file_avs_proto_rawDescGZIP(), []int{18, 2} } func (x *Execution_BlockOutput) GetBlockNumber() uint64 { @@ -4729,7 +4856,7 @@ type Execution_TimeOutput struct { func (x *Execution_TimeOutput) Reset() { *x = Execution_TimeOutput{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[64] + mi := &file_avs_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4742,7 +4869,7 @@ func (x *Execution_TimeOutput) String() string { func (*Execution_TimeOutput) ProtoMessage() {} func (x *Execution_TimeOutput) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[64] + mi := &file_avs_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4755,7 +4882,7 @@ func (x *Execution_TimeOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use Execution_TimeOutput.ProtoReflect.Descriptor instead. func (*Execution_TimeOutput) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{18, 3} + return file_avs_proto_rawDescGZIP(), []int{18, 3} } func (x *Execution_TimeOutput) GetEpoch() uint64 { @@ -4773,26 +4900,28 @@ type ListTasksResp_Item struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` SmartWalletAddress string `protobuf:"bytes,3,opt,name=smart_wallet_address,json=smartWalletAddress,proto3" json:"smart_wallet_address,omitempty"` - // task won't be check before this + // task won't be check before this (timestamp in milliseconds) StartAt int64 `protobuf:"varint,4,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` - // task won't be run/check after this + // task won't be run/check after this (timestamp in milliseconds) ExpiredAt int64 `protobuf:"varint,5,opt,name=expired_at,json=expiredAt,proto3" json:"expired_at,omitempty"` // arbitrary data about this task. has a limit of 255 character - Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` - CompletedAt int64 `protobuf:"varint,7,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + // timestamp when task was completed (in milliseconds) + CompletedAt int64 `protobuf:"varint,7,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` // limit on how many time this task can run. Set to 0 will make it run unlimited until cancelling or reaching its expired time MaxExecution int64 `protobuf:"varint,8,opt,name=max_execution,json=maxExecution,proto3" json:"max_execution,omitempty"` // return how many time this task has run - TotalExecution int64 `protobuf:"varint,9,opt,name=total_execution,json=totalExecution,proto3" json:"total_execution,omitempty"` - LastRanAt int64 `protobuf:"varint,10,opt,name=last_ran_at,json=lastRanAt,proto3" json:"last_ran_at,omitempty"` - Status TaskStatus `protobuf:"varint,11,opt,name=status,proto3,enum=aggregator.TaskStatus" json:"status,omitempty"` - Trigger *TaskTrigger `protobuf:"bytes,12,opt,name=trigger,proto3" json:"trigger,omitempty"` + TotalExecution int64 `protobuf:"varint,9,opt,name=total_execution,json=totalExecution,proto3" json:"total_execution,omitempty"` + // timestamp when task was last executed (in milliseconds) + LastRanAt int64 `protobuf:"varint,10,opt,name=last_ran_at,json=lastRanAt,proto3" json:"last_ran_at,omitempty"` + Status TaskStatus `protobuf:"varint,11,opt,name=status,proto3,enum=aggregator.TaskStatus" json:"status,omitempty"` + Trigger *TaskTrigger `protobuf:"bytes,12,opt,name=trigger,proto3" json:"trigger,omitempty"` } func (x *ListTasksResp_Item) Reset() { *x = ListTasksResp_Item{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[65] + mi := &file_avs_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4805,7 +4934,7 @@ func (x *ListTasksResp_Item) String() string { func (*ListTasksResp_Item) ProtoMessage() {} func (x *ListTasksResp_Item) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[65] + mi := &file_avs_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4818,7 +4947,7 @@ func (x *ListTasksResp_Item) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTasksResp_Item.ProtoReflect.Descriptor instead. func (*ListTasksResp_Item) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{28, 0} + return file_avs_proto_rawDescGZIP(), []int{28, 0} } func (x *ListTasksResp_Item) GetId() string { @@ -4920,7 +5049,7 @@ type ListSecretsResp_ResponseSecret struct { func (x *ListSecretsResp_ResponseSecret) Reset() { *x = ListSecretsResp_ResponseSecret{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[66] + mi := &file_avs_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4933,7 +5062,7 @@ func (x *ListSecretsResp_ResponseSecret) String() string { func (*ListSecretsResp_ResponseSecret) ProtoMessage() {} func (x *ListSecretsResp_ResponseSecret) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[66] + mi := &file_avs_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4946,7 +5075,7 @@ func (x *ListSecretsResp_ResponseSecret) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSecretsResp_ResponseSecret.ProtoReflect.Descriptor instead. func (*ListSecretsResp_ResponseSecret) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{42, 0} + return file_avs_proto_rawDescGZIP(), []int{42, 0} } func (x *ListSecretsResp_ResponseSecret) GetName() string { @@ -4998,7 +5127,7 @@ type Evm_Log struct { func (x *Evm_Log) Reset() { *x = Evm_Log{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[67] + mi := &file_avs_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5011,7 +5140,7 @@ func (x *Evm_Log) String() string { func (*Evm_Log) ProtoMessage() {} func (x *Evm_Log) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[67] + mi := &file_avs_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5024,7 +5153,7 @@ func (x *Evm_Log) ProtoReflect() protoreflect.Message { // Deprecated: Use Evm_Log.ProtoReflect.Descriptor instead. func (*Evm_Log) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{48, 0} + return file_avs_proto_rawDescGZIP(), []int{50, 0} } func (x *Evm_Log) GetAddress() string { @@ -5119,7 +5248,7 @@ type Evm_TransactionReceipt struct { func (x *Evm_TransactionReceipt) Reset() { *x = Evm_TransactionReceipt{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[68] + mi := &file_avs_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5132,7 +5261,7 @@ func (x *Evm_TransactionReceipt) String() string { func (*Evm_TransactionReceipt) ProtoMessage() {} func (x *Evm_TransactionReceipt) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[68] + mi := &file_avs_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5145,7 +5274,7 @@ func (x *Evm_TransactionReceipt) ProtoReflect() protoreflect.Message { // Deprecated: Use Evm_TransactionReceipt.ProtoReflect.Descriptor instead. func (*Evm_TransactionReceipt) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{48, 1} + return file_avs_proto_rawDescGZIP(), []int{50, 1} } func (x *Evm_TransactionReceipt) GetHash() string { @@ -5295,7 +5424,7 @@ type Evm_UserOp struct { func (x *Evm_UserOp) Reset() { *x = Evm_UserOp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_avs_proto_msgTypes[69] + mi := &file_avs_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5308,7 +5437,7 @@ func (x *Evm_UserOp) String() string { func (*Evm_UserOp) ProtoMessage() {} func (x *Evm_UserOp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_avs_proto_msgTypes[69] + mi := &file_avs_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5321,7 +5450,7 @@ func (x *Evm_UserOp) ProtoReflect() protoreflect.Message { // Deprecated: Use Evm_UserOp.ProtoReflect.Descriptor instead. func (*Evm_UserOp) Descriptor() ([]byte, []int) { - return file_protobuf_avs_proto_rawDescGZIP(), []int{48, 2} + return file_avs_proto_rawDescGZIP(), []int{50, 2} } func (x *Evm_UserOp) GetSender() string { @@ -5401,196 +5530,160 @@ func (x *Evm_UserOp) GetSignature() string { return "" } -var File_protobuf_avs_proto protoreflect.FileDescriptor - -var file_protobuf_avs_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x76, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 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, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, 0x05, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x46, 0x69, 0x78, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x73, 0x22, 0x2b, 0x0a, 0x0d, 0x43, 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x2c, - 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xa3, 0x01, 0x0a, - 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3c, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1e, 0x0a, - 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x33, 0x0a, - 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, - 0x12, 0x3f, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x63, 0x72, - 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x74, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x0f, 0x45, - 0x54, 0x48, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x33, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x22, 0xfc, 0x01, - 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4e, - 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x62, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x62, 0x69, 0x1a, 0x7c, - 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2f, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4f, - 0x70, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x78, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, - 0x74, 0x52, 0x09, 0x74, 0x78, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x22, 0xb3, 0x01, 0x0a, - 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x62, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x62, 0x69, 0x1a, 0x34, 0x0a, 0x06, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x49, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, - 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x32, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xfb, 0x01, 0x0a, - 0x0b, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x3e, - 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x73, - 0x74, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 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, 0x32, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x0e, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, - 0x04, 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, - 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x04, 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x32, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, - 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x09, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x0a, 0x42, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, - 0x2b, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x0a, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x1a, 0x32, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x90, 0x04, 0x0a, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x72, 0x5f, - 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x74, 0x65, 0x72, 0x56, - 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, - 0x0c, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x45, 0x54, 0x48, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, - 0x48, 0x00, 0x52, 0x0b, 0x65, 0x74, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, - 0x46, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0c, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x4c, 0x0a, 0x12, - 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x10, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, - 0x6c, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, - 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x41, 0x70, 0x69, - 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x1a, - 0x1c, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, 0x0a, - 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x4a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x45, - 0x64, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x22, 0xd4, 0x04, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x6e, +var File_avs_proto protoreflect.FileDescriptor + +var file_avs_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x61, 0x76, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 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, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x17, 0x0a, 0x05, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x06, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x22, 0x2b, 0x0a, 0x0d, 0x43, 0x72, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x22, 0xa3, 0x01, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x33, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x54, 0x61, + 0x73, 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x05, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x32, 0x0a, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x80, 0x01, 0x0a, 0x0f, 0x45, 0x54, 0x48, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, + 0x33, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x61, 0x73, 0x68, 0x22, 0xfc, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, + 0x62, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x41, 0x62, 0x69, 0x1a, 0x7c, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, + 0x2f, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, + 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x4f, 0x70, + 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x78, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x09, 0x74, 0x78, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x22, 0xb3, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x62, 0x69, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x62, 0x69, 0x1a, 0x34, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2a, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x49, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x32, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xfb, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x2e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x32, 0x0a, + 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6c, 0x61, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x04, + 0x6c, 0x61, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x32, 0x0a, 0x06, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x4f, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x70, 0x0a, 0x0a, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x12, + 0x35, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2b, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x32, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x90, 0x04, 0x0a, 0x08, + 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x69, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, + 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x74, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x54, 0x48, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x74, 0x68, 0x54, 0x72, @@ -5603,231 +5696,178 @@ var file_protobuf_avs_proto_rawDesc = []byte{ 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, - 0x65, 0x61, 0x64, 0x12, 0x43, 0x0a, 0x0d, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, 0x5f, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x72, 0x61, 0x70, - 0x68, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x74, - 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x4e, - 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x41, 0x70, 0x69, 0x12, 0x30, - 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x65, 0x61, 0x64, 0x12, 0x4c, 0x0a, 0x12, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, + 0x10, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, + 0x72, 0x65, 0x73, 0x74, 0x41, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x1c, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x4a, + 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x64, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xd4, 0x04, 0x0a, 0x08, 0x54, + 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x65, + 0x74, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, + 0x54, 0x48, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, + 0x52, 0x0b, 0x65, 0x74, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x46, 0x0a, + 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x43, 0x0a, 0x0d, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x71, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x48, + 0x00, 0x52, 0x0c, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x52, + 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, + 0x73, 0x74, 0x41, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, + 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x48, + 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x6f, 0x6f, + 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, + 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, + 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x43, 0x6f, 0x64, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xa3, 0x0e, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x6e, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x41, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, + 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, + 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x76, 0x6d, 0x5f, 0x6c, + 0x6f, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, + 0x06, 0x65, 0x76, 0x6d, 0x4c, 0x6f, 0x67, 0x12, 0x39, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x05, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x87, 0x06, 0x0a, 0x04, 0x53, + 0x74, 0x65, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x0c, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x54, 0x48, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x48, 0x00, 0x52, 0x0b, 0x65, 0x74, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, + 0x3f, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, + 0x12, 0x4a, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x4d, 0x0a, 0x0e, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0b, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x41, 0x70, 0x69, 0x12, 0x37, + 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x42, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x12, 0x30, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x6f, - 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x12, 0x3d, - 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x48, - 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa3, 0x0e, 0x0a, 0x09, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x41, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, - 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6c, - 0x6f, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x6f, 0x67, - 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x76, 0x6d, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, - 0x76, 0x6d, 0x2e, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x06, 0x65, 0x76, 0x6d, 0x4c, 0x6f, 0x67, - 0x12, 0x39, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x48, 0x00, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x36, 0x0a, 0x04, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x74, - 0x69, 0x6d, 0x65, 0x1a, 0x87, 0x06, 0x0a, 0x04, 0x53, 0x74, 0x65, 0x70, 0x12, 0x17, 0x0a, 0x07, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, - 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, - 0x47, 0x0a, 0x0c, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x45, 0x54, 0x48, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, - 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x74, 0x68, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x70, - 0x68, 0x71, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x51, 0x4c, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, - 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, 0x68, 0x71, 0x6c, 0x12, 0x4a, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x4d, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x74, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x41, 0x50, - 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x07, - 0x72, 0x65, 0x73, 0x74, 0x41, 0x70, 0x69, 0x12, 0x37, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x2e, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x12, 0x37, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, - 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x6f, 0x6f, - 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x12, 0x10, 0x0a, 0x03, - 0x6c, 0x6f, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, - 0x15, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x65, 0x6e, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, - 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x0d, - 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xbb, 0x03, - 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x73, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, - 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x10, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x21, 0x0a, - 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x12, 0x2b, - 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x30, 0x0a, 0x0b, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x22, 0x0a, - 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xf8, 0x03, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, - 0x30, 0x0a, 0x14, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, - 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x5f, 0x61, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x41, 0x74, - 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x16, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x31, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, - 0x2a, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x0d, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, - 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, - 0x78, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x30, 0x0a, 0x14, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, - 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x22, 0x20, 0x0a, - 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0x24, 0x0a, 0x0c, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x21, 0x0a, 0x09, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, - 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x22, 0x55, 0x0a, 0x0b, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x57, - 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, - 0x61, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x3f, 0x0a, - 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x2d, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x6d, 0x61, 0x72, - 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x7c, - 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x12, 0x30, - 0x0a, 0x14, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6d, - 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x74, 0x65, 0x6d, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x50, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x22, 0x9b, 0x04, 0x0a, - 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, - 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x1a, 0xa0, 0x03, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, + 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, + 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x2e, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x6f, 0x6f, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, + 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, + 0x6f, 0x6f, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0xbb, 0x03, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x4c, 0x6f, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x25, 0x0a, 0x0e, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x63, 0x69, 0x6d, + 0x61, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x74, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x1a, 0x30, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x22, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf8, 0x03, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, @@ -5853,353 +5893,461 @@ var file_protobuf_avs_proto_rawDesc = []byte{ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x6a, 0x0a, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, - 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, - 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x50, - 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, - 0x72, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, 0x4a, 0x0a, 0x0c, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, - 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x08, 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x65, 0x78, 0x70, 0x69, 0x72, 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, 0x09, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x1b, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x22, 0x8e, 0x02, 0x0a, 0x0d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x53, - 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, - 0x05, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x6e, 0x75, - 0x61, 0x6c, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x69, 0x78, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x72, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, - 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x10, 0x06, 0x22, 0x4b, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, 0x64, 0x67, + 0x65, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, + 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64, + 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, + 0x64, 0x67, 0x65, 0x73, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x0c, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x21, 0x0a, 0x09, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x22, 0x55, 0x0a, + 0x0b, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x22, 0x3f, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x7c, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x73, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x77, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, + 0x22, 0x0a, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x50, 0x65, 0x72, 0x50, + 0x61, 0x67, 0x65, 0x22, 0x9b, 0x04, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x1a, 0xa0, + 0x03, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x30, 0x0a, + 0x14, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6d, 0x61, + 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, + 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x41, 0x74, 0x12, 0x2e, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, + 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x22, 0x6a, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x74, 0x65, + 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x69, 0x74, 0x65, 0x6d, 0x50, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, + 0x12, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, + 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, + 0x6f, 0x72, 0x65, 0x22, 0x4a, 0x0a, 0x0c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, + 0x4a, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x09, + 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x69, 0x73, + 0x73, 0x75, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 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, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x1b, 0x0a, 0x07, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x8e, 0x02, 0x0a, 0x0d, 0x54, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a, 0x07, 0x74, + 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x53, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x10, 0x00, 0x12, + 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x72, + 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x05, 0x12, + 0x09, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x22, 0x4b, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, + 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x27, + 0x0a, 0x0f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xca, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x72, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0xca, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, - 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, - 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, - 0x13, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, - 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x31, 0x0a, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x7d, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, - 0x31, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x49, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x72, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x0f, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x33, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x22, 0x2c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x39, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x73, 0x22, 0x2d, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd2, 0x09, 0x0a, 0x03, 0x45, 0x76, 0x6d, - 0x1a, 0x95, 0x02, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, - 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2b, 0x0a, 0x11, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x1a, 0x86, 0x04, 0x0a, 0x12, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, - 0x55, 0x73, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x66, 0x65, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, - 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, - 0x67, 0x73, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x62, 0x5f, - 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x62, 0x6c, 0x6f, 0x62, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, - 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, - 0x6f, 0x1a, 0xa9, 0x03, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, - 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, - 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x67, 0x61, 0x73, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, - 0x6c, 0x6c, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x70, 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, - 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x78, - 0x46, 0x65, 0x65, 0x50, 0x65, 0x72, 0x47, 0x61, 0x73, 0x12, 0x36, 0x0a, 0x18, 0x6d, 0x61, 0x78, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x78, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x50, 0x65, 0x72, 0x47, 0x61, - 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x79, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, - 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, - 0x61, 0x79, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2a, 0xdf, 0x01, - 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x70, 0x63, 0x4e, - 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xe8, 0x07, 0x12, 0x17, 0x0a, 0x12, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x10, 0xd0, 0x0f, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, - 0x53, 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x70, 0x63, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x10, 0xf0, 0x2e, 0x12, 0x1d, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x57, - 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x10, 0xf1, 0x2e, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x43, 0x6f, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x10, 0xd8, 0x36, 0x12, 0x19, 0x0a, - 0x14, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd9, 0x36, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, - 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xdb, 0x36, 0x2a, - 0x50, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, - 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x10, - 0x04, 0x2a, 0x2b, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x20, - 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x6e, 0x67, - 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x00, - 0x32, 0xf1, 0x0a, 0x0a, 0x0a, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x36, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, - 0x1a, 0x13, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4b, 0x65, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, + 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, + 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, + 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x74, + 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x7d, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, + 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, + 0x72, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, + 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, + 0x67, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6f, + 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, + 0x49, 0x64, 0x22, 0x33, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x39, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x21, 0x0a, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x73, + 0x22, 0x2d, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, + 0x4d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x22, 0x91, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x76, 0x67, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x10, 0x61, 0x76, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0xd2, 0x09, 0x0a, 0x03, 0x45, 0x76, 0x6d, 0x1a, 0x95, 0x02, 0x0a, 0x03, 0x4c, + 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x64, 0x1a, 0x86, 0x04, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, + 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, + 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, + 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x73, 0x42, 0x6c, 0x6f, 0x6f, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x62, 0x47, + 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x62, 0x6c, 0x6f, 0x62, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x1a, 0xa9, 0x03, 0x0a, 0x06, + 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x24, + 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x73, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, + 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, + 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0f, + 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x65, 0x65, 0x50, 0x65, 0x72, + 0x47, 0x61, 0x73, 0x12, 0x36, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x46, 0x65, 0x65, 0x50, 0x65, 0x72, 0x47, 0x61, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, + 0x61, 0x79, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x41, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2a, 0xdf, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x70, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x10, 0xe8, 0x07, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0xd0, 0x0f, 0x12, 0x16, + 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x70, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xf0, 0x2e, + 0x12, 0x1d, 0x0a, 0x18, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xf1, 0x2e, 0x12, + 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x72, 0x72, 0x75, + 0x70, 0x74, 0x65, 0x64, 0x10, 0xd8, 0x36, 0x12, 0x19, 0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0xd9, 0x36, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xdb, 0x36, 0x2a, 0x50, 0x0a, 0x0a, 0x54, 0x61, 0x73, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0c, + 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x2a, 0x2b, 0x0a, 0x0f, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, + 0x0a, 0x06, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x02, 0x2a, 0x20, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, + 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x00, 0x32, 0xcb, 0x0b, 0x0a, 0x0a, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x06, 0x47, 0x65, 0x74, + 0x4b, 0x65, 0x79, 0x12, 0x15, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x3d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, - 0x6c, 0x65, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, - 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0b, 0x4c, 0x69, - 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x09, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, 0x0a, - 0x07, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x00, 0x12, - 0x51, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x1e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, + 0x65, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, + 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x12, 0x11, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, + 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x51, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x12, 0x23, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x76, 0x73, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, + 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, + 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x11, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x00, 0x12, 0x3d, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x11, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x49, 0x64, 0x52, + 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, + 0x12, 0x50, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x1e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, + 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, + 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x23, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x76, + 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_protobuf_avs_proto_rawDescOnce sync.Once - file_protobuf_avs_proto_rawDescData = file_protobuf_avs_proto_rawDesc + file_avs_proto_rawDescOnce sync.Once + file_avs_proto_rawDescData = file_avs_proto_rawDesc ) -func file_protobuf_avs_proto_rawDescGZIP() []byte { - file_protobuf_avs_proto_rawDescOnce.Do(func() { - file_protobuf_avs_proto_rawDescData = protoimpl.X.CompressGZIP(file_protobuf_avs_proto_rawDescData) +func file_avs_proto_rawDescGZIP() []byte { + file_avs_proto_rawDescOnce.Do(func() { + file_avs_proto_rawDescData = protoimpl.X.CompressGZIP(file_avs_proto_rawDescData) }) - return file_protobuf_avs_proto_rawDescData + return file_avs_proto_rawDescData } -var file_protobuf_avs_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_protobuf_avs_proto_msgTypes = make([]protoimpl.MessageInfo, 70) -var file_protobuf_avs_proto_goTypes = []interface{}{ +var file_avs_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_avs_proto_msgTypes = make([]protoimpl.MessageInfo, 72) +var file_avs_proto_goTypes = []interface{}{ (Error)(0), // 0: aggregator.Error (TaskStatus)(0), // 1: aggregator.TaskStatus (ExecutionStatus)(0), // 2: aggregator.ExecutionStatus @@ -6253,41 +6401,43 @@ var file_protobuf_avs_proto_goTypes = []interface{}{ (*GetWorkflowCountResp)(nil), // 50: aggregator.GetWorkflowCountResp (*GetExecutionCountReq)(nil), // 51: aggregator.GetExecutionCountReq (*GetExecutionCountResp)(nil), // 52: aggregator.GetExecutionCountResp - (*Evm)(nil), // 53: aggregator.Evm - (*EventCondition_Matcher)(nil), // 54: aggregator.EventCondition.Matcher - (*ETHTransferNode_Output)(nil), // 55: aggregator.ETHTransferNode.Output - (*ContractWriteNode_Output)(nil), // 56: aggregator.ContractWriteNode.Output - (*ContractReadNode_Output)(nil), // 57: aggregator.ContractReadNode.Output - nil, // 58: aggregator.GraphQLQueryNode.VariablesEntry - (*GraphQLQueryNode_Output)(nil), // 59: aggregator.GraphQLQueryNode.Output - nil, // 60: aggregator.RestAPINode.HeadersEntry - (*RestAPINode_Output)(nil), // 61: aggregator.RestAPINode.Output - (*CustomCodeNode_Output)(nil), // 62: aggregator.CustomCodeNode.Output - (*BranchNode_Output)(nil), // 63: aggregator.BranchNode.Output - (*FilterNode_Output)(nil), // 64: aggregator.FilterNode.Output - (*LoopNode_Output)(nil), // 65: aggregator.LoopNode.Output - (*Execution_Step)(nil), // 66: aggregator.Execution.Step - (*Execution_TransferLogOutput)(nil), // 67: aggregator.Execution.TransferLogOutput - (*Execution_BlockOutput)(nil), // 68: aggregator.Execution.BlockOutput - (*Execution_TimeOutput)(nil), // 69: aggregator.Execution.TimeOutput - (*ListTasksResp_Item)(nil), // 70: aggregator.ListTasksResp.Item - (*ListSecretsResp_ResponseSecret)(nil), // 71: aggregator.ListSecretsResp.ResponseSecret - (*Evm_Log)(nil), // 72: aggregator.Evm.Log - (*Evm_TransactionReceipt)(nil), // 73: aggregator.Evm.TransactionReceipt - (*Evm_UserOp)(nil), // 74: aggregator.Evm.UserOp - (*timestamppb.Timestamp)(nil), // 75: google.protobuf.Timestamp - (*structpb.Value)(nil), // 76: google.protobuf.Value - (*anypb.Any)(nil), // 77: google.protobuf.Any - (*wrapperspb.BoolValue)(nil), // 78: google.protobuf.BoolValue -} -var file_protobuf_avs_proto_depIdxs = []int32{ - 54, // 0: aggregator.EventCondition.matcher:type_name -> aggregator.EventCondition.Matcher + (*GetExecutionStatsReq)(nil), // 53: aggregator.GetExecutionStatsReq + (*GetExecutionStatsResp)(nil), // 54: aggregator.GetExecutionStatsResp + (*Evm)(nil), // 55: aggregator.Evm + (*EventCondition_Matcher)(nil), // 56: aggregator.EventCondition.Matcher + (*ETHTransferNode_Output)(nil), // 57: aggregator.ETHTransferNode.Output + (*ContractWriteNode_Output)(nil), // 58: aggregator.ContractWriteNode.Output + (*ContractReadNode_Output)(nil), // 59: aggregator.ContractReadNode.Output + nil, // 60: aggregator.GraphQLQueryNode.VariablesEntry + (*GraphQLQueryNode_Output)(nil), // 61: aggregator.GraphQLQueryNode.Output + nil, // 62: aggregator.RestAPINode.HeadersEntry + (*RestAPINode_Output)(nil), // 63: aggregator.RestAPINode.Output + (*CustomCodeNode_Output)(nil), // 64: aggregator.CustomCodeNode.Output + (*BranchNode_Output)(nil), // 65: aggregator.BranchNode.Output + (*FilterNode_Output)(nil), // 66: aggregator.FilterNode.Output + (*LoopNode_Output)(nil), // 67: aggregator.LoopNode.Output + (*Execution_Step)(nil), // 68: aggregator.Execution.Step + (*Execution_TransferLogOutput)(nil), // 69: aggregator.Execution.TransferLogOutput + (*Execution_BlockOutput)(nil), // 70: aggregator.Execution.BlockOutput + (*Execution_TimeOutput)(nil), // 71: aggregator.Execution.TimeOutput + (*ListTasksResp_Item)(nil), // 72: aggregator.ListTasksResp.Item + (*ListSecretsResp_ResponseSecret)(nil), // 73: aggregator.ListSecretsResp.ResponseSecret + (*Evm_Log)(nil), // 74: aggregator.Evm.Log + (*Evm_TransactionReceipt)(nil), // 75: aggregator.Evm.TransactionReceipt + (*Evm_UserOp)(nil), // 76: aggregator.Evm.UserOp + (*timestamp.Timestamp)(nil), // 77: google.protobuf.Timestamp + (*_struct.Value)(nil), // 78: google.protobuf.Value + (*any1.Any)(nil), // 79: google.protobuf.Any + (*wrappers.BoolValue)(nil), // 80: google.protobuf.BoolValue +} +var file_avs_proto_depIdxs = []int32{ + 56, // 0: aggregator.EventCondition.matcher:type_name -> aggregator.EventCondition.Matcher 6, // 1: aggregator.TaskTrigger.fixed_time:type_name -> aggregator.FixedTimeCondition 7, // 2: aggregator.TaskTrigger.cron:type_name -> aggregator.CronCondition 8, // 3: aggregator.TaskTrigger.block:type_name -> aggregator.BlockCondition 9, // 4: aggregator.TaskTrigger.event:type_name -> aggregator.EventCondition - 58, // 5: aggregator.GraphQLQueryNode.variables:type_name -> aggregator.GraphQLQueryNode.VariablesEntry - 60, // 6: aggregator.RestAPINode.headers:type_name -> aggregator.RestAPINode.HeadersEntry + 60, // 5: aggregator.GraphQLQueryNode.variables:type_name -> aggregator.GraphQLQueryNode.VariablesEntry + 62, // 6: aggregator.RestAPINode.headers:type_name -> aggregator.RestAPINode.HeadersEntry 3, // 7: aggregator.CustomCodeNode.lang:type_name -> aggregator.CustomCodeLang 17, // 8: aggregator.BranchNode.conditions:type_name -> aggregator.Condition 11, // 9: aggregator.LoopNode.eth_transfer:type_name -> aggregator.ETHTransferNode @@ -6306,11 +6456,11 @@ var file_protobuf_avs_proto_depIdxs = []int32{ 20, // 22: aggregator.TaskNode.loop:type_name -> aggregator.LoopNode 16, // 23: aggregator.TaskNode.custom_code:type_name -> aggregator.CustomCodeNode 40, // 24: aggregator.Execution.reason:type_name -> aggregator.TriggerReason - 66, // 25: aggregator.Execution.steps:type_name -> aggregator.Execution.Step - 67, // 26: aggregator.Execution.transfer_log:type_name -> aggregator.Execution.TransferLogOutput - 72, // 27: aggregator.Execution.evm_log:type_name -> aggregator.Evm.Log - 68, // 28: aggregator.Execution.block:type_name -> aggregator.Execution.BlockOutput - 69, // 29: aggregator.Execution.time:type_name -> aggregator.Execution.TimeOutput + 68, // 25: aggregator.Execution.steps:type_name -> aggregator.Execution.Step + 69, // 26: aggregator.Execution.transfer_log:type_name -> aggregator.Execution.TransferLogOutput + 74, // 27: aggregator.Execution.evm_log:type_name -> aggregator.Evm.Log + 70, // 28: aggregator.Execution.block:type_name -> aggregator.Execution.BlockOutput + 71, // 29: aggregator.Execution.time:type_name -> aggregator.Execution.TimeOutput 1, // 30: aggregator.Task.status:type_name -> aggregator.TaskStatus 10, // 31: aggregator.Task.trigger:type_name -> aggregator.TaskTrigger 22, // 32: aggregator.Task.nodes:type_name -> aggregator.TaskNode @@ -6319,31 +6469,31 @@ var file_protobuf_avs_proto_depIdxs = []int32{ 22, // 35: aggregator.CreateTaskReq.nodes:type_name -> aggregator.TaskNode 21, // 36: aggregator.CreateTaskReq.edges:type_name -> aggregator.TaskEdge 30, // 37: aggregator.ListWalletResp.items:type_name -> aggregator.SmartWallet - 70, // 38: aggregator.ListTasksResp.items:type_name -> aggregator.ListTasksResp.Item + 72, // 38: aggregator.ListTasksResp.items:type_name -> aggregator.ListTasksResp.Item 23, // 39: aggregator.ListExecutionsResp.items:type_name -> aggregator.Execution 2, // 40: aggregator.ExecutionStatusResp.status:type_name -> aggregator.ExecutionStatus - 75, // 41: aggregator.GetKeyReq.issued_at:type_name -> google.protobuf.Timestamp - 75, // 42: aggregator.GetKeyReq.expired_at:type_name -> google.protobuf.Timestamp + 77, // 41: aggregator.GetKeyReq.issued_at:type_name -> google.protobuf.Timestamp + 77, // 42: aggregator.GetKeyReq.expired_at:type_name -> google.protobuf.Timestamp 4, // 43: aggregator.TriggerReason.type:type_name -> aggregator.TriggerReason.TriggerType 40, // 44: aggregator.UserTriggerTaskReq.reason:type_name -> aggregator.TriggerReason 2, // 45: aggregator.UserTriggerTaskResp.status:type_name -> aggregator.ExecutionStatus - 71, // 46: aggregator.ListSecretsResp.items:type_name -> aggregator.ListSecretsResp.ResponseSecret - 74, // 47: aggregator.ContractWriteNode.Output.user_op:type_name -> aggregator.Evm.UserOp - 73, // 48: aggregator.ContractWriteNode.Output.tx_receipt:type_name -> aggregator.Evm.TransactionReceipt - 76, // 49: aggregator.ContractReadNode.Output.data:type_name -> google.protobuf.Value - 77, // 50: aggregator.GraphQLQueryNode.Output.data:type_name -> google.protobuf.Any - 77, // 51: aggregator.RestAPINode.Output.data:type_name -> google.protobuf.Any - 77, // 52: aggregator.CustomCodeNode.Output.data:type_name -> google.protobuf.Any - 77, // 53: aggregator.FilterNode.Output.data:type_name -> google.protobuf.Any - 55, // 54: aggregator.Execution.Step.eth_transfer:type_name -> aggregator.ETHTransferNode.Output - 59, // 55: aggregator.Execution.Step.graphql:type_name -> aggregator.GraphQLQueryNode.Output - 57, // 56: aggregator.Execution.Step.contract_read:type_name -> aggregator.ContractReadNode.Output - 56, // 57: aggregator.Execution.Step.contract_write:type_name -> aggregator.ContractWriteNode.Output - 62, // 58: aggregator.Execution.Step.custom_code:type_name -> aggregator.CustomCodeNode.Output - 61, // 59: aggregator.Execution.Step.rest_api:type_name -> aggregator.RestAPINode.Output - 63, // 60: aggregator.Execution.Step.branch:type_name -> aggregator.BranchNode.Output - 64, // 61: aggregator.Execution.Step.filter:type_name -> aggregator.FilterNode.Output - 65, // 62: aggregator.Execution.Step.loop:type_name -> aggregator.LoopNode.Output + 73, // 46: aggregator.ListSecretsResp.items:type_name -> aggregator.ListSecretsResp.ResponseSecret + 76, // 47: aggregator.ContractWriteNode.Output.user_op:type_name -> aggregator.Evm.UserOp + 75, // 48: aggregator.ContractWriteNode.Output.tx_receipt:type_name -> aggregator.Evm.TransactionReceipt + 78, // 49: aggregator.ContractReadNode.Output.data:type_name -> google.protobuf.Value + 79, // 50: aggregator.GraphQLQueryNode.Output.data:type_name -> google.protobuf.Any + 79, // 51: aggregator.RestAPINode.Output.data:type_name -> google.protobuf.Any + 79, // 52: aggregator.CustomCodeNode.Output.data:type_name -> google.protobuf.Any + 79, // 53: aggregator.FilterNode.Output.data:type_name -> google.protobuf.Any + 57, // 54: aggregator.Execution.Step.eth_transfer:type_name -> aggregator.ETHTransferNode.Output + 61, // 55: aggregator.Execution.Step.graphql:type_name -> aggregator.GraphQLQueryNode.Output + 59, // 56: aggregator.Execution.Step.contract_read:type_name -> aggregator.ContractReadNode.Output + 58, // 57: aggregator.Execution.Step.contract_write:type_name -> aggregator.ContractWriteNode.Output + 64, // 58: aggregator.Execution.Step.custom_code:type_name -> aggregator.CustomCodeNode.Output + 63, // 59: aggregator.Execution.Step.rest_api:type_name -> aggregator.RestAPINode.Output + 65, // 60: aggregator.Execution.Step.branch:type_name -> aggregator.BranchNode.Output + 66, // 61: aggregator.Execution.Step.filter:type_name -> aggregator.FilterNode.Output + 67, // 62: aggregator.Execution.Step.loop:type_name -> aggregator.LoopNode.Output 1, // 63: aggregator.ListTasksResp.Item.status:type_name -> aggregator.TaskStatus 10, // 64: aggregator.ListTasksResp.Item.trigger:type_name -> aggregator.TaskTrigger 38, // 65: aggregator.Aggregator.GetKey:input_type -> aggregator.GetKeyReq @@ -6365,39 +6515,41 @@ var file_protobuf_avs_proto_depIdxs = []int32{ 45, // 81: aggregator.Aggregator.UpdateSecret:input_type -> aggregator.CreateOrUpdateSecretReq 49, // 82: aggregator.Aggregator.GetWorkflowCount:input_type -> aggregator.GetWorkflowCountReq 51, // 83: aggregator.Aggregator.GetExecutionCount:input_type -> aggregator.GetExecutionCountReq - 39, // 84: aggregator.Aggregator.GetKey:output_type -> aggregator.KeyResp - 28, // 85: aggregator.Aggregator.GetNonce:output_type -> aggregator.NonceResp - 42, // 86: aggregator.Aggregator.GetWallet:output_type -> aggregator.GetWalletResp - 31, // 87: aggregator.Aggregator.ListWallets:output_type -> aggregator.ListWalletResp - 26, // 88: aggregator.Aggregator.CreateTask:output_type -> aggregator.CreateTaskResp - 33, // 89: aggregator.Aggregator.ListTasks:output_type -> aggregator.ListTasksResp - 24, // 90: aggregator.Aggregator.GetTask:output_type -> aggregator.Task - 35, // 91: aggregator.Aggregator.ListExecutions:output_type -> aggregator.ListExecutionsResp - 23, // 92: aggregator.Aggregator.GetExecution:output_type -> aggregator.Execution - 37, // 93: aggregator.Aggregator.GetExecutionStatus:output_type -> aggregator.ExecutionStatusResp - 78, // 94: aggregator.Aggregator.CancelTask:output_type -> google.protobuf.BoolValue - 78, // 95: aggregator.Aggregator.DeleteTask:output_type -> google.protobuf.BoolValue - 44, // 96: aggregator.Aggregator.TriggerTask:output_type -> aggregator.UserTriggerTaskResp - 78, // 97: aggregator.Aggregator.CreateSecret:output_type -> google.protobuf.BoolValue - 78, // 98: aggregator.Aggregator.DeleteSecret:output_type -> google.protobuf.BoolValue - 47, // 99: aggregator.Aggregator.ListSecrets:output_type -> aggregator.ListSecretsResp - 78, // 100: aggregator.Aggregator.UpdateSecret:output_type -> google.protobuf.BoolValue - 50, // 101: aggregator.Aggregator.GetWorkflowCount:output_type -> aggregator.GetWorkflowCountResp - 52, // 102: aggregator.Aggregator.GetExecutionCount:output_type -> aggregator.GetExecutionCountResp - 84, // [84:103] is the sub-list for method output_type - 65, // [65:84] is the sub-list for method input_type + 53, // 84: aggregator.Aggregator.GetExecutionStats:input_type -> aggregator.GetExecutionStatsReq + 39, // 85: aggregator.Aggregator.GetKey:output_type -> aggregator.KeyResp + 28, // 86: aggregator.Aggregator.GetNonce:output_type -> aggregator.NonceResp + 42, // 87: aggregator.Aggregator.GetWallet:output_type -> aggregator.GetWalletResp + 31, // 88: aggregator.Aggregator.ListWallets:output_type -> aggregator.ListWalletResp + 26, // 89: aggregator.Aggregator.CreateTask:output_type -> aggregator.CreateTaskResp + 33, // 90: aggregator.Aggregator.ListTasks:output_type -> aggregator.ListTasksResp + 24, // 91: aggregator.Aggregator.GetTask:output_type -> aggregator.Task + 35, // 92: aggregator.Aggregator.ListExecutions:output_type -> aggregator.ListExecutionsResp + 23, // 93: aggregator.Aggregator.GetExecution:output_type -> aggregator.Execution + 37, // 94: aggregator.Aggregator.GetExecutionStatus:output_type -> aggregator.ExecutionStatusResp + 80, // 95: aggregator.Aggregator.CancelTask:output_type -> google.protobuf.BoolValue + 80, // 96: aggregator.Aggregator.DeleteTask:output_type -> google.protobuf.BoolValue + 44, // 97: aggregator.Aggregator.TriggerTask:output_type -> aggregator.UserTriggerTaskResp + 80, // 98: aggregator.Aggregator.CreateSecret:output_type -> google.protobuf.BoolValue + 80, // 99: aggregator.Aggregator.DeleteSecret:output_type -> google.protobuf.BoolValue + 47, // 100: aggregator.Aggregator.ListSecrets:output_type -> aggregator.ListSecretsResp + 80, // 101: aggregator.Aggregator.UpdateSecret:output_type -> google.protobuf.BoolValue + 50, // 102: aggregator.Aggregator.GetWorkflowCount:output_type -> aggregator.GetWorkflowCountResp + 52, // 103: aggregator.Aggregator.GetExecutionCount:output_type -> aggregator.GetExecutionCountResp + 54, // 104: aggregator.Aggregator.GetExecutionStats:output_type -> aggregator.GetExecutionStatsResp + 85, // [85:105] is the sub-list for method output_type + 65, // [65:85] is the sub-list for method input_type 65, // [65:65] is the sub-list for extension type_name 65, // [65:65] is the sub-list for extension extendee 0, // [0:65] is the sub-list for field type_name } -func init() { file_protobuf_avs_proto_init() } -func file_protobuf_avs_proto_init() { - if File_protobuf_avs_proto != nil { +func init() { file_avs_proto_init() } +func file_avs_proto_init() { + if File_avs_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_protobuf_avs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IdReq); i { case 0: return &v.state @@ -6409,7 +6561,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FixedTimeCondition); i { case 0: return &v.state @@ -6421,7 +6573,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CronCondition); i { case 0: return &v.state @@ -6433,7 +6585,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockCondition); i { case 0: return &v.state @@ -6445,7 +6597,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventCondition); i { case 0: return &v.state @@ -6457,7 +6609,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TaskTrigger); i { case 0: return &v.state @@ -6469,7 +6621,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ETHTransferNode); i { case 0: return &v.state @@ -6481,7 +6633,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractWriteNode); i { case 0: return &v.state @@ -6493,7 +6645,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractReadNode); i { case 0: return &v.state @@ -6505,7 +6657,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GraphQLQueryNode); i { case 0: return &v.state @@ -6517,7 +6669,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestAPINode); i { case 0: return &v.state @@ -6529,7 +6681,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomCodeNode); i { case 0: return &v.state @@ -6541,7 +6693,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Condition); i { case 0: return &v.state @@ -6553,7 +6705,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BranchNode); i { case 0: return &v.state @@ -6565,7 +6717,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterNode); i { case 0: return &v.state @@ -6577,7 +6729,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoopNode); i { case 0: return &v.state @@ -6589,7 +6741,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TaskEdge); i { case 0: return &v.state @@ -6601,7 +6753,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TaskNode); i { case 0: return &v.state @@ -6613,7 +6765,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Execution); i { case 0: return &v.state @@ -6625,7 +6777,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Task); i { case 0: return &v.state @@ -6637,7 +6789,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateTaskReq); i { case 0: return &v.state @@ -6649,7 +6801,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateTaskResp); i { case 0: return &v.state @@ -6661,7 +6813,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NonceRequest); i { case 0: return &v.state @@ -6673,7 +6825,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NonceResp); i { case 0: return &v.state @@ -6685,7 +6837,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWalletReq); i { case 0: return &v.state @@ -6697,7 +6849,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SmartWallet); i { case 0: return &v.state @@ -6709,7 +6861,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWalletResp); i { case 0: return &v.state @@ -6721,7 +6873,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListTasksReq); i { case 0: return &v.state @@ -6733,7 +6885,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListTasksResp); i { case 0: return &v.state @@ -6745,7 +6897,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListExecutionsReq); i { case 0: return &v.state @@ -6757,7 +6909,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListExecutionsResp); i { case 0: return &v.state @@ -6769,7 +6921,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecutionReq); i { case 0: return &v.state @@ -6781,7 +6933,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExecutionStatusResp); i { case 0: return &v.state @@ -6793,7 +6945,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetKeyReq); i { case 0: return &v.state @@ -6805,7 +6957,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeyResp); i { case 0: return &v.state @@ -6817,7 +6969,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TriggerReason); i { case 0: return &v.state @@ -6829,7 +6981,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWalletReq); i { case 0: return &v.state @@ -6841,7 +6993,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWalletResp); i { case 0: return &v.state @@ -6853,7 +7005,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserTriggerTaskReq); i { case 0: return &v.state @@ -6865,7 +7017,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserTriggerTaskResp); i { case 0: return &v.state @@ -6877,7 +7029,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateOrUpdateSecretReq); i { case 0: return &v.state @@ -6889,7 +7041,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSecretsReq); i { case 0: return &v.state @@ -6901,7 +7053,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSecretsResp); i { case 0: return &v.state @@ -6913,7 +7065,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteSecretReq); i { case 0: return &v.state @@ -6925,7 +7077,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWorkflowCountReq); i { case 0: return &v.state @@ -6937,7 +7089,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWorkflowCountResp); i { case 0: return &v.state @@ -6949,7 +7101,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExecutionCountReq); i { case 0: return &v.state @@ -6961,7 +7113,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExecutionCountResp); i { case 0: return &v.state @@ -6973,7 +7125,31 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExecutionStatsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_avs_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExecutionStatsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_avs_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Evm); i { case 0: return &v.state @@ -6985,7 +7161,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventCondition_Matcher); i { case 0: return &v.state @@ -6997,7 +7173,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ETHTransferNode_Output); i { case 0: return &v.state @@ -7009,7 +7185,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractWriteNode_Output); i { case 0: return &v.state @@ -7021,7 +7197,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractReadNode_Output); i { case 0: return &v.state @@ -7033,7 +7209,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GraphQLQueryNode_Output); i { case 0: return &v.state @@ -7045,7 +7221,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestAPINode_Output); i { case 0: return &v.state @@ -7057,7 +7233,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomCodeNode_Output); i { case 0: return &v.state @@ -7069,7 +7245,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BranchNode_Output); i { case 0: return &v.state @@ -7081,7 +7257,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterNode_Output); i { case 0: return &v.state @@ -7093,7 +7269,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoopNode_Output); i { case 0: return &v.state @@ -7105,7 +7281,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Execution_Step); i { case 0: return &v.state @@ -7117,7 +7293,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Execution_TransferLogOutput); i { case 0: return &v.state @@ -7129,7 +7305,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Execution_BlockOutput); i { case 0: return &v.state @@ -7141,7 +7317,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Execution_TimeOutput); i { case 0: return &v.state @@ -7153,7 +7329,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListTasksResp_Item); i { case 0: return &v.state @@ -7165,7 +7341,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSecretsResp_ResponseSecret); i { case 0: return &v.state @@ -7177,7 +7353,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Evm_Log); i { case 0: return &v.state @@ -7189,7 +7365,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Evm_TransactionReceipt); i { case 0: return &v.state @@ -7201,7 +7377,7 @@ func file_protobuf_avs_proto_init() { return nil } } - file_protobuf_avs_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_avs_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Evm_UserOp); i { case 0: return &v.state @@ -7214,14 +7390,14 @@ func file_protobuf_avs_proto_init() { } } } - file_protobuf_avs_proto_msgTypes[5].OneofWrappers = []interface{}{ + file_avs_proto_msgTypes[5].OneofWrappers = []interface{}{ (*TaskTrigger_Manual)(nil), (*TaskTrigger_FixedTime)(nil), (*TaskTrigger_Cron)(nil), (*TaskTrigger_Block)(nil), (*TaskTrigger_Event)(nil), } - file_protobuf_avs_proto_msgTypes[15].OneofWrappers = []interface{}{ + file_avs_proto_msgTypes[15].OneofWrappers = []interface{}{ (*LoopNode_EthTransfer)(nil), (*LoopNode_ContractWrite)(nil), (*LoopNode_ContractRead)(nil), @@ -7229,7 +7405,7 @@ func file_protobuf_avs_proto_init() { (*LoopNode_RestApi)(nil), (*LoopNode_CustomCode)(nil), } - file_protobuf_avs_proto_msgTypes[17].OneofWrappers = []interface{}{ + file_avs_proto_msgTypes[17].OneofWrappers = []interface{}{ (*TaskNode_EthTransfer)(nil), (*TaskNode_ContractWrite)(nil), (*TaskNode_ContractRead)(nil), @@ -7240,13 +7416,13 @@ func file_protobuf_avs_proto_init() { (*TaskNode_Loop)(nil), (*TaskNode_CustomCode)(nil), } - file_protobuf_avs_proto_msgTypes[18].OneofWrappers = []interface{}{ + file_avs_proto_msgTypes[18].OneofWrappers = []interface{}{ (*Execution_TransferLog)(nil), (*Execution_EvmLog)(nil), (*Execution_Block)(nil), (*Execution_Time)(nil), } - file_protobuf_avs_proto_msgTypes[61].OneofWrappers = []interface{}{ + file_avs_proto_msgTypes[63].OneofWrappers = []interface{}{ (*Execution_Step_EthTransfer)(nil), (*Execution_Step_Graphql)(nil), (*Execution_Step_ContractRead)(nil), @@ -7261,19 +7437,19 @@ func file_protobuf_avs_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_protobuf_avs_proto_rawDesc, + RawDescriptor: file_avs_proto_rawDesc, NumEnums: 5, - NumMessages: 70, + NumMessages: 72, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_protobuf_avs_proto_goTypes, - DependencyIndexes: file_protobuf_avs_proto_depIdxs, - EnumInfos: file_protobuf_avs_proto_enumTypes, - MessageInfos: file_protobuf_avs_proto_msgTypes, + GoTypes: file_avs_proto_goTypes, + DependencyIndexes: file_avs_proto_depIdxs, + EnumInfos: file_avs_proto_enumTypes, + MessageInfos: file_avs_proto_msgTypes, }.Build() - File_protobuf_avs_proto = out.File - file_protobuf_avs_proto_rawDesc = nil - file_protobuf_avs_proto_goTypes = nil - file_protobuf_avs_proto_depIdxs = nil + File_avs_proto = out.File + file_avs_proto_rawDesc = nil + file_avs_proto_goTypes = nil + file_avs_proto_depIdxs = nil } diff --git a/protobuf/avs_grpc.pb.go b/protobuf/avs_grpc.pb.go index 0daf8bda..fe5a65a2 100644 --- a/protobuf/avs_grpc.pb.go +++ b/protobuf/avs_grpc.pb.go @@ -1,17 +1,17 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v5.29.3 -// source: protobuf/avs.proto +// - protoc v3.12.4 +// source: avs.proto package avsproto import ( context "context" + wrappers "github.com/golang/protobuf/ptypes/wrappers" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) // This is a compile-time assertion to ensure that this generated file @@ -36,20 +36,20 @@ type AggregatorClient interface { ListExecutions(ctx context.Context, in *ListExecutionsReq, opts ...grpc.CallOption) (*ListExecutionsResp, error) GetExecution(ctx context.Context, in *ExecutionReq, opts ...grpc.CallOption) (*Execution, error) GetExecutionStatus(ctx context.Context, in *ExecutionReq, opts ...grpc.CallOption) (*ExecutionStatusResp, error) - CancelTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) - DeleteTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) + CancelTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) + DeleteTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) TriggerTask(ctx context.Context, in *UserTriggerTaskReq, opts ...grpc.CallOption) (*UserTriggerTaskResp, error) // CreateSecret allow you to define a secret to be used in your tasks. The secret can be used with a special syntax of ${{secrets.name }}. // You can decide whether to grant secret to a single workflow or many workflow, or all of your workflow // By default, your secret is available across all of your tasks. - CreateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) - DeleteSecret(ctx context.Context, in *DeleteSecretReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) + CreateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) + DeleteSecret(ctx context.Context, in *DeleteSecretReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) // Return all secrets belong to this user. Currently we don't support any fine tune or filter yet. // Only secret names and config data are returned. The secret value aren't returned. ListSecrets(ctx context.Context, in *ListSecretsReq, opts ...grpc.CallOption) (*ListSecretsResp, error) // For simplicity, currently only the user who create the secrets can update its value, or update its permission. // The current implementation is also limited, update is an override action, not an appending action. So when updating, you need to pass the whole payload - UpdateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) + UpdateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) // The spec of these 2 RPCs are based on the following issue: // Reference: https://github.com/AvaProtocol/EigenLayer-AVS/issues/150 // GetWorkflowCount returns the total count of workflows for the given eoa addresses or a list of smart wallet addresses belongs to the eoa in the auth key @@ -62,6 +62,10 @@ type AggregatorClient interface { // Workflow IDs not found in the system are ignored. // Workflow IDs not linked to the EOA in the auth key are also ignored. GetExecutionCount(ctx context.Context, in *GetExecutionCountReq, opts ...grpc.CallOption) (*GetExecutionCountResp, error) + // GetExecutionStats returns execution statistics for a specified time period + // It counts total executions, successful executions, and failed executions + // If no workflow IDs are provided, it counts for all workflows of the authenticated user + GetExecutionStats(ctx context.Context, in *GetExecutionStatsReq, opts ...grpc.CallOption) (*GetExecutionStatsResp, error) } type aggregatorClient struct { @@ -162,8 +166,8 @@ func (c *aggregatorClient) GetExecutionStatus(ctx context.Context, in *Execution return out, nil } -func (c *aggregatorClient) CancelTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) { - out := new(wrapperspb.BoolValue) +func (c *aggregatorClient) CancelTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) { + out := new(wrappers.BoolValue) err := c.cc.Invoke(ctx, "/aggregator.Aggregator/CancelTask", in, out, opts...) if err != nil { return nil, err @@ -171,8 +175,8 @@ func (c *aggregatorClient) CancelTask(ctx context.Context, in *IdReq, opts ...gr return out, nil } -func (c *aggregatorClient) DeleteTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) { - out := new(wrapperspb.BoolValue) +func (c *aggregatorClient) DeleteTask(ctx context.Context, in *IdReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) { + out := new(wrappers.BoolValue) err := c.cc.Invoke(ctx, "/aggregator.Aggregator/DeleteTask", in, out, opts...) if err != nil { return nil, err @@ -189,8 +193,8 @@ func (c *aggregatorClient) TriggerTask(ctx context.Context, in *UserTriggerTaskR return out, nil } -func (c *aggregatorClient) CreateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) { - out := new(wrapperspb.BoolValue) +func (c *aggregatorClient) CreateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) { + out := new(wrappers.BoolValue) err := c.cc.Invoke(ctx, "/aggregator.Aggregator/CreateSecret", in, out, opts...) if err != nil { return nil, err @@ -198,8 +202,8 @@ func (c *aggregatorClient) CreateSecret(ctx context.Context, in *CreateOrUpdateS return out, nil } -func (c *aggregatorClient) DeleteSecret(ctx context.Context, in *DeleteSecretReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) { - out := new(wrapperspb.BoolValue) +func (c *aggregatorClient) DeleteSecret(ctx context.Context, in *DeleteSecretReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) { + out := new(wrappers.BoolValue) err := c.cc.Invoke(ctx, "/aggregator.Aggregator/DeleteSecret", in, out, opts...) if err != nil { return nil, err @@ -216,8 +220,8 @@ func (c *aggregatorClient) ListSecrets(ctx context.Context, in *ListSecretsReq, return out, nil } -func (c *aggregatorClient) UpdateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) { - out := new(wrapperspb.BoolValue) +func (c *aggregatorClient) UpdateSecret(ctx context.Context, in *CreateOrUpdateSecretReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) { + out := new(wrappers.BoolValue) err := c.cc.Invoke(ctx, "/aggregator.Aggregator/UpdateSecret", in, out, opts...) if err != nil { return nil, err @@ -243,6 +247,15 @@ func (c *aggregatorClient) GetExecutionCount(ctx context.Context, in *GetExecuti return out, nil } +func (c *aggregatorClient) GetExecutionStats(ctx context.Context, in *GetExecutionStatsReq, opts ...grpc.CallOption) (*GetExecutionStatsResp, error) { + out := new(GetExecutionStatsResp) + err := c.cc.Invoke(ctx, "/aggregator.Aggregator/GetExecutionStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // AggregatorServer is the server API for Aggregator service. // All implementations must embed UnimplementedAggregatorServer // for forward compatibility @@ -260,20 +273,20 @@ type AggregatorServer interface { ListExecutions(context.Context, *ListExecutionsReq) (*ListExecutionsResp, error) GetExecution(context.Context, *ExecutionReq) (*Execution, error) GetExecutionStatus(context.Context, *ExecutionReq) (*ExecutionStatusResp, error) - CancelTask(context.Context, *IdReq) (*wrapperspb.BoolValue, error) - DeleteTask(context.Context, *IdReq) (*wrapperspb.BoolValue, error) + CancelTask(context.Context, *IdReq) (*wrappers.BoolValue, error) + DeleteTask(context.Context, *IdReq) (*wrappers.BoolValue, error) TriggerTask(context.Context, *UserTriggerTaskReq) (*UserTriggerTaskResp, error) // CreateSecret allow you to define a secret to be used in your tasks. The secret can be used with a special syntax of ${{secrets.name }}. // You can decide whether to grant secret to a single workflow or many workflow, or all of your workflow // By default, your secret is available across all of your tasks. - CreateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrapperspb.BoolValue, error) - DeleteSecret(context.Context, *DeleteSecretReq) (*wrapperspb.BoolValue, error) + CreateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrappers.BoolValue, error) + DeleteSecret(context.Context, *DeleteSecretReq) (*wrappers.BoolValue, error) // Return all secrets belong to this user. Currently we don't support any fine tune or filter yet. // Only secret names and config data are returned. The secret value aren't returned. ListSecrets(context.Context, *ListSecretsReq) (*ListSecretsResp, error) // For simplicity, currently only the user who create the secrets can update its value, or update its permission. // The current implementation is also limited, update is an override action, not an appending action. So when updating, you need to pass the whole payload - UpdateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrapperspb.BoolValue, error) + UpdateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrappers.BoolValue, error) // The spec of these 2 RPCs are based on the following issue: // Reference: https://github.com/AvaProtocol/EigenLayer-AVS/issues/150 // GetWorkflowCount returns the total count of workflows for the given eoa addresses or a list of smart wallet addresses belongs to the eoa in the auth key @@ -286,6 +299,10 @@ type AggregatorServer interface { // Workflow IDs not found in the system are ignored. // Workflow IDs not linked to the EOA in the auth key are also ignored. GetExecutionCount(context.Context, *GetExecutionCountReq) (*GetExecutionCountResp, error) + // GetExecutionStats returns execution statistics for a specified time period + // It counts total executions, successful executions, and failed executions + // If no workflow IDs are provided, it counts for all workflows of the authenticated user + GetExecutionStats(context.Context, *GetExecutionStatsReq) (*GetExecutionStatsResp, error) mustEmbedUnimplementedAggregatorServer() } @@ -323,25 +340,25 @@ func (UnimplementedAggregatorServer) GetExecution(context.Context, *ExecutionReq func (UnimplementedAggregatorServer) GetExecutionStatus(context.Context, *ExecutionReq) (*ExecutionStatusResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExecutionStatus not implemented") } -func (UnimplementedAggregatorServer) CancelTask(context.Context, *IdReq) (*wrapperspb.BoolValue, error) { +func (UnimplementedAggregatorServer) CancelTask(context.Context, *IdReq) (*wrappers.BoolValue, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelTask not implemented") } -func (UnimplementedAggregatorServer) DeleteTask(context.Context, *IdReq) (*wrapperspb.BoolValue, error) { +func (UnimplementedAggregatorServer) DeleteTask(context.Context, *IdReq) (*wrappers.BoolValue, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteTask not implemented") } func (UnimplementedAggregatorServer) TriggerTask(context.Context, *UserTriggerTaskReq) (*UserTriggerTaskResp, error) { return nil, status.Errorf(codes.Unimplemented, "method TriggerTask not implemented") } -func (UnimplementedAggregatorServer) CreateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrapperspb.BoolValue, error) { +func (UnimplementedAggregatorServer) CreateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrappers.BoolValue, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateSecret not implemented") } -func (UnimplementedAggregatorServer) DeleteSecret(context.Context, *DeleteSecretReq) (*wrapperspb.BoolValue, error) { +func (UnimplementedAggregatorServer) DeleteSecret(context.Context, *DeleteSecretReq) (*wrappers.BoolValue, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteSecret not implemented") } func (UnimplementedAggregatorServer) ListSecrets(context.Context, *ListSecretsReq) (*ListSecretsResp, error) { return nil, status.Errorf(codes.Unimplemented, "method ListSecrets not implemented") } -func (UnimplementedAggregatorServer) UpdateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrapperspb.BoolValue, error) { +func (UnimplementedAggregatorServer) UpdateSecret(context.Context, *CreateOrUpdateSecretReq) (*wrappers.BoolValue, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateSecret not implemented") } func (UnimplementedAggregatorServer) GetWorkflowCount(context.Context, *GetWorkflowCountReq) (*GetWorkflowCountResp, error) { @@ -350,6 +367,9 @@ func (UnimplementedAggregatorServer) GetWorkflowCount(context.Context, *GetWorkf func (UnimplementedAggregatorServer) GetExecutionCount(context.Context, *GetExecutionCountReq) (*GetExecutionCountResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExecutionCount not implemented") } +func (UnimplementedAggregatorServer) GetExecutionStats(context.Context, *GetExecutionStatsReq) (*GetExecutionStatsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetExecutionStats not implemented") +} func (UnimplementedAggregatorServer) mustEmbedUnimplementedAggregatorServer() {} // UnsafeAggregatorServer may be embedded to opt out of forward compatibility for this service. @@ -705,6 +725,24 @@ func _Aggregator_GetExecutionCount_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Aggregator_GetExecutionStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetExecutionStatsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AggregatorServer).GetExecutionStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/aggregator.Aggregator/GetExecutionStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AggregatorServer).GetExecutionStats(ctx, req.(*GetExecutionStatsReq)) + } + return interceptor(ctx, in, info, handler) +} + // Aggregator_ServiceDesc is the grpc.ServiceDesc for Aggregator service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -788,7 +826,11 @@ var Aggregator_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetExecutionCount", Handler: _Aggregator_GetExecutionCount_Handler, }, + { + MethodName: "GetExecutionStats", + Handler: _Aggregator_GetExecutionStats_Handler, + }, }, Streams: []grpc.StreamDesc{}, - Metadata: "protobuf/avs.proto", + Metadata: "avs.proto", } From 664a109b40f76e36a231ca1ee3a21b0eb0da72aa Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 11 May 2025 23:52:02 +0000 Subject: [PATCH 5/6] fix: Update node.proto import path and regenerate protobuf code Co-Authored-By: Chris Li --- protobuf/node.pb.go | 371 +++++++++++++++++++-------------------- protobuf/node.proto | 2 +- protobuf/node_grpc.pb.go | 18 +- 3 files changed, 195 insertions(+), 196 deletions(-) diff --git a/protobuf/node.pb.go b/protobuf/node.pb.go index ee55d88a..e920a880 100644 --- a/protobuf/node.pb.go +++ b/protobuf/node.pb.go @@ -1,16 +1,16 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v5.29.3 -// source: protobuf/node.proto +// protoc v3.12.4 +// source: node.proto package avsproto import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" + wrappers "github.com/golang/protobuf/ptypes/wrappers" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" ) @@ -61,11 +61,11 @@ func (x MessageOp) String() string { } func (MessageOp) Descriptor() protoreflect.EnumDescriptor { - return file_protobuf_node_proto_enumTypes[0].Descriptor() + return file_node_proto_enumTypes[0].Descriptor() } func (MessageOp) Type() protoreflect.EnumType { - return &file_protobuf_node_proto_enumTypes[0] + return &file_node_proto_enumTypes[0] } func (x MessageOp) Number() protoreflect.EnumNumber { @@ -74,7 +74,7 @@ func (x MessageOp) Number() protoreflect.EnumNumber { // Deprecated: Use MessageOp.Descriptor instead. func (MessageOp) EnumDescriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{0} + return file_node_proto_rawDescGZIP(), []int{0} } type Checkin struct { @@ -96,7 +96,7 @@ type Checkin struct { func (x *Checkin) Reset() { *x = Checkin{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[0] + mi := &file_node_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -109,7 +109,7 @@ func (x *Checkin) String() string { func (*Checkin) ProtoMessage() {} func (x *Checkin) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[0] + mi := &file_node_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122,7 +122,7 @@ func (x *Checkin) ProtoReflect() protoreflect.Message { // Deprecated: Use Checkin.ProtoReflect.Descriptor instead. func (*Checkin) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{0} + return file_node_proto_rawDescGZIP(), []int{0} } func (x *Checkin) GetId() string { @@ -193,13 +193,13 @@ type CheckinResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + UpdatedAt *timestamp.Timestamp `protobuf:"bytes,1,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` } func (x *CheckinResp) Reset() { *x = CheckinResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[1] + mi := &file_node_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -212,7 +212,7 @@ func (x *CheckinResp) String() string { func (*CheckinResp) ProtoMessage() {} func (x *CheckinResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[1] + mi := &file_node_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -225,10 +225,10 @@ func (x *CheckinResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckinResp.ProtoReflect.Descriptor instead. func (*CheckinResp) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{1} + return file_node_proto_rawDescGZIP(), []int{1} } -func (x *CheckinResp) GetUpdatedAt() *timestamppb.Timestamp { +func (x *CheckinResp) GetUpdatedAt() *timestamp.Timestamp { if x != nil { return x.UpdatedAt } @@ -249,7 +249,7 @@ type SyncMessagesReq struct { func (x *SyncMessagesReq) Reset() { *x = SyncMessagesReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[2] + mi := &file_node_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -262,7 +262,7 @@ func (x *SyncMessagesReq) String() string { func (*SyncMessagesReq) ProtoMessage() {} func (x *SyncMessagesReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[2] + mi := &file_node_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -275,7 +275,7 @@ func (x *SyncMessagesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncMessagesReq.ProtoReflect.Descriptor instead. func (*SyncMessagesReq) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{2} + return file_node_proto_rawDescGZIP(), []int{2} } func (x *SyncMessagesReq) GetId() string { @@ -320,7 +320,7 @@ type SyncMessagesResp struct { func (x *SyncMessagesResp) Reset() { *x = SyncMessagesResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[3] + mi := &file_node_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -333,7 +333,7 @@ func (x *SyncMessagesResp) String() string { func (*SyncMessagesResp) ProtoMessage() {} func (x *SyncMessagesResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[3] + mi := &file_node_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -346,7 +346,7 @@ func (x *SyncMessagesResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncMessagesResp.ProtoReflect.Descriptor instead. func (*SyncMessagesResp) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{3} + return file_node_proto_rawDescGZIP(), []int{3} } func (x *SyncMessagesResp) GetId() string { @@ -381,7 +381,7 @@ type AckMessageReq struct { func (x *AckMessageReq) Reset() { *x = AckMessageReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[4] + mi := &file_node_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -394,7 +394,7 @@ func (x *AckMessageReq) String() string { func (*AckMessageReq) ProtoMessage() {} func (x *AckMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[4] + mi := &file_node_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -407,7 +407,7 @@ func (x *AckMessageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AckMessageReq.ProtoReflect.Descriptor instead. func (*AckMessageReq) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{4} + return file_node_proto_rawDescGZIP(), []int{4} } func (x *AckMessageReq) GetId() string { @@ -431,7 +431,7 @@ type NotifyTriggersReq struct { func (x *NotifyTriggersReq) Reset() { *x = NotifyTriggersReq{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[5] + mi := &file_node_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -444,7 +444,7 @@ func (x *NotifyTriggersReq) String() string { func (*NotifyTriggersReq) ProtoMessage() {} func (x *NotifyTriggersReq) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[5] + mi := &file_node_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -457,7 +457,7 @@ func (x *NotifyTriggersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyTriggersReq.ProtoReflect.Descriptor instead. func (*NotifyTriggersReq) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{5} + return file_node_proto_rawDescGZIP(), []int{5} } func (x *NotifyTriggersReq) GetAddress() string { @@ -493,13 +493,13 @@ type NotifyTriggersResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + UpdatedAt *timestamp.Timestamp `protobuf:"bytes,1,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` } func (x *NotifyTriggersResp) Reset() { *x = NotifyTriggersResp{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[6] + mi := &file_node_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -512,7 +512,7 @@ func (x *NotifyTriggersResp) String() string { func (*NotifyTriggersResp) ProtoMessage() {} func (x *NotifyTriggersResp) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[6] + mi := &file_node_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -525,10 +525,10 @@ func (x *NotifyTriggersResp) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyTriggersResp.ProtoReflect.Descriptor instead. func (*NotifyTriggersResp) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{6} + return file_node_proto_rawDescGZIP(), []int{6} } -func (x *NotifyTriggersResp) GetUpdatedAt() *timestamppb.Timestamp { +func (x *NotifyTriggersResp) GetUpdatedAt() *timestamp.Timestamp { if x != nil { return x.UpdatedAt } @@ -540,15 +540,15 @@ type Checkin_Status struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uptime int64 `protobuf:"varint,1,opt,name=uptime,proto3" json:"uptime,omitempty"` - QueueDepth int64 `protobuf:"varint,2,opt,name=queueDepth,proto3" json:"queueDepth,omitempty"` - LastHeartbeat *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=last_heartbeat,json=lastHeartbeat,proto3" json:"last_heartbeat,omitempty"` + Uptime int64 `protobuf:"varint,1,opt,name=uptime,proto3" json:"uptime,omitempty"` + QueueDepth int64 `protobuf:"varint,2,opt,name=queueDepth,proto3" json:"queueDepth,omitempty"` + LastHeartbeat *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_heartbeat,json=lastHeartbeat,proto3" json:"last_heartbeat,omitempty"` } func (x *Checkin_Status) Reset() { *x = Checkin_Status{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[7] + mi := &file_node_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -561,7 +561,7 @@ func (x *Checkin_Status) String() string { func (*Checkin_Status) ProtoMessage() {} func (x *Checkin_Status) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[7] + mi := &file_node_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -574,7 +574,7 @@ func (x *Checkin_Status) ProtoReflect() protoreflect.Message { // Deprecated: Use Checkin_Status.ProtoReflect.Descriptor instead. func (*Checkin_Status) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{0, 0} + return file_node_proto_rawDescGZIP(), []int{0, 0} } func (x *Checkin_Status) GetUptime() int64 { @@ -591,7 +591,7 @@ func (x *Checkin_Status) GetQueueDepth() int64 { return 0 } -func (x *Checkin_Status) GetLastHeartbeat() *timestamppb.Timestamp { +func (x *Checkin_Status) GetLastHeartbeat() *timestamp.Timestamp { if x != nil { return x.LastHeartbeat } @@ -613,7 +613,7 @@ type SyncMessagesResp_TaskMetadata struct { func (x *SyncMessagesResp_TaskMetadata) Reset() { *x = SyncMessagesResp_TaskMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_protobuf_node_proto_msgTypes[8] + mi := &file_node_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -626,7 +626,7 @@ func (x *SyncMessagesResp_TaskMetadata) String() string { func (*SyncMessagesResp_TaskMetadata) ProtoMessage() {} func (x *SyncMessagesResp_TaskMetadata) ProtoReflect() protoreflect.Message { - mi := &file_protobuf_node_proto_msgTypes[8] + mi := &file_node_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -639,7 +639,7 @@ func (x *SyncMessagesResp_TaskMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncMessagesResp_TaskMetadata.ProtoReflect.Descriptor instead. func (*SyncMessagesResp_TaskMetadata) Descriptor() ([]byte, []int) { - return file_protobuf_node_proto_rawDescGZIP(), []int{3, 0} + return file_node_proto_rawDescGZIP(), []int{3, 0} } func (x *SyncMessagesResp_TaskMetadata) GetTaskId() string { @@ -670,135 +670,134 @@ func (x *SyncMessagesResp_TaskMetadata) GetTrigger() *TaskTrigger { return nil } -var File_protobuf_node_proto protoreflect.FileDescriptor - -var file_protobuf_node_proto_rawDesc = []byte{ - 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x76, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x03, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x50, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x50, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x83, 0x01, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x41, 0x0a, - 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x22, 0x48, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, +var File_node_proto protoreflect.FileDescriptor + +var file_node_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x61, 0x76, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x03, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x49, 0x50, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x49, 0x50, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x83, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x0e, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x0f, 0x53, - 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, - 0x6e, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0e, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x22, - 0xad, 0x02, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x15, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x4e, 0x0a, 0x0d, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x74, - 0x61, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x91, 0x01, 0x0a, 0x0c, - 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1d, 0x0a, - 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x31, 0x0a, 0x07, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, - 0x1f, 0x0a, 0x0d, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x97, 0x01, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x4f, 0x0a, 0x12, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 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, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x2a, 0x61, 0x0a, 0x09, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x6e, 0x73, 0x65, - 0x74, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x61, - 0x73, 0x6b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x04, 0x32, 0xa0, - 0x02, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, - 0x13, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x1a, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x4d, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x79, 0x6e, - 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3e, - 0x0a, 0x03, 0x41, 0x63, 0x6b, 0x12, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x2e, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x51, - 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, - 0x12, 0x1d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x1e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x76, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x22, 0x48, + 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 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, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x0f, 0x53, 0x79, 0x6e, + 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, + 0x63, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, + 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xad, 0x02, + 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x25, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x4e, 0x0a, 0x0d, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x74, 0x61, 0x73, + 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x91, 0x01, 0x0a, 0x0c, 0x54, 0x61, + 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, + 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x1f, 0x0a, + 0x0d, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x97, + 0x01, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x4f, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, + 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 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, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x2a, 0x61, 0x0a, 0x09, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x61, 0x73, 0x6b, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x10, 0x04, 0x32, 0xa0, 0x02, 0x0a, + 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x13, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x1a, 0x17, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, + 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x03, + 0x41, 0x63, 0x6b, 0x12, 0x19, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x1d, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, + 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x76, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_protobuf_node_proto_rawDescOnce sync.Once - file_protobuf_node_proto_rawDescData = file_protobuf_node_proto_rawDesc + file_node_proto_rawDescOnce sync.Once + file_node_proto_rawDescData = file_node_proto_rawDesc ) -func file_protobuf_node_proto_rawDescGZIP() []byte { - file_protobuf_node_proto_rawDescOnce.Do(func() { - file_protobuf_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_protobuf_node_proto_rawDescData) +func file_node_proto_rawDescGZIP() []byte { + file_node_proto_rawDescOnce.Do(func() { + file_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_node_proto_rawDescData) }) - return file_protobuf_node_proto_rawDescData + return file_node_proto_rawDescData } -var file_protobuf_node_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_protobuf_node_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_protobuf_node_proto_goTypes = []interface{}{ +var file_node_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_node_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_node_proto_goTypes = []interface{}{ (MessageOp)(0), // 0: aggregator.MessageOp (*Checkin)(nil), // 1: aggregator.Checkin (*CheckinResp)(nil), // 2: aggregator.CheckinResp @@ -809,12 +808,12 @@ var file_protobuf_node_proto_goTypes = []interface{}{ (*NotifyTriggersResp)(nil), // 7: aggregator.NotifyTriggersResp (*Checkin_Status)(nil), // 8: aggregator.Checkin.Status (*SyncMessagesResp_TaskMetadata)(nil), // 9: aggregator.SyncMessagesResp.TaskMetadata - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (*timestamp.Timestamp)(nil), // 10: google.protobuf.Timestamp (*TriggerReason)(nil), // 11: aggregator.TriggerReason (*TaskTrigger)(nil), // 12: aggregator.TaskTrigger - (*wrapperspb.BoolValue)(nil), // 13: google.protobuf.BoolValue + (*wrappers.BoolValue)(nil), // 13: google.protobuf.BoolValue } -var file_protobuf_node_proto_depIdxs = []int32{ +var file_node_proto_depIdxs = []int32{ 8, // 0: aggregator.Checkin.status:type_name -> aggregator.Checkin.Status 10, // 1: aggregator.CheckinResp.updated_at:type_name -> google.protobuf.Timestamp 0, // 2: aggregator.SyncMessagesResp.op:type_name -> aggregator.MessageOp @@ -838,14 +837,14 @@ var file_protobuf_node_proto_depIdxs = []int32{ 0, // [0:8] is the sub-list for field type_name } -func init() { file_protobuf_node_proto_init() } -func file_protobuf_node_proto_init() { - if File_protobuf_node_proto != nil { +func init() { file_node_proto_init() } +func file_node_proto_init() { + if File_node_proto != nil { return } - file_protobuf_avs_proto_init() + file_avs_proto_init() if !protoimpl.UnsafeEnabled { - file_protobuf_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Checkin); i { case 0: return &v.state @@ -857,7 +856,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckinResp); i { case 0: return &v.state @@ -869,7 +868,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncMessagesReq); i { case 0: return &v.state @@ -881,7 +880,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncMessagesResp); i { case 0: return &v.state @@ -893,7 +892,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AckMessageReq); i { case 0: return &v.state @@ -905,7 +904,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyTriggersReq); i { case 0: return &v.state @@ -917,7 +916,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyTriggersResp); i { case 0: return &v.state @@ -929,7 +928,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Checkin_Status); i { case 0: return &v.state @@ -941,7 +940,7 @@ func file_protobuf_node_proto_init() { return nil } } - file_protobuf_node_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_node_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncMessagesResp_TaskMetadata); i { case 0: return &v.state @@ -958,19 +957,19 @@ func file_protobuf_node_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_protobuf_node_proto_rawDesc, + RawDescriptor: file_node_proto_rawDesc, NumEnums: 1, NumMessages: 9, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_protobuf_node_proto_goTypes, - DependencyIndexes: file_protobuf_node_proto_depIdxs, - EnumInfos: file_protobuf_node_proto_enumTypes, - MessageInfos: file_protobuf_node_proto_msgTypes, + GoTypes: file_node_proto_goTypes, + DependencyIndexes: file_node_proto_depIdxs, + EnumInfos: file_node_proto_enumTypes, + MessageInfos: file_node_proto_msgTypes, }.Build() - File_protobuf_node_proto = out.File - file_protobuf_node_proto_rawDesc = nil - file_protobuf_node_proto_goTypes = nil - file_protobuf_node_proto_depIdxs = nil + File_node_proto = out.File + file_node_proto_rawDesc = nil + file_node_proto_goTypes = nil + file_node_proto_depIdxs = nil } diff --git a/protobuf/node.proto b/protobuf/node.proto index 1fcffc4e..2dd2e81a 100644 --- a/protobuf/node.proto +++ b/protobuf/node.proto @@ -5,7 +5,7 @@ option go_package = "./avsproto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "protobuf/avs.proto"; +import "avs.proto"; message Checkin { string id = 1; diff --git a/protobuf/node_grpc.pb.go b/protobuf/node_grpc.pb.go index a7643aa5..185c5b90 100644 --- a/protobuf/node_grpc.pb.go +++ b/protobuf/node_grpc.pb.go @@ -1,17 +1,17 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v5.29.3 -// source: protobuf/node.proto +// - protoc v3.12.4 +// source: node.proto package avsproto import ( context "context" + wrappers "github.com/golang/protobuf/ptypes/wrappers" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) // This is a compile-time assertion to ensure that this generated file @@ -26,7 +26,7 @@ type NodeClient interface { // Operator endpoint Ping(ctx context.Context, in *Checkin, opts ...grpc.CallOption) (*CheckinResp, error) SyncMessages(ctx context.Context, in *SyncMessagesReq, opts ...grpc.CallOption) (Node_SyncMessagesClient, error) - Ack(ctx context.Context, in *AckMessageReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) + Ack(ctx context.Context, in *AckMessageReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) NotifyTriggers(ctx context.Context, in *NotifyTriggersReq, opts ...grpc.CallOption) (*NotifyTriggersResp, error) } @@ -79,8 +79,8 @@ func (x *nodeSyncMessagesClient) Recv() (*SyncMessagesResp, error) { return m, nil } -func (c *nodeClient) Ack(ctx context.Context, in *AckMessageReq, opts ...grpc.CallOption) (*wrapperspb.BoolValue, error) { - out := new(wrapperspb.BoolValue) +func (c *nodeClient) Ack(ctx context.Context, in *AckMessageReq, opts ...grpc.CallOption) (*wrappers.BoolValue, error) { + out := new(wrappers.BoolValue) err := c.cc.Invoke(ctx, "/aggregator.Node/Ack", in, out, opts...) if err != nil { return nil, err @@ -104,7 +104,7 @@ type NodeServer interface { // Operator endpoint Ping(context.Context, *Checkin) (*CheckinResp, error) SyncMessages(*SyncMessagesReq, Node_SyncMessagesServer) error - Ack(context.Context, *AckMessageReq) (*wrapperspb.BoolValue, error) + Ack(context.Context, *AckMessageReq) (*wrappers.BoolValue, error) NotifyTriggers(context.Context, *NotifyTriggersReq) (*NotifyTriggersResp, error) mustEmbedUnimplementedNodeServer() } @@ -119,7 +119,7 @@ func (UnimplementedNodeServer) Ping(context.Context, *Checkin) (*CheckinResp, er func (UnimplementedNodeServer) SyncMessages(*SyncMessagesReq, Node_SyncMessagesServer) error { return status.Errorf(codes.Unimplemented, "method SyncMessages not implemented") } -func (UnimplementedNodeServer) Ack(context.Context, *AckMessageReq) (*wrapperspb.BoolValue, error) { +func (UnimplementedNodeServer) Ack(context.Context, *AckMessageReq) (*wrappers.BoolValue, error) { return nil, status.Errorf(codes.Unimplemented, "method Ack not implemented") } func (UnimplementedNodeServer) NotifyTriggers(context.Context, *NotifyTriggersReq) (*NotifyTriggersResp, error) { @@ -240,5 +240,5 @@ var Node_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "protobuf/node.proto", + Metadata: "node.proto", } From a43b73bfc1d038a9e1a1ae30b689f0c64409e735 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 04:24:42 +0000 Subject: [PATCH 6/6] refactor: Replace magic number with TaskIDLength constant Co-Authored-By: Chris Li --- core/taskengine/engine.go | 4 ++-- core/taskengine/validation.go | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/taskengine/engine.go b/core/taskengine/engine.go index be3eef6f..6098d63d 100644 --- a/core/taskengine/engine.go +++ b/core/taskengine/engine.go @@ -835,7 +835,7 @@ func (n *Engine) GetExecutionCount(user *model.User, payload *avsproto.GetExecut prefixes := [][]byte{} for _, id := range workflowIds { - if len(id) != 26 { + if len(id) != TaskIDLength { continue } prefixes = append(prefixes, TaskExecutionPrefix(id)) @@ -1052,7 +1052,7 @@ func (n *Engine) GetExecutionStats(user *model.User, payload *avsproto.GetExecut } for _, id := range workflowIds { - if len(id) != 26 { + if len(id) != TaskIDLength { continue } diff --git a/core/taskengine/validation.go b/core/taskengine/validation.go index 016850ec..48c2de5c 100644 --- a/core/taskengine/validation.go +++ b/core/taskengine/validation.go @@ -6,6 +6,8 @@ import ( "github.com/ethereum/go-ethereum/common" ) +const TaskIDLength = 26 + func ValidWalletAddress(address string) bool { return common.IsHexAddress(address) } @@ -26,7 +28,7 @@ func ValidWalletOwner(db storage.Storage, u *model.User, smartWalletAddress comm } func ValidateTaskId(id string) bool { - if len(id) != 26 { + if len(id) != TaskIDLength { return false }