From 1783f5cce16f21cbe33aae585d65e25aaa7c6496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Tich=C3=A1k?= <michal.tichak@cern.ch> Date: Tue, 20 Feb 2024 15:00:41 +0100 Subject: [PATCH] [core] implemented GetAvailableDetectors --- coconut/protos/o2control.pb.go | 1423 ++++++++++++++------------- coconut/protos/o2control_grpc.pb.go | 188 +++- core/protos/o2control.pb.go | 1423 ++++++++++++++------------- core/protos/o2control.proto | 7 +- core/protos/o2control_grpc.pb.go | 188 +++- core/server.go | 56 +- 6 files changed, 1818 insertions(+), 1467 deletions(-) diff --git a/coconut/protos/o2control.pb.go b/coconut/protos/o2control.pb.go index 8ab79126..d091ff4d 100644 --- a/coconut/protos/o2control.pb.go +++ b/coconut/protos/o2control.pb.go @@ -23,8 +23,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.25.1 // source: protos/o2control.proto package pb @@ -263,7 +263,7 @@ func (x VarSpecMessage_UiWidget) Number() protoreflect.EnumNumber { // Deprecated: Use VarSpecMessage_UiWidget.Descriptor instead. func (VarSpecMessage_UiWidget) EnumDescriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{51, 0} + return file_protos_o2control_proto_rawDescGZIP(), []int{52, 0} } type VarSpecMessage_Type int32 @@ -318,7 +318,7 @@ func (x VarSpecMessage_Type) Number() protoreflect.EnumNumber { // Deprecated: Use VarSpecMessage_Type.Descriptor instead. func (VarSpecMessage_Type) EnumDescriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{51, 1} + return file_protos_o2control_proto_rawDescGZIP(), []int{52, 1} } type Event_MesosHeartbeat struct { @@ -2380,6 +2380,53 @@ func (x *GetActiveDetectorsReply) GetDetectors() []string { return nil } +type GetAvailableDetectorsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Detectors []string `protobuf:"bytes,1,rep,name=detectors,proto3" json:"detectors,omitempty"` +} + +func (x *GetAvailableDetectorsReply) Reset() { + *x = GetAvailableDetectorsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_o2control_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAvailableDetectorsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAvailableDetectorsReply) ProtoMessage() {} + +func (x *GetAvailableDetectorsReply) ProtoReflect() protoreflect.Message { + mi := &file_protos_o2control_proto_msgTypes[31] + 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 GetAvailableDetectorsReply.ProtoReflect.Descriptor instead. +func (*GetAvailableDetectorsReply) Descriptor() ([]byte, []int) { + return file_protos_o2control_proto_rawDescGZIP(), []int{31} +} + +func (x *GetAvailableDetectorsReply) GetDetectors() []string { + if x != nil { + return x.Detectors + } + return nil +} + // ////////////////////////////////////// // Environment, GET/SET properties // ////////////////////////////////////// @@ -2397,7 +2444,7 @@ type SetEnvironmentPropertiesRequest struct { func (x *SetEnvironmentPropertiesRequest) Reset() { *x = SetEnvironmentPropertiesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[31] + mi := &file_protos_o2control_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2410,7 +2457,7 @@ func (x *SetEnvironmentPropertiesRequest) String() string { func (*SetEnvironmentPropertiesRequest) ProtoMessage() {} func (x *SetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[31] + mi := &file_protos_o2control_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2423,7 +2470,7 @@ func (x *SetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetEnvironmentPropertiesRequest.ProtoReflect.Descriptor instead. func (*SetEnvironmentPropertiesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{31} + return file_protos_o2control_proto_rawDescGZIP(), []int{32} } func (x *SetEnvironmentPropertiesRequest) GetId() string { @@ -2449,7 +2496,7 @@ type SetEnvironmentPropertiesReply struct { func (x *SetEnvironmentPropertiesReply) Reset() { *x = SetEnvironmentPropertiesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[32] + mi := &file_protos_o2control_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2462,7 +2509,7 @@ func (x *SetEnvironmentPropertiesReply) String() string { func (*SetEnvironmentPropertiesReply) ProtoMessage() {} func (x *SetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[32] + mi := &file_protos_o2control_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2475,7 +2522,7 @@ func (x *SetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetEnvironmentPropertiesReply.ProtoReflect.Descriptor instead. func (*SetEnvironmentPropertiesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{32} + return file_protos_o2control_proto_rawDescGZIP(), []int{33} } type GetEnvironmentPropertiesRequest struct { @@ -2494,7 +2541,7 @@ type GetEnvironmentPropertiesRequest struct { func (x *GetEnvironmentPropertiesRequest) Reset() { *x = GetEnvironmentPropertiesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[33] + mi := &file_protos_o2control_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2507,7 +2554,7 @@ func (x *GetEnvironmentPropertiesRequest) String() string { func (*GetEnvironmentPropertiesRequest) ProtoMessage() {} func (x *GetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[33] + mi := &file_protos_o2control_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2520,7 +2567,7 @@ func (x *GetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEnvironmentPropertiesRequest.ProtoReflect.Descriptor instead. func (*GetEnvironmentPropertiesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{33} + return file_protos_o2control_proto_rawDescGZIP(), []int{34} } func (x *GetEnvironmentPropertiesRequest) GetId() string { @@ -2555,7 +2602,7 @@ type GetEnvironmentPropertiesReply struct { func (x *GetEnvironmentPropertiesReply) Reset() { *x = GetEnvironmentPropertiesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[34] + mi := &file_protos_o2control_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2568,7 +2615,7 @@ func (x *GetEnvironmentPropertiesReply) String() string { func (*GetEnvironmentPropertiesReply) ProtoMessage() {} func (x *GetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[34] + mi := &file_protos_o2control_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2581,7 +2628,7 @@ func (x *GetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEnvironmentPropertiesReply.ProtoReflect.Descriptor instead. func (*GetEnvironmentPropertiesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{34} + return file_protos_o2control_proto_rawDescGZIP(), []int{35} } func (x *GetEnvironmentPropertiesReply) GetProperties() map[string]string { @@ -2614,7 +2661,7 @@ type ShortTaskInfo struct { func (x *ShortTaskInfo) Reset() { *x = ShortTaskInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[35] + mi := &file_protos_o2control_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2627,7 +2674,7 @@ func (x *ShortTaskInfo) String() string { func (*ShortTaskInfo) ProtoMessage() {} func (x *ShortTaskInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[35] + mi := &file_protos_o2control_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2640,7 +2687,7 @@ func (x *ShortTaskInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ShortTaskInfo.ProtoReflect.Descriptor instead. func (*ShortTaskInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{35} + return file_protos_o2control_proto_rawDescGZIP(), []int{36} } func (x *ShortTaskInfo) GetName() string { @@ -2727,7 +2774,7 @@ type TaskDeploymentInfo struct { func (x *TaskDeploymentInfo) Reset() { *x = TaskDeploymentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[36] + mi := &file_protos_o2control_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2740,7 +2787,7 @@ func (x *TaskDeploymentInfo) String() string { func (*TaskDeploymentInfo) ProtoMessage() {} func (x *TaskDeploymentInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[36] + mi := &file_protos_o2control_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2753,7 +2800,7 @@ func (x *TaskDeploymentInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskDeploymentInfo.ProtoReflect.Descriptor instead. func (*TaskDeploymentInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{36} + return file_protos_o2control_proto_rawDescGZIP(), []int{37} } func (x *TaskDeploymentInfo) GetHostname() string { @@ -2793,7 +2840,7 @@ type GetTasksRequest struct { func (x *GetTasksRequest) Reset() { *x = GetTasksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[37] + mi := &file_protos_o2control_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2806,7 +2853,7 @@ func (x *GetTasksRequest) String() string { func (*GetTasksRequest) ProtoMessage() {} func (x *GetTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[37] + mi := &file_protos_o2control_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2819,7 +2866,7 @@ func (x *GetTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksRequest.ProtoReflect.Descriptor instead. func (*GetTasksRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{37} + return file_protos_o2control_proto_rawDescGZIP(), []int{38} } type GetTasksReply struct { @@ -2833,7 +2880,7 @@ type GetTasksReply struct { func (x *GetTasksReply) Reset() { *x = GetTasksReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[38] + mi := &file_protos_o2control_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2846,7 +2893,7 @@ func (x *GetTasksReply) String() string { func (*GetTasksReply) ProtoMessage() {} func (x *GetTasksReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[38] + mi := &file_protos_o2control_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2859,7 +2906,7 @@ func (x *GetTasksReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksReply.ProtoReflect.Descriptor instead. func (*GetTasksReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{38} + return file_protos_o2control_proto_rawDescGZIP(), []int{39} } func (x *GetTasksReply) GetTasks() []*ShortTaskInfo { @@ -2880,7 +2927,7 @@ type GetTaskRequest struct { func (x *GetTaskRequest) Reset() { *x = GetTaskRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[39] + mi := &file_protos_o2control_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2893,7 +2940,7 @@ func (x *GetTaskRequest) String() string { func (*GetTaskRequest) ProtoMessage() {} func (x *GetTaskRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[39] + mi := &file_protos_o2control_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2906,7 +2953,7 @@ func (x *GetTaskRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskRequest.ProtoReflect.Descriptor instead. func (*GetTaskRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{39} + return file_protos_o2control_proto_rawDescGZIP(), []int{40} } func (x *GetTaskRequest) GetTaskId() string { @@ -2927,7 +2974,7 @@ type GetTaskReply struct { func (x *GetTaskReply) Reset() { *x = GetTaskReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[40] + mi := &file_protos_o2control_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2940,7 +2987,7 @@ func (x *GetTaskReply) String() string { func (*GetTaskReply) ProtoMessage() {} func (x *GetTaskReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[40] + mi := &file_protos_o2control_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2953,7 +3000,7 @@ func (x *GetTaskReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskReply.ProtoReflect.Descriptor instead. func (*GetTaskReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{40} + return file_protos_o2control_proto_rawDescGZIP(), []int{41} } func (x *GetTaskReply) GetTask() *TaskInfo { @@ -2975,7 +3022,7 @@ type TaskClassInfo struct { func (x *TaskClassInfo) Reset() { *x = TaskClassInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[41] + mi := &file_protos_o2control_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2988,7 +3035,7 @@ func (x *TaskClassInfo) String() string { func (*TaskClassInfo) ProtoMessage() {} func (x *TaskClassInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[41] + mi := &file_protos_o2control_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3001,7 +3048,7 @@ func (x *TaskClassInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskClassInfo.ProtoReflect.Descriptor instead. func (*TaskClassInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{41} + return file_protos_o2control_proto_rawDescGZIP(), []int{42} } func (x *TaskClassInfo) GetName() string { @@ -3033,7 +3080,7 @@ type CommandInfo struct { func (x *CommandInfo) Reset() { *x = CommandInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[42] + mi := &file_protos_o2control_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3046,7 +3093,7 @@ func (x *CommandInfo) String() string { func (*CommandInfo) ProtoMessage() {} func (x *CommandInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[42] + mi := &file_protos_o2control_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3059,7 +3106,7 @@ func (x *CommandInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CommandInfo.ProtoReflect.Descriptor instead. func (*CommandInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{42} + return file_protos_o2control_proto_rawDescGZIP(), []int{43} } func (x *CommandInfo) GetEnv() []string { @@ -3110,7 +3157,7 @@ type ChannelInfo struct { func (x *ChannelInfo) Reset() { *x = ChannelInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[43] + mi := &file_protos_o2control_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3123,7 +3170,7 @@ func (x *ChannelInfo) String() string { func (*ChannelInfo) ProtoMessage() {} func (x *ChannelInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[43] + mi := &file_protos_o2control_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3136,7 +3183,7 @@ func (x *ChannelInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ChannelInfo.ProtoReflect.Descriptor instead. func (*ChannelInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{43} + return file_protos_o2control_proto_rawDescGZIP(), []int{44} } func (x *ChannelInfo) GetName() string { @@ -3178,7 +3225,7 @@ type TaskInfo struct { func (x *TaskInfo) Reset() { *x = TaskInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[44] + mi := &file_protos_o2control_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3191,7 +3238,7 @@ func (x *TaskInfo) String() string { func (*TaskInfo) ProtoMessage() {} func (x *TaskInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[44] + mi := &file_protos_o2control_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3204,7 +3251,7 @@ func (x *TaskInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskInfo.ProtoReflect.Descriptor instead. func (*TaskInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{44} + return file_protos_o2control_proto_rawDescGZIP(), []int{45} } func (x *TaskInfo) GetShortInfo() *ShortTaskInfo { @@ -3274,7 +3321,7 @@ type CleanupTasksRequest struct { func (x *CleanupTasksRequest) Reset() { *x = CleanupTasksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[45] + mi := &file_protos_o2control_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3287,7 +3334,7 @@ func (x *CleanupTasksRequest) String() string { func (*CleanupTasksRequest) ProtoMessage() {} func (x *CleanupTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[45] + mi := &file_protos_o2control_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3300,7 +3347,7 @@ func (x *CleanupTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CleanupTasksRequest.ProtoReflect.Descriptor instead. func (*CleanupTasksRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{45} + return file_protos_o2control_proto_rawDescGZIP(), []int{46} } func (x *CleanupTasksRequest) GetTaskIds() []string { @@ -3322,7 +3369,7 @@ type CleanupTasksReply struct { func (x *CleanupTasksReply) Reset() { *x = CleanupTasksReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[46] + mi := &file_protos_o2control_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3335,7 +3382,7 @@ func (x *CleanupTasksReply) String() string { func (*CleanupTasksReply) ProtoMessage() {} func (x *CleanupTasksReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[46] + mi := &file_protos_o2control_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3348,7 +3395,7 @@ func (x *CleanupTasksReply) ProtoReflect() protoreflect.Message { // Deprecated: Use CleanupTasksReply.ProtoReflect.Descriptor instead. func (*CleanupTasksReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{46} + return file_protos_o2control_proto_rawDescGZIP(), []int{47} } func (x *CleanupTasksReply) GetKilledTasks() []*ShortTaskInfo { @@ -3380,7 +3427,7 @@ type GetRolesRequest struct { func (x *GetRolesRequest) Reset() { *x = GetRolesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[47] + mi := &file_protos_o2control_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3393,7 +3440,7 @@ func (x *GetRolesRequest) String() string { func (*GetRolesRequest) ProtoMessage() {} func (x *GetRolesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[47] + mi := &file_protos_o2control_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3406,7 +3453,7 @@ func (x *GetRolesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRolesRequest.ProtoReflect.Descriptor instead. func (*GetRolesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{47} + return file_protos_o2control_proto_rawDescGZIP(), []int{48} } func (x *GetRolesRequest) GetEnvId() string { @@ -3444,7 +3491,7 @@ type RoleInfo struct { func (x *RoleInfo) Reset() { *x = RoleInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[48] + mi := &file_protos_o2control_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3457,7 +3504,7 @@ func (x *RoleInfo) String() string { func (*RoleInfo) ProtoMessage() {} func (x *RoleInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[48] + mi := &file_protos_o2control_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3470,7 +3517,7 @@ func (x *RoleInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoleInfo.ProtoReflect.Descriptor instead. func (*RoleInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{48} + return file_protos_o2control_proto_rawDescGZIP(), []int{49} } func (x *RoleInfo) GetName() string { @@ -3561,7 +3608,7 @@ type GetRolesReply struct { func (x *GetRolesReply) Reset() { *x = GetRolesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[49] + mi := &file_protos_o2control_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3574,7 +3621,7 @@ func (x *GetRolesReply) String() string { func (*GetRolesReply) ProtoMessage() {} func (x *GetRolesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[49] + mi := &file_protos_o2control_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3587,7 +3634,7 @@ func (x *GetRolesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRolesReply.ProtoReflect.Descriptor instead. func (*GetRolesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{49} + return file_protos_o2control_proto_rawDescGZIP(), []int{50} } func (x *GetRolesReply) GetRoles() []*RoleInfo { @@ -3612,7 +3659,7 @@ type GetWorkflowTemplatesRequest struct { func (x *GetWorkflowTemplatesRequest) Reset() { *x = GetWorkflowTemplatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[50] + mi := &file_protos_o2control_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3625,7 +3672,7 @@ func (x *GetWorkflowTemplatesRequest) String() string { func (*GetWorkflowTemplatesRequest) ProtoMessage() {} func (x *GetWorkflowTemplatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[50] + mi := &file_protos_o2control_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3638,7 +3685,7 @@ func (x *GetWorkflowTemplatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkflowTemplatesRequest.ProtoReflect.Descriptor instead. func (*GetWorkflowTemplatesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{50} + return file_protos_o2control_proto_rawDescGZIP(), []int{51} } func (x *GetWorkflowTemplatesRequest) GetRepoPattern() string { @@ -3696,7 +3743,7 @@ type VarSpecMessage struct { func (x *VarSpecMessage) Reset() { *x = VarSpecMessage{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[51] + mi := &file_protos_o2control_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3709,7 +3756,7 @@ func (x *VarSpecMessage) String() string { func (*VarSpecMessage) ProtoMessage() {} func (x *VarSpecMessage) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[51] + mi := &file_protos_o2control_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3722,7 +3769,7 @@ func (x *VarSpecMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use VarSpecMessage.ProtoReflect.Descriptor instead. func (*VarSpecMessage) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{51} + return file_protos_o2control_proto_rawDescGZIP(), []int{52} } func (x *VarSpecMessage) GetDefaultValue() string { @@ -3810,7 +3857,7 @@ type WorkflowTemplateInfo struct { func (x *WorkflowTemplateInfo) Reset() { *x = WorkflowTemplateInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[52] + mi := &file_protos_o2control_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3823,7 +3870,7 @@ func (x *WorkflowTemplateInfo) String() string { func (*WorkflowTemplateInfo) ProtoMessage() {} func (x *WorkflowTemplateInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[52] + mi := &file_protos_o2control_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3836,7 +3883,7 @@ func (x *WorkflowTemplateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowTemplateInfo.ProtoReflect.Descriptor instead. func (*WorkflowTemplateInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{52} + return file_protos_o2control_proto_rawDescGZIP(), []int{53} } func (x *WorkflowTemplateInfo) GetRepo() string { @@ -3885,7 +3932,7 @@ type GetWorkflowTemplatesReply struct { func (x *GetWorkflowTemplatesReply) Reset() { *x = GetWorkflowTemplatesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[53] + mi := &file_protos_o2control_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3898,7 +3945,7 @@ func (x *GetWorkflowTemplatesReply) String() string { func (*GetWorkflowTemplatesReply) ProtoMessage() {} func (x *GetWorkflowTemplatesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[53] + mi := &file_protos_o2control_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3911,7 +3958,7 @@ func (x *GetWorkflowTemplatesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkflowTemplatesReply.ProtoReflect.Descriptor instead. func (*GetWorkflowTemplatesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{53} + return file_protos_o2control_proto_rawDescGZIP(), []int{54} } func (x *GetWorkflowTemplatesReply) GetWorkflowTemplates() []*WorkflowTemplateInfo { @@ -3932,7 +3979,7 @@ type ListReposRequest struct { func (x *ListReposRequest) Reset() { *x = ListReposRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[54] + mi := &file_protos_o2control_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3945,7 +3992,7 @@ func (x *ListReposRequest) String() string { func (*ListReposRequest) ProtoMessage() {} func (x *ListReposRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[54] + mi := &file_protos_o2control_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3958,7 +4005,7 @@ func (x *ListReposRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReposRequest.ProtoReflect.Descriptor instead. func (*ListReposRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{54} + return file_protos_o2control_proto_rawDescGZIP(), []int{55} } func (x *ListReposRequest) GetGetRevisions() bool { @@ -3982,7 +4029,7 @@ type RepoInfo struct { func (x *RepoInfo) Reset() { *x = RepoInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[55] + mi := &file_protos_o2control_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3995,7 +4042,7 @@ func (x *RepoInfo) String() string { func (*RepoInfo) ProtoMessage() {} func (x *RepoInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[55] + mi := &file_protos_o2control_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4008,7 +4055,7 @@ func (x *RepoInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RepoInfo.ProtoReflect.Descriptor instead. func (*RepoInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{55} + return file_protos_o2control_proto_rawDescGZIP(), []int{56} } func (x *RepoInfo) GetName() string { @@ -4051,7 +4098,7 @@ type ListReposReply struct { func (x *ListReposReply) Reset() { *x = ListReposReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[56] + mi := &file_protos_o2control_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4064,7 +4111,7 @@ func (x *ListReposReply) String() string { func (*ListReposReply) ProtoMessage() {} func (x *ListReposReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[56] + mi := &file_protos_o2control_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4077,7 +4124,7 @@ func (x *ListReposReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReposReply.ProtoReflect.Descriptor instead. func (*ListReposReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{56} + return file_protos_o2control_proto_rawDescGZIP(), []int{57} } func (x *ListReposReply) GetRepos() []*RepoInfo { @@ -4106,7 +4153,7 @@ type AddRepoRequest struct { func (x *AddRepoRequest) Reset() { *x = AddRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[57] + mi := &file_protos_o2control_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4119,7 +4166,7 @@ func (x *AddRepoRequest) String() string { func (*AddRepoRequest) ProtoMessage() {} func (x *AddRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[57] + mi := &file_protos_o2control_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4132,7 +4179,7 @@ func (x *AddRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddRepoRequest.ProtoReflect.Descriptor instead. func (*AddRepoRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{57} + return file_protos_o2control_proto_rawDescGZIP(), []int{58} } func (x *AddRepoRequest) GetName() string { @@ -4161,7 +4208,7 @@ type AddRepoReply struct { func (x *AddRepoReply) Reset() { *x = AddRepoReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[58] + mi := &file_protos_o2control_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4174,7 +4221,7 @@ func (x *AddRepoReply) String() string { func (*AddRepoReply) ProtoMessage() {} func (x *AddRepoReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[58] + mi := &file_protos_o2control_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4187,7 +4234,7 @@ func (x *AddRepoReply) ProtoReflect() protoreflect.Message { // Deprecated: Use AddRepoReply.ProtoReflect.Descriptor instead. func (*AddRepoReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{58} + return file_protos_o2control_proto_rawDescGZIP(), []int{59} } func (x *AddRepoReply) GetNewDefaultRevision() string { @@ -4215,7 +4262,7 @@ type RemoveRepoRequest struct { func (x *RemoveRepoRequest) Reset() { *x = RemoveRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[59] + mi := &file_protos_o2control_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4228,7 +4275,7 @@ func (x *RemoveRepoRequest) String() string { func (*RemoveRepoRequest) ProtoMessage() {} func (x *RemoveRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[59] + mi := &file_protos_o2control_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4241,7 +4288,7 @@ func (x *RemoveRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRepoRequest.ProtoReflect.Descriptor instead. func (*RemoveRepoRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{59} + return file_protos_o2control_proto_rawDescGZIP(), []int{60} } func (x *RemoveRepoRequest) GetIndex() int32 { @@ -4262,7 +4309,7 @@ type RemoveRepoReply struct { func (x *RemoveRepoReply) Reset() { *x = RemoveRepoReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[60] + mi := &file_protos_o2control_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4275,7 +4322,7 @@ func (x *RemoveRepoReply) String() string { func (*RemoveRepoReply) ProtoMessage() {} func (x *RemoveRepoReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[60] + mi := &file_protos_o2control_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4288,7 +4335,7 @@ func (x *RemoveRepoReply) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRepoReply.ProtoReflect.Descriptor instead. func (*RemoveRepoReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{60} + return file_protos_o2control_proto_rawDescGZIP(), []int{61} } func (x *RemoveRepoReply) GetNewDefaultRepo() string { @@ -4309,7 +4356,7 @@ type RefreshReposRequest struct { func (x *RefreshReposRequest) Reset() { *x = RefreshReposRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[61] + mi := &file_protos_o2control_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4322,7 +4369,7 @@ func (x *RefreshReposRequest) String() string { func (*RefreshReposRequest) ProtoMessage() {} func (x *RefreshReposRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[61] + mi := &file_protos_o2control_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4335,7 +4382,7 @@ func (x *RefreshReposRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshReposRequest.ProtoReflect.Descriptor instead. func (*RefreshReposRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{61} + return file_protos_o2control_proto_rawDescGZIP(), []int{62} } func (x *RefreshReposRequest) GetIndex() int32 { @@ -4356,7 +4403,7 @@ type SetDefaultRepoRequest struct { func (x *SetDefaultRepoRequest) Reset() { *x = SetDefaultRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[62] + mi := &file_protos_o2control_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4369,7 +4416,7 @@ func (x *SetDefaultRepoRequest) String() string { func (*SetDefaultRepoRequest) ProtoMessage() {} func (x *SetDefaultRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[62] + mi := &file_protos_o2control_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4382,7 +4429,7 @@ func (x *SetDefaultRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetDefaultRepoRequest.ProtoReflect.Descriptor instead. func (*SetDefaultRepoRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{62} + return file_protos_o2control_proto_rawDescGZIP(), []int{63} } func (x *SetDefaultRepoRequest) GetIndex() int32 { @@ -4403,7 +4450,7 @@ type SetGlobalDefaultRevisionRequest struct { func (x *SetGlobalDefaultRevisionRequest) Reset() { *x = SetGlobalDefaultRevisionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[63] + mi := &file_protos_o2control_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4416,7 +4463,7 @@ func (x *SetGlobalDefaultRevisionRequest) String() string { func (*SetGlobalDefaultRevisionRequest) ProtoMessage() {} func (x *SetGlobalDefaultRevisionRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[63] + mi := &file_protos_o2control_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4429,7 +4476,7 @@ func (x *SetGlobalDefaultRevisionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetGlobalDefaultRevisionRequest.ProtoReflect.Descriptor instead. func (*SetGlobalDefaultRevisionRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{63} + return file_protos_o2control_proto_rawDescGZIP(), []int{64} } func (x *SetGlobalDefaultRevisionRequest) GetRevision() string { @@ -4451,7 +4498,7 @@ type SetRepoDefaultRevisionRequest struct { func (x *SetRepoDefaultRevisionRequest) Reset() { *x = SetRepoDefaultRevisionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[64] + mi := &file_protos_o2control_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4464,7 +4511,7 @@ func (x *SetRepoDefaultRevisionRequest) String() string { func (*SetRepoDefaultRevisionRequest) ProtoMessage() {} func (x *SetRepoDefaultRevisionRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[64] + mi := &file_protos_o2control_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4477,7 +4524,7 @@ func (x *SetRepoDefaultRevisionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRepoDefaultRevisionRequest.ProtoReflect.Descriptor instead. func (*SetRepoDefaultRevisionRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{64} + return file_protos_o2control_proto_rawDescGZIP(), []int{65} } func (x *SetRepoDefaultRevisionRequest) GetIndex() int32 { @@ -4505,7 +4552,7 @@ type SetRepoDefaultRevisionReply struct { func (x *SetRepoDefaultRevisionReply) Reset() { *x = SetRepoDefaultRevisionReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[65] + mi := &file_protos_o2control_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4518,7 +4565,7 @@ func (x *SetRepoDefaultRevisionReply) String() string { func (*SetRepoDefaultRevisionReply) ProtoMessage() {} func (x *SetRepoDefaultRevisionReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[65] + mi := &file_protos_o2control_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4531,7 +4578,7 @@ func (x *SetRepoDefaultRevisionReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRepoDefaultRevisionReply.ProtoReflect.Descriptor instead. func (*SetRepoDefaultRevisionReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{65} + return file_protos_o2control_proto_rawDescGZIP(), []int{66} } func (x *SetRepoDefaultRevisionReply) GetInfo() string { @@ -4550,7 +4597,7 @@ type Empty struct { func (x *Empty) Reset() { *x = Empty{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[66] + mi := &file_protos_o2control_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4563,7 +4610,7 @@ func (x *Empty) String() string { func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[66] + mi := &file_protos_o2control_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4576,7 +4623,7 @@ func (x *Empty) ProtoReflect() protoreflect.Message { // Deprecated: Use Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{66} + return file_protos_o2control_proto_rawDescGZIP(), []int{67} } type ListIntegratedServicesReply struct { @@ -4590,7 +4637,7 @@ type ListIntegratedServicesReply struct { func (x *ListIntegratedServicesReply) Reset() { *x = ListIntegratedServicesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[67] + mi := &file_protos_o2control_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4603,7 +4650,7 @@ func (x *ListIntegratedServicesReply) String() string { func (*ListIntegratedServicesReply) ProtoMessage() {} func (x *ListIntegratedServicesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[67] + mi := &file_protos_o2control_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4616,7 +4663,7 @@ func (x *ListIntegratedServicesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListIntegratedServicesReply.ProtoReflect.Descriptor instead. func (*ListIntegratedServicesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{67} + return file_protos_o2control_proto_rawDescGZIP(), []int{68} } func (x *ListIntegratedServicesReply) GetServices() map[string]*IntegratedServiceInfo { @@ -4641,7 +4688,7 @@ type IntegratedServiceInfo struct { func (x *IntegratedServiceInfo) Reset() { *x = IntegratedServiceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[68] + mi := &file_protos_o2control_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4654,7 +4701,7 @@ func (x *IntegratedServiceInfo) String() string { func (*IntegratedServiceInfo) ProtoMessage() {} func (x *IntegratedServiceInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[68] + mi := &file_protos_o2control_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4667,7 +4714,7 @@ func (x *IntegratedServiceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use IntegratedServiceInfo.ProtoReflect.Descriptor instead. func (*IntegratedServiceInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{68} + return file_protos_o2control_proto_rawDescGZIP(), []int{69} } func (x *IntegratedServiceInfo) GetName() string { @@ -5033,404 +5080,413 @@ var file_protos_o2control_proto_rawDesc = []byte{ 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x73, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, - 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, - 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x22, 0xb8, 0x01, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x58, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, - 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbc, 0x02, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, - 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, - 0x6f, 0x78, 0x53, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x11, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x3f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, - 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x22, 0x28, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x74, - 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x45, 0x0a, 0x0d, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, - 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x68, 0x65, - 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0b, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 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, 0xf0, 0x03, 0x0a, 0x08, 0x54, 0x61, - 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, - 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, - 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x13, - 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x8d, 0x01, - 0x0a, 0x11, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, - 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, - 0x3c, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0c, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x43, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, - 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, - 0x65, 0x63, 0x22, 0xd3, 0x05, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 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, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x31, 0x0a, 0x04, 0x76, 0x61, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x61, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, - 0x76, 0x61, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x56, 0x61, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, - 0x61, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0x3b, 0x0a, 0x0d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, - 0x56, 0x61, 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, 0x3b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, + 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x3a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x38, 0x01, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x73, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, + 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xbc, 0x02, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, + 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, + 0x64, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, + 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x28, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, + 0x22, 0x45, 0x0a, 0x0d, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x65, 0x6c, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 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, 0xf0, 0x03, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x6e, 0x76, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3a, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x22, 0x9a, 0x04, 0x0a, 0x0e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, - 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x55, - 0x69, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x52, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x12, - 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x22, 0x71, 0x0a, - 0x08, 0x55, 0x69, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x65, 0x64, 0x69, - 0x74, 0x42, 0x6f, 0x78, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x78, 0x10, 0x02, 0x12, - 0x0f, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x44, 0x6f, 0x77, 0x6e, 0x42, 0x6f, 0x78, 0x10, 0x03, - 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x42, 0x6f, 0x78, 0x10, 0x04, 0x12, 0x12, - 0x0a, 0x0e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x6f, 0x78, - 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x6f, 0x78, 0x10, 0x06, - 0x22, 0x3b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x10, 0x04, 0x22, 0xaf, 0x02, - 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, - 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x58, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4d, 0x0a, 0x11, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x28, - 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x71, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x0e, 0x41, 0x64, 0x64, - 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x13, 0x43, 0x6c, 0x65, 0x61, + 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x43, 0x6c, + 0x65, 0x61, 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, + 0x3a, 0x0a, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, + 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, + 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x43, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0xd3, + 0x05, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x0c, 0x41, 0x64, 0x64, - 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x77, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x29, 0x0a, - 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x6e, - 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x22, 0x2d, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, - 0x3d, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x51, - 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x31, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xce, 0x01, - 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x50, 0x0a, - 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, - 0x5d, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 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, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, - 0x01, 0x0a, 0x15, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x32, 0x82, 0x10, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x0b, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x6f, 0x32, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, - 0x01, 0x12, 0x5a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, + 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3d, + 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x31, 0x0a, + 0x04, 0x76, 0x61, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x56, 0x61, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x76, 0x61, 0x72, 0x73, + 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, + 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, 0x12, + 0x58, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, + 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x32, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x56, 0x61, 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, 0x3b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x56, 0x61, 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, 0x44, + 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3a, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x22, 0xc9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x9a, 0x04, 0x0a, + 0x0e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x56, 0x61, + 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3a, 0x0a, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, + 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x55, 0x69, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x52, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, + 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x22, 0x71, 0x0a, 0x08, 0x55, 0x69, 0x57, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x42, 0x6f, 0x78, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x78, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x64, + 0x72, 0x6f, 0x70, 0x44, 0x6f, 0x77, 0x6e, 0x42, 0x6f, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, + 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x42, 0x6f, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x6f, 0x78, 0x10, 0x05, 0x12, 0x0c, + 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x6f, 0x78, 0x10, 0x06, 0x22, 0x3b, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x62, 0x6f, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x10, 0x03, + 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x10, 0x04, 0x22, 0xaf, 0x02, 0x0a, 0x14, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4f, + 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0x58, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4d, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x67, + 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0x80, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x71, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, + 0x34, 0x0a, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6f, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x22, + 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2d, 0x0a, 0x15, + 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3d, 0x0a, 0x1f, 0x53, + 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x1d, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, + 0x1b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x4c, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x50, 0x0a, 0x08, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x5d, 0x0a, 0x0d, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 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, 0x36, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x28, + 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xd6, 0x10, 0x0a, + 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5a, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x08, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x00, 0x12, 0x57, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x4e, 0x65, - 0x77, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x24, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, - 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, - 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, - 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x45, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x08, 0x54, 0x65, 0x61, + 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x65, + 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x4e, 0x65, 0x77, 0x41, 0x75, 0x74, + 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6f, + 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x41, 0x75, 0x74, 0x6f, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, + 0x65, 0x77, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6f, 0x32, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, + 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x54, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, + 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6f, 0x32, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, - 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x11, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x23, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x44, 0x65, 0x73, - 0x74, 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x24, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x10, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, + 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, + 0x69, 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x10, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x10, + 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x25, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, @@ -5521,7 +5577,7 @@ func file_protos_o2control_proto_rawDescGZIP() []byte { } var file_protos_o2control_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_protos_o2control_proto_msgTypes = make([]protoimpl.MessageInfo, 84) +var file_protos_o2control_proto_msgTypes = make([]protoimpl.MessageInfo, 85) var file_protos_o2control_proto_goTypes = []interface{}{ (StatusUpdate_Level)(0), // 0: o2control.StatusUpdate.Level (ControlEnvironmentRequest_Optype)(0), // 1: o2control.ControlEnvironmentRequest.Optype @@ -5559,59 +5615,60 @@ var file_protos_o2control_proto_goTypes = []interface{}{ (*DestroyEnvironmentRequest)(nil), // 33: o2control.DestroyEnvironmentRequest (*DestroyEnvironmentReply)(nil), // 34: o2control.DestroyEnvironmentReply (*GetActiveDetectorsReply)(nil), // 35: o2control.GetActiveDetectorsReply - (*SetEnvironmentPropertiesRequest)(nil), // 36: o2control.SetEnvironmentPropertiesRequest - (*SetEnvironmentPropertiesReply)(nil), // 37: o2control.SetEnvironmentPropertiesReply - (*GetEnvironmentPropertiesRequest)(nil), // 38: o2control.GetEnvironmentPropertiesRequest - (*GetEnvironmentPropertiesReply)(nil), // 39: o2control.GetEnvironmentPropertiesReply - (*ShortTaskInfo)(nil), // 40: o2control.ShortTaskInfo - (*TaskDeploymentInfo)(nil), // 41: o2control.TaskDeploymentInfo - (*GetTasksRequest)(nil), // 42: o2control.GetTasksRequest - (*GetTasksReply)(nil), // 43: o2control.GetTasksReply - (*GetTaskRequest)(nil), // 44: o2control.GetTaskRequest - (*GetTaskReply)(nil), // 45: o2control.GetTaskReply - (*TaskClassInfo)(nil), // 46: o2control.TaskClassInfo - (*CommandInfo)(nil), // 47: o2control.CommandInfo - (*ChannelInfo)(nil), // 48: o2control.ChannelInfo - (*TaskInfo)(nil), // 49: o2control.TaskInfo - (*CleanupTasksRequest)(nil), // 50: o2control.CleanupTasksRequest - (*CleanupTasksReply)(nil), // 51: o2control.CleanupTasksReply - (*GetRolesRequest)(nil), // 52: o2control.GetRolesRequest - (*RoleInfo)(nil), // 53: o2control.RoleInfo - (*GetRolesReply)(nil), // 54: o2control.GetRolesReply - (*GetWorkflowTemplatesRequest)(nil), // 55: o2control.GetWorkflowTemplatesRequest - (*VarSpecMessage)(nil), // 56: o2control.VarSpecMessage - (*WorkflowTemplateInfo)(nil), // 57: o2control.WorkflowTemplateInfo - (*GetWorkflowTemplatesReply)(nil), // 58: o2control.GetWorkflowTemplatesReply - (*ListReposRequest)(nil), // 59: o2control.ListReposRequest - (*RepoInfo)(nil), // 60: o2control.RepoInfo - (*ListReposReply)(nil), // 61: o2control.ListReposReply - (*AddRepoRequest)(nil), // 62: o2control.AddRepoRequest - (*AddRepoReply)(nil), // 63: o2control.AddRepoReply - (*RemoveRepoRequest)(nil), // 64: o2control.RemoveRepoRequest - (*RemoveRepoReply)(nil), // 65: o2control.RemoveRepoReply - (*RefreshReposRequest)(nil), // 66: o2control.RefreshReposRequest - (*SetDefaultRepoRequest)(nil), // 67: o2control.SetDefaultRepoRequest - (*SetGlobalDefaultRevisionRequest)(nil), // 68: o2control.SetGlobalDefaultRevisionRequest - (*SetRepoDefaultRevisionRequest)(nil), // 69: o2control.SetRepoDefaultRevisionRequest - (*SetRepoDefaultRevisionReply)(nil), // 70: o2control.SetRepoDefaultRevisionReply - (*Empty)(nil), // 71: o2control.Empty - (*ListIntegratedServicesReply)(nil), // 72: o2control.ListIntegratedServicesReply - (*IntegratedServiceInfo)(nil), // 73: o2control.IntegratedServiceInfo - nil, // 74: o2control.EnvironmentInfo.DefaultsEntry - nil, // 75: o2control.EnvironmentInfo.VarsEntry - nil, // 76: o2control.EnvironmentInfo.UserVarsEntry - nil, // 77: o2control.EnvironmentInfo.IntegratedServicesDataEntry - nil, // 78: o2control.NewEnvironmentRequest.VarsEntry - nil, // 79: o2control.NewAutoEnvironmentRequest.VarsEntry - nil, // 80: o2control.SetEnvironmentPropertiesRequest.PropertiesEntry - nil, // 81: o2control.GetEnvironmentPropertiesReply.PropertiesEntry - nil, // 82: o2control.TaskInfo.PropertiesEntry - nil, // 83: o2control.RoleInfo.DefaultsEntry - nil, // 84: o2control.RoleInfo.VarsEntry - nil, // 85: o2control.RoleInfo.UserVarsEntry - nil, // 86: o2control.RoleInfo.ConsolidatedStackEntry - nil, // 87: o2control.WorkflowTemplateInfo.VarSpecMapEntry - nil, // 88: o2control.ListIntegratedServicesReply.ServicesEntry + (*GetAvailableDetectorsReply)(nil), // 36: o2control.GetAvailableDetectorsReply + (*SetEnvironmentPropertiesRequest)(nil), // 37: o2control.SetEnvironmentPropertiesRequest + (*SetEnvironmentPropertiesReply)(nil), // 38: o2control.SetEnvironmentPropertiesReply + (*GetEnvironmentPropertiesRequest)(nil), // 39: o2control.GetEnvironmentPropertiesRequest + (*GetEnvironmentPropertiesReply)(nil), // 40: o2control.GetEnvironmentPropertiesReply + (*ShortTaskInfo)(nil), // 41: o2control.ShortTaskInfo + (*TaskDeploymentInfo)(nil), // 42: o2control.TaskDeploymentInfo + (*GetTasksRequest)(nil), // 43: o2control.GetTasksRequest + (*GetTasksReply)(nil), // 44: o2control.GetTasksReply + (*GetTaskRequest)(nil), // 45: o2control.GetTaskRequest + (*GetTaskReply)(nil), // 46: o2control.GetTaskReply + (*TaskClassInfo)(nil), // 47: o2control.TaskClassInfo + (*CommandInfo)(nil), // 48: o2control.CommandInfo + (*ChannelInfo)(nil), // 49: o2control.ChannelInfo + (*TaskInfo)(nil), // 50: o2control.TaskInfo + (*CleanupTasksRequest)(nil), // 51: o2control.CleanupTasksRequest + (*CleanupTasksReply)(nil), // 52: o2control.CleanupTasksReply + (*GetRolesRequest)(nil), // 53: o2control.GetRolesRequest + (*RoleInfo)(nil), // 54: o2control.RoleInfo + (*GetRolesReply)(nil), // 55: o2control.GetRolesReply + (*GetWorkflowTemplatesRequest)(nil), // 56: o2control.GetWorkflowTemplatesRequest + (*VarSpecMessage)(nil), // 57: o2control.VarSpecMessage + (*WorkflowTemplateInfo)(nil), // 58: o2control.WorkflowTemplateInfo + (*GetWorkflowTemplatesReply)(nil), // 59: o2control.GetWorkflowTemplatesReply + (*ListReposRequest)(nil), // 60: o2control.ListReposRequest + (*RepoInfo)(nil), // 61: o2control.RepoInfo + (*ListReposReply)(nil), // 62: o2control.ListReposReply + (*AddRepoRequest)(nil), // 63: o2control.AddRepoRequest + (*AddRepoReply)(nil), // 64: o2control.AddRepoReply + (*RemoveRepoRequest)(nil), // 65: o2control.RemoveRepoRequest + (*RemoveRepoReply)(nil), // 66: o2control.RemoveRepoReply + (*RefreshReposRequest)(nil), // 67: o2control.RefreshReposRequest + (*SetDefaultRepoRequest)(nil), // 68: o2control.SetDefaultRepoRequest + (*SetGlobalDefaultRevisionRequest)(nil), // 69: o2control.SetGlobalDefaultRevisionRequest + (*SetRepoDefaultRevisionRequest)(nil), // 70: o2control.SetRepoDefaultRevisionRequest + (*SetRepoDefaultRevisionReply)(nil), // 71: o2control.SetRepoDefaultRevisionReply + (*Empty)(nil), // 72: o2control.Empty + (*ListIntegratedServicesReply)(nil), // 73: o2control.ListIntegratedServicesReply + (*IntegratedServiceInfo)(nil), // 74: o2control.IntegratedServiceInfo + nil, // 75: o2control.EnvironmentInfo.DefaultsEntry + nil, // 76: o2control.EnvironmentInfo.VarsEntry + nil, // 77: o2control.EnvironmentInfo.UserVarsEntry + nil, // 78: o2control.EnvironmentInfo.IntegratedServicesDataEntry + nil, // 79: o2control.NewEnvironmentRequest.VarsEntry + nil, // 80: o2control.NewAutoEnvironmentRequest.VarsEntry + nil, // 81: o2control.SetEnvironmentPropertiesRequest.PropertiesEntry + nil, // 82: o2control.GetEnvironmentPropertiesReply.PropertiesEntry + nil, // 83: o2control.TaskInfo.PropertiesEntry + nil, // 84: o2control.RoleInfo.DefaultsEntry + nil, // 85: o2control.RoleInfo.VarsEntry + nil, // 86: o2control.RoleInfo.UserVarsEntry + nil, // 87: o2control.RoleInfo.ConsolidatedStackEntry + nil, // 88: o2control.WorkflowTemplateInfo.VarSpecMapEntry + nil, // 89: o2control.ListIntegratedServicesReply.ServicesEntry } var file_protos_o2control_proto_depIdxs = []int32{ 11, // 0: o2control.StatusReply.statusUpdates:type_name -> o2control.StatusUpdate @@ -5622,48 +5679,48 @@ var file_protos_o2control_proto_depIdxs = []int32{ 8, // 5: o2control.Event.roleEvent:type_name -> o2control.Ev_RoleEvent 15, // 6: o2control.GetFrameworkInfoReply.version:type_name -> o2control.Version 21, // 7: o2control.GetEnvironmentsReply.environments:type_name -> o2control.EnvironmentInfo - 40, // 8: o2control.EnvironmentInfo.tasks:type_name -> o2control.ShortTaskInfo - 74, // 9: o2control.EnvironmentInfo.defaults:type_name -> o2control.EnvironmentInfo.DefaultsEntry - 75, // 10: o2control.EnvironmentInfo.vars:type_name -> o2control.EnvironmentInfo.VarsEntry - 76, // 11: o2control.EnvironmentInfo.userVars:type_name -> o2control.EnvironmentInfo.UserVarsEntry - 77, // 12: o2control.EnvironmentInfo.integratedServicesData:type_name -> o2control.EnvironmentInfo.IntegratedServicesDataEntry - 78, // 13: o2control.NewEnvironmentRequest.vars:type_name -> o2control.NewEnvironmentRequest.VarsEntry + 41, // 8: o2control.EnvironmentInfo.tasks:type_name -> o2control.ShortTaskInfo + 75, // 9: o2control.EnvironmentInfo.defaults:type_name -> o2control.EnvironmentInfo.DefaultsEntry + 76, // 10: o2control.EnvironmentInfo.vars:type_name -> o2control.EnvironmentInfo.VarsEntry + 77, // 11: o2control.EnvironmentInfo.userVars:type_name -> o2control.EnvironmentInfo.UserVarsEntry + 78, // 12: o2control.EnvironmentInfo.integratedServicesData:type_name -> o2control.EnvironmentInfo.IntegratedServicesDataEntry + 79, // 13: o2control.NewEnvironmentRequest.vars:type_name -> o2control.NewEnvironmentRequest.VarsEntry 21, // 14: o2control.NewEnvironmentReply.environment:type_name -> o2control.EnvironmentInfo - 79, // 15: o2control.NewAutoEnvironmentRequest.vars:type_name -> o2control.NewAutoEnvironmentRequest.VarsEntry + 80, // 15: o2control.NewAutoEnvironmentRequest.vars:type_name -> o2control.NewAutoEnvironmentRequest.VarsEntry 21, // 16: o2control.GetEnvironmentReply.environment:type_name -> o2control.EnvironmentInfo - 53, // 17: o2control.GetEnvironmentReply.workflow:type_name -> o2control.RoleInfo + 54, // 17: o2control.GetEnvironmentReply.workflow:type_name -> o2control.RoleInfo 1, // 18: o2control.ControlEnvironmentRequest.type:type_name -> o2control.ControlEnvironmentRequest.Optype 31, // 19: o2control.ModifyEnvironmentRequest.operations:type_name -> o2control.EnvironmentOperation 2, // 20: o2control.EnvironmentOperation.type:type_name -> o2control.EnvironmentOperation.Optype 31, // 21: o2control.ModifyEnvironmentReply.failedOperations:type_name -> o2control.EnvironmentOperation - 51, // 22: o2control.DestroyEnvironmentReply.cleanupTasksReply:type_name -> o2control.CleanupTasksReply - 80, // 23: o2control.SetEnvironmentPropertiesRequest.properties:type_name -> o2control.SetEnvironmentPropertiesRequest.PropertiesEntry - 81, // 24: o2control.GetEnvironmentPropertiesReply.properties:type_name -> o2control.GetEnvironmentPropertiesReply.PropertiesEntry - 41, // 25: o2control.ShortTaskInfo.deploymentInfo:type_name -> o2control.TaskDeploymentInfo - 40, // 26: o2control.GetTasksReply.tasks:type_name -> o2control.ShortTaskInfo - 49, // 27: o2control.GetTaskReply.task:type_name -> o2control.TaskInfo - 40, // 28: o2control.TaskInfo.shortInfo:type_name -> o2control.ShortTaskInfo - 46, // 29: o2control.TaskInfo.classInfo:type_name -> o2control.TaskClassInfo - 48, // 30: o2control.TaskInfo.inboundChannels:type_name -> o2control.ChannelInfo - 48, // 31: o2control.TaskInfo.outboundChannels:type_name -> o2control.ChannelInfo - 47, // 32: o2control.TaskInfo.commandInfo:type_name -> o2control.CommandInfo - 82, // 33: o2control.TaskInfo.properties:type_name -> o2control.TaskInfo.PropertiesEntry - 40, // 34: o2control.CleanupTasksReply.killedTasks:type_name -> o2control.ShortTaskInfo - 40, // 35: o2control.CleanupTasksReply.runningTasks:type_name -> o2control.ShortTaskInfo - 53, // 36: o2control.RoleInfo.roles:type_name -> o2control.RoleInfo - 83, // 37: o2control.RoleInfo.defaults:type_name -> o2control.RoleInfo.DefaultsEntry - 84, // 38: o2control.RoleInfo.vars:type_name -> o2control.RoleInfo.VarsEntry - 85, // 39: o2control.RoleInfo.userVars:type_name -> o2control.RoleInfo.UserVarsEntry - 86, // 40: o2control.RoleInfo.consolidatedStack:type_name -> o2control.RoleInfo.ConsolidatedStackEntry - 53, // 41: o2control.GetRolesReply.roles:type_name -> o2control.RoleInfo + 52, // 22: o2control.DestroyEnvironmentReply.cleanupTasksReply:type_name -> o2control.CleanupTasksReply + 81, // 23: o2control.SetEnvironmentPropertiesRequest.properties:type_name -> o2control.SetEnvironmentPropertiesRequest.PropertiesEntry + 82, // 24: o2control.GetEnvironmentPropertiesReply.properties:type_name -> o2control.GetEnvironmentPropertiesReply.PropertiesEntry + 42, // 25: o2control.ShortTaskInfo.deploymentInfo:type_name -> o2control.TaskDeploymentInfo + 41, // 26: o2control.GetTasksReply.tasks:type_name -> o2control.ShortTaskInfo + 50, // 27: o2control.GetTaskReply.task:type_name -> o2control.TaskInfo + 41, // 28: o2control.TaskInfo.shortInfo:type_name -> o2control.ShortTaskInfo + 47, // 29: o2control.TaskInfo.classInfo:type_name -> o2control.TaskClassInfo + 49, // 30: o2control.TaskInfo.inboundChannels:type_name -> o2control.ChannelInfo + 49, // 31: o2control.TaskInfo.outboundChannels:type_name -> o2control.ChannelInfo + 48, // 32: o2control.TaskInfo.commandInfo:type_name -> o2control.CommandInfo + 83, // 33: o2control.TaskInfo.properties:type_name -> o2control.TaskInfo.PropertiesEntry + 41, // 34: o2control.CleanupTasksReply.killedTasks:type_name -> o2control.ShortTaskInfo + 41, // 35: o2control.CleanupTasksReply.runningTasks:type_name -> o2control.ShortTaskInfo + 54, // 36: o2control.RoleInfo.roles:type_name -> o2control.RoleInfo + 84, // 37: o2control.RoleInfo.defaults:type_name -> o2control.RoleInfo.DefaultsEntry + 85, // 38: o2control.RoleInfo.vars:type_name -> o2control.RoleInfo.VarsEntry + 86, // 39: o2control.RoleInfo.userVars:type_name -> o2control.RoleInfo.UserVarsEntry + 87, // 40: o2control.RoleInfo.consolidatedStack:type_name -> o2control.RoleInfo.ConsolidatedStackEntry + 54, // 41: o2control.GetRolesReply.roles:type_name -> o2control.RoleInfo 4, // 42: o2control.VarSpecMessage.type:type_name -> o2control.VarSpecMessage.Type 3, // 43: o2control.VarSpecMessage.widget:type_name -> o2control.VarSpecMessage.UiWidget - 87, // 44: o2control.WorkflowTemplateInfo.varSpecMap:type_name -> o2control.WorkflowTemplateInfo.VarSpecMapEntry - 57, // 45: o2control.GetWorkflowTemplatesReply.workflowTemplates:type_name -> o2control.WorkflowTemplateInfo - 60, // 46: o2control.ListReposReply.repos:type_name -> o2control.RepoInfo - 88, // 47: o2control.ListIntegratedServicesReply.services:type_name -> o2control.ListIntegratedServicesReply.ServicesEntry - 56, // 48: o2control.WorkflowTemplateInfo.VarSpecMapEntry.value:type_name -> o2control.VarSpecMessage - 73, // 49: o2control.ListIntegratedServicesReply.ServicesEntry.value:type_name -> o2control.IntegratedServiceInfo + 88, // 44: o2control.WorkflowTemplateInfo.varSpecMap:type_name -> o2control.WorkflowTemplateInfo.VarSpecMapEntry + 58, // 45: o2control.GetWorkflowTemplatesReply.workflowTemplates:type_name -> o2control.WorkflowTemplateInfo + 61, // 46: o2control.ListReposReply.repos:type_name -> o2control.RepoInfo + 89, // 47: o2control.ListIntegratedServicesReply.services:type_name -> o2control.ListIntegratedServicesReply.ServicesEntry + 57, // 48: o2control.WorkflowTemplateInfo.VarSpecMapEntry.value:type_name -> o2control.VarSpecMessage + 74, // 49: o2control.ListIntegratedServicesReply.ServicesEntry.value:type_name -> o2control.IntegratedServiceInfo 9, // 50: o2control.Control.TrackStatus:input_type -> o2control.StatusRequest 14, // 51: o2control.Control.GetFrameworkInfo:input_type -> o2control.GetFrameworkInfoRequest 17, // 52: o2control.Control.Teardown:input_type -> o2control.TeardownRequest @@ -5674,48 +5731,50 @@ var file_protos_o2control_proto_depIdxs = []int32{ 28, // 57: o2control.Control.ControlEnvironment:input_type -> o2control.ControlEnvironmentRequest 30, // 58: o2control.Control.ModifyEnvironment:input_type -> o2control.ModifyEnvironmentRequest 33, // 59: o2control.Control.DestroyEnvironment:input_type -> o2control.DestroyEnvironmentRequest - 71, // 60: o2control.Control.GetActiveDetectors:input_type -> o2control.Empty - 42, // 61: o2control.Control.GetTasks:input_type -> o2control.GetTasksRequest - 44, // 62: o2control.Control.GetTask:input_type -> o2control.GetTaskRequest - 50, // 63: o2control.Control.CleanupTasks:input_type -> o2control.CleanupTasksRequest - 52, // 64: o2control.Control.GetRoles:input_type -> o2control.GetRolesRequest - 55, // 65: o2control.Control.GetWorkflowTemplates:input_type -> o2control.GetWorkflowTemplatesRequest - 59, // 66: o2control.Control.ListRepos:input_type -> o2control.ListReposRequest - 62, // 67: o2control.Control.AddRepo:input_type -> o2control.AddRepoRequest - 64, // 68: o2control.Control.RemoveRepo:input_type -> o2control.RemoveRepoRequest - 66, // 69: o2control.Control.RefreshRepos:input_type -> o2control.RefreshReposRequest - 67, // 70: o2control.Control.SetDefaultRepo:input_type -> o2control.SetDefaultRepoRequest - 68, // 71: o2control.Control.SetGlobalDefaultRevision:input_type -> o2control.SetGlobalDefaultRevisionRequest - 69, // 72: o2control.Control.SetRepoDefaultRevision:input_type -> o2control.SetRepoDefaultRevisionRequest - 13, // 73: o2control.Control.Subscribe:input_type -> o2control.SubscribeRequest - 71, // 74: o2control.Control.GetIntegratedServices:input_type -> o2control.Empty - 10, // 75: o2control.Control.TrackStatus:output_type -> o2control.StatusReply - 16, // 76: o2control.Control.GetFrameworkInfo:output_type -> o2control.GetFrameworkInfoReply - 18, // 77: o2control.Control.Teardown:output_type -> o2control.TeardownReply - 20, // 78: o2control.Control.GetEnvironments:output_type -> o2control.GetEnvironmentsReply - 25, // 79: o2control.Control.NewAutoEnvironment:output_type -> o2control.NewAutoEnvironmentReply - 23, // 80: o2control.Control.NewEnvironment:output_type -> o2control.NewEnvironmentReply - 27, // 81: o2control.Control.GetEnvironment:output_type -> o2control.GetEnvironmentReply - 29, // 82: o2control.Control.ControlEnvironment:output_type -> o2control.ControlEnvironmentReply - 32, // 83: o2control.Control.ModifyEnvironment:output_type -> o2control.ModifyEnvironmentReply - 34, // 84: o2control.Control.DestroyEnvironment:output_type -> o2control.DestroyEnvironmentReply - 35, // 85: o2control.Control.GetActiveDetectors:output_type -> o2control.GetActiveDetectorsReply - 43, // 86: o2control.Control.GetTasks:output_type -> o2control.GetTasksReply - 45, // 87: o2control.Control.GetTask:output_type -> o2control.GetTaskReply - 51, // 88: o2control.Control.CleanupTasks:output_type -> o2control.CleanupTasksReply - 54, // 89: o2control.Control.GetRoles:output_type -> o2control.GetRolesReply - 58, // 90: o2control.Control.GetWorkflowTemplates:output_type -> o2control.GetWorkflowTemplatesReply - 61, // 91: o2control.Control.ListRepos:output_type -> o2control.ListReposReply - 63, // 92: o2control.Control.AddRepo:output_type -> o2control.AddRepoReply - 65, // 93: o2control.Control.RemoveRepo:output_type -> o2control.RemoveRepoReply - 71, // 94: o2control.Control.RefreshRepos:output_type -> o2control.Empty - 71, // 95: o2control.Control.SetDefaultRepo:output_type -> o2control.Empty - 71, // 96: o2control.Control.SetGlobalDefaultRevision:output_type -> o2control.Empty - 70, // 97: o2control.Control.SetRepoDefaultRevision:output_type -> o2control.SetRepoDefaultRevisionReply - 12, // 98: o2control.Control.Subscribe:output_type -> o2control.Event - 72, // 99: o2control.Control.GetIntegratedServices:output_type -> o2control.ListIntegratedServicesReply - 75, // [75:100] is the sub-list for method output_type - 50, // [50:75] is the sub-list for method input_type + 72, // 60: o2control.Control.GetActiveDetectors:input_type -> o2control.Empty + 72, // 61: o2control.Control.GetAvailableDetectors:input_type -> o2control.Empty + 43, // 62: o2control.Control.GetTasks:input_type -> o2control.GetTasksRequest + 45, // 63: o2control.Control.GetTask:input_type -> o2control.GetTaskRequest + 51, // 64: o2control.Control.CleanupTasks:input_type -> o2control.CleanupTasksRequest + 53, // 65: o2control.Control.GetRoles:input_type -> o2control.GetRolesRequest + 56, // 66: o2control.Control.GetWorkflowTemplates:input_type -> o2control.GetWorkflowTemplatesRequest + 60, // 67: o2control.Control.ListRepos:input_type -> o2control.ListReposRequest + 63, // 68: o2control.Control.AddRepo:input_type -> o2control.AddRepoRequest + 65, // 69: o2control.Control.RemoveRepo:input_type -> o2control.RemoveRepoRequest + 67, // 70: o2control.Control.RefreshRepos:input_type -> o2control.RefreshReposRequest + 68, // 71: o2control.Control.SetDefaultRepo:input_type -> o2control.SetDefaultRepoRequest + 69, // 72: o2control.Control.SetGlobalDefaultRevision:input_type -> o2control.SetGlobalDefaultRevisionRequest + 70, // 73: o2control.Control.SetRepoDefaultRevision:input_type -> o2control.SetRepoDefaultRevisionRequest + 13, // 74: o2control.Control.Subscribe:input_type -> o2control.SubscribeRequest + 72, // 75: o2control.Control.GetIntegratedServices:input_type -> o2control.Empty + 10, // 76: o2control.Control.TrackStatus:output_type -> o2control.StatusReply + 16, // 77: o2control.Control.GetFrameworkInfo:output_type -> o2control.GetFrameworkInfoReply + 18, // 78: o2control.Control.Teardown:output_type -> o2control.TeardownReply + 20, // 79: o2control.Control.GetEnvironments:output_type -> o2control.GetEnvironmentsReply + 25, // 80: o2control.Control.NewAutoEnvironment:output_type -> o2control.NewAutoEnvironmentReply + 23, // 81: o2control.Control.NewEnvironment:output_type -> o2control.NewEnvironmentReply + 27, // 82: o2control.Control.GetEnvironment:output_type -> o2control.GetEnvironmentReply + 29, // 83: o2control.Control.ControlEnvironment:output_type -> o2control.ControlEnvironmentReply + 32, // 84: o2control.Control.ModifyEnvironment:output_type -> o2control.ModifyEnvironmentReply + 34, // 85: o2control.Control.DestroyEnvironment:output_type -> o2control.DestroyEnvironmentReply + 35, // 86: o2control.Control.GetActiveDetectors:output_type -> o2control.GetActiveDetectorsReply + 36, // 87: o2control.Control.GetAvailableDetectors:output_type -> o2control.GetAvailableDetectorsReply + 44, // 88: o2control.Control.GetTasks:output_type -> o2control.GetTasksReply + 46, // 89: o2control.Control.GetTask:output_type -> o2control.GetTaskReply + 52, // 90: o2control.Control.CleanupTasks:output_type -> o2control.CleanupTasksReply + 55, // 91: o2control.Control.GetRoles:output_type -> o2control.GetRolesReply + 59, // 92: o2control.Control.GetWorkflowTemplates:output_type -> o2control.GetWorkflowTemplatesReply + 62, // 93: o2control.Control.ListRepos:output_type -> o2control.ListReposReply + 64, // 94: o2control.Control.AddRepo:output_type -> o2control.AddRepoReply + 66, // 95: o2control.Control.RemoveRepo:output_type -> o2control.RemoveRepoReply + 72, // 96: o2control.Control.RefreshRepos:output_type -> o2control.Empty + 72, // 97: o2control.Control.SetDefaultRepo:output_type -> o2control.Empty + 72, // 98: o2control.Control.SetGlobalDefaultRevision:output_type -> o2control.Empty + 71, // 99: o2control.Control.SetRepoDefaultRevision:output_type -> o2control.SetRepoDefaultRevisionReply + 12, // 100: o2control.Control.Subscribe:output_type -> o2control.Event + 73, // 101: o2control.Control.GetIntegratedServices:output_type -> o2control.ListIntegratedServicesReply + 76, // [76:102] is the sub-list for method output_type + 50, // [50:76] is the sub-list for method input_type 50, // [50:50] is the sub-list for extension type_name 50, // [50:50] is the sub-list for extension extendee 0, // [0:50] is the sub-list for field type_name @@ -6100,7 +6159,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetEnvironmentPropertiesRequest); i { + switch v := v.(*GetAvailableDetectorsReply); i { case 0: return &v.state case 1: @@ -6112,7 +6171,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetEnvironmentPropertiesReply); i { + switch v := v.(*SetEnvironmentPropertiesRequest); i { case 0: return &v.state case 1: @@ -6124,7 +6183,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetEnvironmentPropertiesRequest); i { + switch v := v.(*SetEnvironmentPropertiesReply); i { case 0: return &v.state case 1: @@ -6136,7 +6195,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetEnvironmentPropertiesReply); i { + switch v := v.(*GetEnvironmentPropertiesRequest); i { case 0: return &v.state case 1: @@ -6148,7 +6207,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShortTaskInfo); i { + switch v := v.(*GetEnvironmentPropertiesReply); i { case 0: return &v.state case 1: @@ -6160,7 +6219,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskDeploymentInfo); i { + switch v := v.(*ShortTaskInfo); i { case 0: return &v.state case 1: @@ -6172,7 +6231,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTasksRequest); i { + switch v := v.(*TaskDeploymentInfo); i { case 0: return &v.state case 1: @@ -6184,7 +6243,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTasksReply); i { + switch v := v.(*GetTasksRequest); i { case 0: return &v.state case 1: @@ -6196,7 +6255,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTaskRequest); i { + switch v := v.(*GetTasksReply); i { case 0: return &v.state case 1: @@ -6208,7 +6267,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTaskReply); i { + switch v := v.(*GetTaskRequest); i { case 0: return &v.state case 1: @@ -6220,7 +6279,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskClassInfo); i { + switch v := v.(*GetTaskReply); i { case 0: return &v.state case 1: @@ -6232,7 +6291,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommandInfo); i { + switch v := v.(*TaskClassInfo); i { case 0: return &v.state case 1: @@ -6244,7 +6303,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChannelInfo); i { + switch v := v.(*CommandInfo); i { case 0: return &v.state case 1: @@ -6256,7 +6315,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskInfo); i { + switch v := v.(*ChannelInfo); i { case 0: return &v.state case 1: @@ -6268,7 +6327,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CleanupTasksRequest); i { + switch v := v.(*TaskInfo); i { case 0: return &v.state case 1: @@ -6280,7 +6339,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CleanupTasksReply); i { + switch v := v.(*CleanupTasksRequest); i { case 0: return &v.state case 1: @@ -6292,7 +6351,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesRequest); i { + switch v := v.(*CleanupTasksReply); i { case 0: return &v.state case 1: @@ -6304,7 +6363,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoleInfo); i { + switch v := v.(*GetRolesRequest); i { case 0: return &v.state case 1: @@ -6316,7 +6375,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesReply); i { + switch v := v.(*RoleInfo); i { case 0: return &v.state case 1: @@ -6328,7 +6387,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWorkflowTemplatesRequest); i { + switch v := v.(*GetRolesReply); i { case 0: return &v.state case 1: @@ -6340,7 +6399,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VarSpecMessage); i { + switch v := v.(*GetWorkflowTemplatesRequest); i { case 0: return &v.state case 1: @@ -6352,7 +6411,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowTemplateInfo); i { + switch v := v.(*VarSpecMessage); i { case 0: return &v.state case 1: @@ -6364,7 +6423,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWorkflowTemplatesReply); i { + switch v := v.(*WorkflowTemplateInfo); i { case 0: return &v.state case 1: @@ -6376,7 +6435,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReposRequest); i { + switch v := v.(*GetWorkflowTemplatesReply); i { case 0: return &v.state case 1: @@ -6388,7 +6447,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepoInfo); i { + switch v := v.(*ListReposRequest); i { case 0: return &v.state case 1: @@ -6400,7 +6459,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReposReply); i { + switch v := v.(*RepoInfo); i { case 0: return &v.state case 1: @@ -6412,7 +6471,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRepoRequest); i { + switch v := v.(*ListReposReply); i { case 0: return &v.state case 1: @@ -6424,7 +6483,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRepoReply); i { + switch v := v.(*AddRepoRequest); i { case 0: return &v.state case 1: @@ -6436,7 +6495,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveRepoRequest); i { + switch v := v.(*AddRepoReply); i { case 0: return &v.state case 1: @@ -6448,7 +6507,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveRepoReply); i { + switch v := v.(*RemoveRepoRequest); i { case 0: return &v.state case 1: @@ -6460,7 +6519,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshReposRequest); i { + switch v := v.(*RemoveRepoReply); i { case 0: return &v.state case 1: @@ -6472,7 +6531,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDefaultRepoRequest); i { + switch v := v.(*RefreshReposRequest); i { case 0: return &v.state case 1: @@ -6484,7 +6543,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGlobalDefaultRevisionRequest); i { + switch v := v.(*SetDefaultRepoRequest); i { case 0: return &v.state case 1: @@ -6496,7 +6555,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRepoDefaultRevisionRequest); i { + switch v := v.(*SetGlobalDefaultRevisionRequest); i { case 0: return &v.state case 1: @@ -6508,7 +6567,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRepoDefaultRevisionReply); i { + switch v := v.(*SetRepoDefaultRevisionRequest); i { case 0: return &v.state case 1: @@ -6520,7 +6579,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Empty); i { + switch v := v.(*SetRepoDefaultRevisionReply); i { case 0: return &v.state case 1: @@ -6532,7 +6591,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListIntegratedServicesReply); i { + switch v := v.(*Empty); i { case 0: return &v.state case 1: @@ -6544,6 +6603,18 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIntegratedServicesReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_o2control_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IntegratedServiceInfo); i { case 0: return &v.state @@ -6570,7 +6641,7 @@ func file_protos_o2control_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protos_o2control_proto_rawDesc, NumEnums: 5, - NumMessages: 84, + NumMessages: 85, NumExtensions: 0, NumServices: 1, }, diff --git a/coconut/protos/o2control_grpc.pb.go b/coconut/protos/o2control_grpc.pb.go index 0ece9cea..e3bca95b 100644 --- a/coconut/protos/o2control_grpc.pb.go +++ b/coconut/protos/o2control_grpc.pb.go @@ -1,7 +1,30 @@ +// +// === This file is part of ALICE O² === +// +// Copyright 2018 CERN and copyright holders of ALICE O². +// Author: Teo Mrnjavac <teo.mrnjavac@cern.ch> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// In applying this license CERN does not waive the privileges and +// immunities granted to it by virtue of its status as an +// Intergovernmental Organization or submit itself to any jurisdiction. + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v4.23.4 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.1 // source: protos/o2control.proto package pb @@ -18,6 +41,35 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + Control_TrackStatus_FullMethodName = "/o2control.Control/TrackStatus" + Control_GetFrameworkInfo_FullMethodName = "/o2control.Control/GetFrameworkInfo" + Control_Teardown_FullMethodName = "/o2control.Control/Teardown" + Control_GetEnvironments_FullMethodName = "/o2control.Control/GetEnvironments" + Control_NewAutoEnvironment_FullMethodName = "/o2control.Control/NewAutoEnvironment" + Control_NewEnvironment_FullMethodName = "/o2control.Control/NewEnvironment" + Control_GetEnvironment_FullMethodName = "/o2control.Control/GetEnvironment" + Control_ControlEnvironment_FullMethodName = "/o2control.Control/ControlEnvironment" + Control_ModifyEnvironment_FullMethodName = "/o2control.Control/ModifyEnvironment" + Control_DestroyEnvironment_FullMethodName = "/o2control.Control/DestroyEnvironment" + Control_GetActiveDetectors_FullMethodName = "/o2control.Control/GetActiveDetectors" + Control_GetAvailableDetectors_FullMethodName = "/o2control.Control/GetAvailableDetectors" + Control_GetTasks_FullMethodName = "/o2control.Control/GetTasks" + Control_GetTask_FullMethodName = "/o2control.Control/GetTask" + Control_CleanupTasks_FullMethodName = "/o2control.Control/CleanupTasks" + Control_GetRoles_FullMethodName = "/o2control.Control/GetRoles" + Control_GetWorkflowTemplates_FullMethodName = "/o2control.Control/GetWorkflowTemplates" + Control_ListRepos_FullMethodName = "/o2control.Control/ListRepos" + Control_AddRepo_FullMethodName = "/o2control.Control/AddRepo" + Control_RemoveRepo_FullMethodName = "/o2control.Control/RemoveRepo" + Control_RefreshRepos_FullMethodName = "/o2control.Control/RefreshRepos" + Control_SetDefaultRepo_FullMethodName = "/o2control.Control/SetDefaultRepo" + Control_SetGlobalDefaultRevision_FullMethodName = "/o2control.Control/SetGlobalDefaultRevision" + Control_SetRepoDefaultRevision_FullMethodName = "/o2control.Control/SetRepoDefaultRevision" + Control_Subscribe_FullMethodName = "/o2control.Control/Subscribe" + Control_GetIntegratedServices_FullMethodName = "/o2control.Control/GetIntegratedServices" +) + // ControlClient is the client API for Control service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -33,6 +85,7 @@ type ControlClient interface { ModifyEnvironment(ctx context.Context, in *ModifyEnvironmentRequest, opts ...grpc.CallOption) (*ModifyEnvironmentReply, error) DestroyEnvironment(ctx context.Context, in *DestroyEnvironmentRequest, opts ...grpc.CallOption) (*DestroyEnvironmentReply, error) GetActiveDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetActiveDetectorsReply, error) + GetAvailableDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetAvailableDetectorsReply, error) GetTasks(ctx context.Context, in *GetTasksRequest, opts ...grpc.CallOption) (*GetTasksReply, error) GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*GetTaskReply, error) CleanupTasks(ctx context.Context, in *CleanupTasksRequest, opts ...grpc.CallOption) (*CleanupTasksReply, error) @@ -58,7 +111,7 @@ func NewControlClient(cc grpc.ClientConnInterface) ControlClient { } func (c *controlClient) TrackStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (Control_TrackStatusClient, error) { - stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[0], "/o2control.Control/TrackStatus", opts...) + stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[0], Control_TrackStatus_FullMethodName, opts...) if err != nil { return nil, err } @@ -91,7 +144,7 @@ func (x *controlTrackStatusClient) Recv() (*StatusReply, error) { func (c *controlClient) GetFrameworkInfo(ctx context.Context, in *GetFrameworkInfoRequest, opts ...grpc.CallOption) (*GetFrameworkInfoReply, error) { out := new(GetFrameworkInfoReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetFrameworkInfo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetFrameworkInfo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +153,7 @@ func (c *controlClient) GetFrameworkInfo(ctx context.Context, in *GetFrameworkIn func (c *controlClient) Teardown(ctx context.Context, in *TeardownRequest, opts ...grpc.CallOption) (*TeardownReply, error) { out := new(TeardownReply) - err := c.cc.Invoke(ctx, "/o2control.Control/Teardown", in, out, opts...) + err := c.cc.Invoke(ctx, Control_Teardown_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -109,7 +162,7 @@ func (c *controlClient) Teardown(ctx context.Context, in *TeardownRequest, opts func (c *controlClient) GetEnvironments(ctx context.Context, in *GetEnvironmentsRequest, opts ...grpc.CallOption) (*GetEnvironmentsReply, error) { out := new(GetEnvironmentsReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetEnvironments", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetEnvironments_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -118,7 +171,7 @@ func (c *controlClient) GetEnvironments(ctx context.Context, in *GetEnvironments func (c *controlClient) NewAutoEnvironment(ctx context.Context, in *NewAutoEnvironmentRequest, opts ...grpc.CallOption) (*NewAutoEnvironmentReply, error) { out := new(NewAutoEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/NewAutoEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_NewAutoEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -127,7 +180,7 @@ func (c *controlClient) NewAutoEnvironment(ctx context.Context, in *NewAutoEnvir func (c *controlClient) NewEnvironment(ctx context.Context, in *NewEnvironmentRequest, opts ...grpc.CallOption) (*NewEnvironmentReply, error) { out := new(NewEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/NewEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_NewEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -136,7 +189,7 @@ func (c *controlClient) NewEnvironment(ctx context.Context, in *NewEnvironmentRe func (c *controlClient) GetEnvironment(ctx context.Context, in *GetEnvironmentRequest, opts ...grpc.CallOption) (*GetEnvironmentReply, error) { out := new(GetEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -145,7 +198,7 @@ func (c *controlClient) GetEnvironment(ctx context.Context, in *GetEnvironmentRe func (c *controlClient) ControlEnvironment(ctx context.Context, in *ControlEnvironmentRequest, opts ...grpc.CallOption) (*ControlEnvironmentReply, error) { out := new(ControlEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/ControlEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_ControlEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -154,7 +207,7 @@ func (c *controlClient) ControlEnvironment(ctx context.Context, in *ControlEnvir func (c *controlClient) ModifyEnvironment(ctx context.Context, in *ModifyEnvironmentRequest, opts ...grpc.CallOption) (*ModifyEnvironmentReply, error) { out := new(ModifyEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/ModifyEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_ModifyEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -163,7 +216,7 @@ func (c *controlClient) ModifyEnvironment(ctx context.Context, in *ModifyEnviron func (c *controlClient) DestroyEnvironment(ctx context.Context, in *DestroyEnvironmentRequest, opts ...grpc.CallOption) (*DestroyEnvironmentReply, error) { out := new(DestroyEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/DestroyEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_DestroyEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -172,7 +225,16 @@ func (c *controlClient) DestroyEnvironment(ctx context.Context, in *DestroyEnvir func (c *controlClient) GetActiveDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetActiveDetectorsReply, error) { out := new(GetActiveDetectorsReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetActiveDetectors", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetActiveDetectors_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) GetAvailableDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetAvailableDetectorsReply, error) { + out := new(GetAvailableDetectorsReply) + err := c.cc.Invoke(ctx, Control_GetAvailableDetectors_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -181,7 +243,7 @@ func (c *controlClient) GetActiveDetectors(ctx context.Context, in *Empty, opts func (c *controlClient) GetTasks(ctx context.Context, in *GetTasksRequest, opts ...grpc.CallOption) (*GetTasksReply, error) { out := new(GetTasksReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetTasks", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetTasks_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -190,7 +252,7 @@ func (c *controlClient) GetTasks(ctx context.Context, in *GetTasksRequest, opts func (c *controlClient) GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*GetTaskReply, error) { out := new(GetTaskReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetTask", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetTask_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -199,7 +261,7 @@ func (c *controlClient) GetTask(ctx context.Context, in *GetTaskRequest, opts .. func (c *controlClient) CleanupTasks(ctx context.Context, in *CleanupTasksRequest, opts ...grpc.CallOption) (*CleanupTasksReply, error) { out := new(CleanupTasksReply) - err := c.cc.Invoke(ctx, "/o2control.Control/CleanupTasks", in, out, opts...) + err := c.cc.Invoke(ctx, Control_CleanupTasks_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -208,7 +270,7 @@ func (c *controlClient) CleanupTasks(ctx context.Context, in *CleanupTasksReques func (c *controlClient) GetRoles(ctx context.Context, in *GetRolesRequest, opts ...grpc.CallOption) (*GetRolesReply, error) { out := new(GetRolesReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetRoles", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetRoles_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -217,7 +279,7 @@ func (c *controlClient) GetRoles(ctx context.Context, in *GetRolesRequest, opts func (c *controlClient) GetWorkflowTemplates(ctx context.Context, in *GetWorkflowTemplatesRequest, opts ...grpc.CallOption) (*GetWorkflowTemplatesReply, error) { out := new(GetWorkflowTemplatesReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetWorkflowTemplates", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetWorkflowTemplates_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -226,7 +288,7 @@ func (c *controlClient) GetWorkflowTemplates(ctx context.Context, in *GetWorkflo func (c *controlClient) ListRepos(ctx context.Context, in *ListReposRequest, opts ...grpc.CallOption) (*ListReposReply, error) { out := new(ListReposReply) - err := c.cc.Invoke(ctx, "/o2control.Control/ListRepos", in, out, opts...) + err := c.cc.Invoke(ctx, Control_ListRepos_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -235,7 +297,7 @@ func (c *controlClient) ListRepos(ctx context.Context, in *ListReposRequest, opt func (c *controlClient) AddRepo(ctx context.Context, in *AddRepoRequest, opts ...grpc.CallOption) (*AddRepoReply, error) { out := new(AddRepoReply) - err := c.cc.Invoke(ctx, "/o2control.Control/AddRepo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_AddRepo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -244,7 +306,7 @@ func (c *controlClient) AddRepo(ctx context.Context, in *AddRepoRequest, opts .. func (c *controlClient) RemoveRepo(ctx context.Context, in *RemoveRepoRequest, opts ...grpc.CallOption) (*RemoveRepoReply, error) { out := new(RemoveRepoReply) - err := c.cc.Invoke(ctx, "/o2control.Control/RemoveRepo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_RemoveRepo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -253,7 +315,7 @@ func (c *controlClient) RemoveRepo(ctx context.Context, in *RemoveRepoRequest, o func (c *controlClient) RefreshRepos(ctx context.Context, in *RefreshReposRequest, opts ...grpc.CallOption) (*Empty, error) { out := new(Empty) - err := c.cc.Invoke(ctx, "/o2control.Control/RefreshRepos", in, out, opts...) + err := c.cc.Invoke(ctx, Control_RefreshRepos_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -262,7 +324,7 @@ func (c *controlClient) RefreshRepos(ctx context.Context, in *RefreshReposReques func (c *controlClient) SetDefaultRepo(ctx context.Context, in *SetDefaultRepoRequest, opts ...grpc.CallOption) (*Empty, error) { out := new(Empty) - err := c.cc.Invoke(ctx, "/o2control.Control/SetDefaultRepo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_SetDefaultRepo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -271,7 +333,7 @@ func (c *controlClient) SetDefaultRepo(ctx context.Context, in *SetDefaultRepoRe func (c *controlClient) SetGlobalDefaultRevision(ctx context.Context, in *SetGlobalDefaultRevisionRequest, opts ...grpc.CallOption) (*Empty, error) { out := new(Empty) - err := c.cc.Invoke(ctx, "/o2control.Control/SetGlobalDefaultRevision", in, out, opts...) + err := c.cc.Invoke(ctx, Control_SetGlobalDefaultRevision_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -280,7 +342,7 @@ func (c *controlClient) SetGlobalDefaultRevision(ctx context.Context, in *SetGlo func (c *controlClient) SetRepoDefaultRevision(ctx context.Context, in *SetRepoDefaultRevisionRequest, opts ...grpc.CallOption) (*SetRepoDefaultRevisionReply, error) { out := new(SetRepoDefaultRevisionReply) - err := c.cc.Invoke(ctx, "/o2control.Control/SetRepoDefaultRevision", in, out, opts...) + err := c.cc.Invoke(ctx, Control_SetRepoDefaultRevision_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -288,7 +350,7 @@ func (c *controlClient) SetRepoDefaultRevision(ctx context.Context, in *SetRepoD } func (c *controlClient) Subscribe(ctx context.Context, in *SubscribeRequest, opts ...grpc.CallOption) (Control_SubscribeClient, error) { - stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[1], "/o2control.Control/Subscribe", opts...) + stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[1], Control_Subscribe_FullMethodName, opts...) if err != nil { return nil, err } @@ -321,7 +383,7 @@ func (x *controlSubscribeClient) Recv() (*Event, error) { func (c *controlClient) GetIntegratedServices(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListIntegratedServicesReply, error) { out := new(ListIntegratedServicesReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetIntegratedServices", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetIntegratedServices_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -343,6 +405,7 @@ type ControlServer interface { ModifyEnvironment(context.Context, *ModifyEnvironmentRequest) (*ModifyEnvironmentReply, error) DestroyEnvironment(context.Context, *DestroyEnvironmentRequest) (*DestroyEnvironmentReply, error) GetActiveDetectors(context.Context, *Empty) (*GetActiveDetectorsReply, error) + GetAvailableDetectors(context.Context, *Empty) (*GetAvailableDetectorsReply, error) GetTasks(context.Context, *GetTasksRequest) (*GetTasksReply, error) GetTask(context.Context, *GetTaskRequest) (*GetTaskReply, error) CleanupTasks(context.Context, *CleanupTasksRequest) (*CleanupTasksReply, error) @@ -397,6 +460,9 @@ func (UnimplementedControlServer) DestroyEnvironment(context.Context, *DestroyEn func (UnimplementedControlServer) GetActiveDetectors(context.Context, *Empty) (*GetActiveDetectorsReply, error) { return nil, status.Errorf(codes.Unimplemented, "method GetActiveDetectors not implemented") } +func (UnimplementedControlServer) GetAvailableDetectors(context.Context, *Empty) (*GetAvailableDetectorsReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAvailableDetectors not implemented") +} func (UnimplementedControlServer) GetTasks(context.Context, *GetTasksRequest) (*GetTasksReply, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTasks not implemented") } @@ -483,7 +549,7 @@ func _Control_GetFrameworkInfo_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetFrameworkInfo", + FullMethod: Control_GetFrameworkInfo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetFrameworkInfo(ctx, req.(*GetFrameworkInfoRequest)) @@ -501,7 +567,7 @@ func _Control_Teardown_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/Teardown", + FullMethod: Control_Teardown_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).Teardown(ctx, req.(*TeardownRequest)) @@ -519,7 +585,7 @@ func _Control_GetEnvironments_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetEnvironments", + FullMethod: Control_GetEnvironments_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetEnvironments(ctx, req.(*GetEnvironmentsRequest)) @@ -537,7 +603,7 @@ func _Control_NewAutoEnvironment_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/NewAutoEnvironment", + FullMethod: Control_NewAutoEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).NewAutoEnvironment(ctx, req.(*NewAutoEnvironmentRequest)) @@ -555,7 +621,7 @@ func _Control_NewEnvironment_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/NewEnvironment", + FullMethod: Control_NewEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).NewEnvironment(ctx, req.(*NewEnvironmentRequest)) @@ -573,7 +639,7 @@ func _Control_GetEnvironment_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetEnvironment", + FullMethod: Control_GetEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetEnvironment(ctx, req.(*GetEnvironmentRequest)) @@ -591,7 +657,7 @@ func _Control_ControlEnvironment_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/ControlEnvironment", + FullMethod: Control_ControlEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).ControlEnvironment(ctx, req.(*ControlEnvironmentRequest)) @@ -609,7 +675,7 @@ func _Control_ModifyEnvironment_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/ModifyEnvironment", + FullMethod: Control_ModifyEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).ModifyEnvironment(ctx, req.(*ModifyEnvironmentRequest)) @@ -627,7 +693,7 @@ func _Control_DestroyEnvironment_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/DestroyEnvironment", + FullMethod: Control_DestroyEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).DestroyEnvironment(ctx, req.(*DestroyEnvironmentRequest)) @@ -645,7 +711,7 @@ func _Control_GetActiveDetectors_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetActiveDetectors", + FullMethod: Control_GetActiveDetectors_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetActiveDetectors(ctx, req.(*Empty)) @@ -653,6 +719,24 @@ func _Control_GetActiveDetectors_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _Control_GetAvailableDetectors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).GetAvailableDetectors(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Control_GetAvailableDetectors_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).GetAvailableDetectors(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _Control_GetTasks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTasksRequest) if err := dec(in); err != nil { @@ -663,7 +747,7 @@ func _Control_GetTasks_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetTasks", + FullMethod: Control_GetTasks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetTasks(ctx, req.(*GetTasksRequest)) @@ -681,7 +765,7 @@ func _Control_GetTask_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetTask", + FullMethod: Control_GetTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetTask(ctx, req.(*GetTaskRequest)) @@ -699,7 +783,7 @@ func _Control_CleanupTasks_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/CleanupTasks", + FullMethod: Control_CleanupTasks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).CleanupTasks(ctx, req.(*CleanupTasksRequest)) @@ -717,7 +801,7 @@ func _Control_GetRoles_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetRoles", + FullMethod: Control_GetRoles_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetRoles(ctx, req.(*GetRolesRequest)) @@ -735,7 +819,7 @@ func _Control_GetWorkflowTemplates_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetWorkflowTemplates", + FullMethod: Control_GetWorkflowTemplates_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetWorkflowTemplates(ctx, req.(*GetWorkflowTemplatesRequest)) @@ -753,7 +837,7 @@ func _Control_ListRepos_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/ListRepos", + FullMethod: Control_ListRepos_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).ListRepos(ctx, req.(*ListReposRequest)) @@ -771,7 +855,7 @@ func _Control_AddRepo_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/AddRepo", + FullMethod: Control_AddRepo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).AddRepo(ctx, req.(*AddRepoRequest)) @@ -789,7 +873,7 @@ func _Control_RemoveRepo_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/RemoveRepo", + FullMethod: Control_RemoveRepo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).RemoveRepo(ctx, req.(*RemoveRepoRequest)) @@ -807,7 +891,7 @@ func _Control_RefreshRepos_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/RefreshRepos", + FullMethod: Control_RefreshRepos_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).RefreshRepos(ctx, req.(*RefreshReposRequest)) @@ -825,7 +909,7 @@ func _Control_SetDefaultRepo_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/SetDefaultRepo", + FullMethod: Control_SetDefaultRepo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).SetDefaultRepo(ctx, req.(*SetDefaultRepoRequest)) @@ -843,7 +927,7 @@ func _Control_SetGlobalDefaultRevision_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/SetGlobalDefaultRevision", + FullMethod: Control_SetGlobalDefaultRevision_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).SetGlobalDefaultRevision(ctx, req.(*SetGlobalDefaultRevisionRequest)) @@ -861,7 +945,7 @@ func _Control_SetRepoDefaultRevision_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/SetRepoDefaultRevision", + FullMethod: Control_SetRepoDefaultRevision_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).SetRepoDefaultRevision(ctx, req.(*SetRepoDefaultRevisionRequest)) @@ -900,7 +984,7 @@ func _Control_GetIntegratedServices_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetIntegratedServices", + FullMethod: Control_GetIntegratedServices_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetIntegratedServices(ctx, req.(*Empty)) @@ -955,6 +1039,10 @@ var Control_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetActiveDetectors", Handler: _Control_GetActiveDetectors_Handler, }, + { + MethodName: "GetAvailableDetectors", + Handler: _Control_GetAvailableDetectors_Handler, + }, { MethodName: "GetTasks", Handler: _Control_GetTasks_Handler, diff --git a/core/protos/o2control.pb.go b/core/protos/o2control.pb.go index 8ab79126..d091ff4d 100644 --- a/core/protos/o2control.pb.go +++ b/core/protos/o2control.pb.go @@ -23,8 +23,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.25.1 // source: protos/o2control.proto package pb @@ -263,7 +263,7 @@ func (x VarSpecMessage_UiWidget) Number() protoreflect.EnumNumber { // Deprecated: Use VarSpecMessage_UiWidget.Descriptor instead. func (VarSpecMessage_UiWidget) EnumDescriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{51, 0} + return file_protos_o2control_proto_rawDescGZIP(), []int{52, 0} } type VarSpecMessage_Type int32 @@ -318,7 +318,7 @@ func (x VarSpecMessage_Type) Number() protoreflect.EnumNumber { // Deprecated: Use VarSpecMessage_Type.Descriptor instead. func (VarSpecMessage_Type) EnumDescriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{51, 1} + return file_protos_o2control_proto_rawDescGZIP(), []int{52, 1} } type Event_MesosHeartbeat struct { @@ -2380,6 +2380,53 @@ func (x *GetActiveDetectorsReply) GetDetectors() []string { return nil } +type GetAvailableDetectorsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Detectors []string `protobuf:"bytes,1,rep,name=detectors,proto3" json:"detectors,omitempty"` +} + +func (x *GetAvailableDetectorsReply) Reset() { + *x = GetAvailableDetectorsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_o2control_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAvailableDetectorsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAvailableDetectorsReply) ProtoMessage() {} + +func (x *GetAvailableDetectorsReply) ProtoReflect() protoreflect.Message { + mi := &file_protos_o2control_proto_msgTypes[31] + 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 GetAvailableDetectorsReply.ProtoReflect.Descriptor instead. +func (*GetAvailableDetectorsReply) Descriptor() ([]byte, []int) { + return file_protos_o2control_proto_rawDescGZIP(), []int{31} +} + +func (x *GetAvailableDetectorsReply) GetDetectors() []string { + if x != nil { + return x.Detectors + } + return nil +} + // ////////////////////////////////////// // Environment, GET/SET properties // ////////////////////////////////////// @@ -2397,7 +2444,7 @@ type SetEnvironmentPropertiesRequest struct { func (x *SetEnvironmentPropertiesRequest) Reset() { *x = SetEnvironmentPropertiesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[31] + mi := &file_protos_o2control_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2410,7 +2457,7 @@ func (x *SetEnvironmentPropertiesRequest) String() string { func (*SetEnvironmentPropertiesRequest) ProtoMessage() {} func (x *SetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[31] + mi := &file_protos_o2control_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2423,7 +2470,7 @@ func (x *SetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetEnvironmentPropertiesRequest.ProtoReflect.Descriptor instead. func (*SetEnvironmentPropertiesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{31} + return file_protos_o2control_proto_rawDescGZIP(), []int{32} } func (x *SetEnvironmentPropertiesRequest) GetId() string { @@ -2449,7 +2496,7 @@ type SetEnvironmentPropertiesReply struct { func (x *SetEnvironmentPropertiesReply) Reset() { *x = SetEnvironmentPropertiesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[32] + mi := &file_protos_o2control_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2462,7 +2509,7 @@ func (x *SetEnvironmentPropertiesReply) String() string { func (*SetEnvironmentPropertiesReply) ProtoMessage() {} func (x *SetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[32] + mi := &file_protos_o2control_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2475,7 +2522,7 @@ func (x *SetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetEnvironmentPropertiesReply.ProtoReflect.Descriptor instead. func (*SetEnvironmentPropertiesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{32} + return file_protos_o2control_proto_rawDescGZIP(), []int{33} } type GetEnvironmentPropertiesRequest struct { @@ -2494,7 +2541,7 @@ type GetEnvironmentPropertiesRequest struct { func (x *GetEnvironmentPropertiesRequest) Reset() { *x = GetEnvironmentPropertiesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[33] + mi := &file_protos_o2control_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2507,7 +2554,7 @@ func (x *GetEnvironmentPropertiesRequest) String() string { func (*GetEnvironmentPropertiesRequest) ProtoMessage() {} func (x *GetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[33] + mi := &file_protos_o2control_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2520,7 +2567,7 @@ func (x *GetEnvironmentPropertiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEnvironmentPropertiesRequest.ProtoReflect.Descriptor instead. func (*GetEnvironmentPropertiesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{33} + return file_protos_o2control_proto_rawDescGZIP(), []int{34} } func (x *GetEnvironmentPropertiesRequest) GetId() string { @@ -2555,7 +2602,7 @@ type GetEnvironmentPropertiesReply struct { func (x *GetEnvironmentPropertiesReply) Reset() { *x = GetEnvironmentPropertiesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[34] + mi := &file_protos_o2control_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2568,7 +2615,7 @@ func (x *GetEnvironmentPropertiesReply) String() string { func (*GetEnvironmentPropertiesReply) ProtoMessage() {} func (x *GetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[34] + mi := &file_protos_o2control_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2581,7 +2628,7 @@ func (x *GetEnvironmentPropertiesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEnvironmentPropertiesReply.ProtoReflect.Descriptor instead. func (*GetEnvironmentPropertiesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{34} + return file_protos_o2control_proto_rawDescGZIP(), []int{35} } func (x *GetEnvironmentPropertiesReply) GetProperties() map[string]string { @@ -2614,7 +2661,7 @@ type ShortTaskInfo struct { func (x *ShortTaskInfo) Reset() { *x = ShortTaskInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[35] + mi := &file_protos_o2control_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2627,7 +2674,7 @@ func (x *ShortTaskInfo) String() string { func (*ShortTaskInfo) ProtoMessage() {} func (x *ShortTaskInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[35] + mi := &file_protos_o2control_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2640,7 +2687,7 @@ func (x *ShortTaskInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ShortTaskInfo.ProtoReflect.Descriptor instead. func (*ShortTaskInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{35} + return file_protos_o2control_proto_rawDescGZIP(), []int{36} } func (x *ShortTaskInfo) GetName() string { @@ -2727,7 +2774,7 @@ type TaskDeploymentInfo struct { func (x *TaskDeploymentInfo) Reset() { *x = TaskDeploymentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[36] + mi := &file_protos_o2control_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2740,7 +2787,7 @@ func (x *TaskDeploymentInfo) String() string { func (*TaskDeploymentInfo) ProtoMessage() {} func (x *TaskDeploymentInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[36] + mi := &file_protos_o2control_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2753,7 +2800,7 @@ func (x *TaskDeploymentInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskDeploymentInfo.ProtoReflect.Descriptor instead. func (*TaskDeploymentInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{36} + return file_protos_o2control_proto_rawDescGZIP(), []int{37} } func (x *TaskDeploymentInfo) GetHostname() string { @@ -2793,7 +2840,7 @@ type GetTasksRequest struct { func (x *GetTasksRequest) Reset() { *x = GetTasksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[37] + mi := &file_protos_o2control_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2806,7 +2853,7 @@ func (x *GetTasksRequest) String() string { func (*GetTasksRequest) ProtoMessage() {} func (x *GetTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[37] + mi := &file_protos_o2control_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2819,7 +2866,7 @@ func (x *GetTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksRequest.ProtoReflect.Descriptor instead. func (*GetTasksRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{37} + return file_protos_o2control_proto_rawDescGZIP(), []int{38} } type GetTasksReply struct { @@ -2833,7 +2880,7 @@ type GetTasksReply struct { func (x *GetTasksReply) Reset() { *x = GetTasksReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[38] + mi := &file_protos_o2control_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2846,7 +2893,7 @@ func (x *GetTasksReply) String() string { func (*GetTasksReply) ProtoMessage() {} func (x *GetTasksReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[38] + mi := &file_protos_o2control_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2859,7 +2906,7 @@ func (x *GetTasksReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTasksReply.ProtoReflect.Descriptor instead. func (*GetTasksReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{38} + return file_protos_o2control_proto_rawDescGZIP(), []int{39} } func (x *GetTasksReply) GetTasks() []*ShortTaskInfo { @@ -2880,7 +2927,7 @@ type GetTaskRequest struct { func (x *GetTaskRequest) Reset() { *x = GetTaskRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[39] + mi := &file_protos_o2control_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2893,7 +2940,7 @@ func (x *GetTaskRequest) String() string { func (*GetTaskRequest) ProtoMessage() {} func (x *GetTaskRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[39] + mi := &file_protos_o2control_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2906,7 +2953,7 @@ func (x *GetTaskRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskRequest.ProtoReflect.Descriptor instead. func (*GetTaskRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{39} + return file_protos_o2control_proto_rawDescGZIP(), []int{40} } func (x *GetTaskRequest) GetTaskId() string { @@ -2927,7 +2974,7 @@ type GetTaskReply struct { func (x *GetTaskReply) Reset() { *x = GetTaskReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[40] + mi := &file_protos_o2control_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2940,7 +2987,7 @@ func (x *GetTaskReply) String() string { func (*GetTaskReply) ProtoMessage() {} func (x *GetTaskReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[40] + mi := &file_protos_o2control_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2953,7 +3000,7 @@ func (x *GetTaskReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTaskReply.ProtoReflect.Descriptor instead. func (*GetTaskReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{40} + return file_protos_o2control_proto_rawDescGZIP(), []int{41} } func (x *GetTaskReply) GetTask() *TaskInfo { @@ -2975,7 +3022,7 @@ type TaskClassInfo struct { func (x *TaskClassInfo) Reset() { *x = TaskClassInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[41] + mi := &file_protos_o2control_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2988,7 +3035,7 @@ func (x *TaskClassInfo) String() string { func (*TaskClassInfo) ProtoMessage() {} func (x *TaskClassInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[41] + mi := &file_protos_o2control_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3001,7 +3048,7 @@ func (x *TaskClassInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskClassInfo.ProtoReflect.Descriptor instead. func (*TaskClassInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{41} + return file_protos_o2control_proto_rawDescGZIP(), []int{42} } func (x *TaskClassInfo) GetName() string { @@ -3033,7 +3080,7 @@ type CommandInfo struct { func (x *CommandInfo) Reset() { *x = CommandInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[42] + mi := &file_protos_o2control_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3046,7 +3093,7 @@ func (x *CommandInfo) String() string { func (*CommandInfo) ProtoMessage() {} func (x *CommandInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[42] + mi := &file_protos_o2control_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3059,7 +3106,7 @@ func (x *CommandInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CommandInfo.ProtoReflect.Descriptor instead. func (*CommandInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{42} + return file_protos_o2control_proto_rawDescGZIP(), []int{43} } func (x *CommandInfo) GetEnv() []string { @@ -3110,7 +3157,7 @@ type ChannelInfo struct { func (x *ChannelInfo) Reset() { *x = ChannelInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[43] + mi := &file_protos_o2control_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3123,7 +3170,7 @@ func (x *ChannelInfo) String() string { func (*ChannelInfo) ProtoMessage() {} func (x *ChannelInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[43] + mi := &file_protos_o2control_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3136,7 +3183,7 @@ func (x *ChannelInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ChannelInfo.ProtoReflect.Descriptor instead. func (*ChannelInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{43} + return file_protos_o2control_proto_rawDescGZIP(), []int{44} } func (x *ChannelInfo) GetName() string { @@ -3178,7 +3225,7 @@ type TaskInfo struct { func (x *TaskInfo) Reset() { *x = TaskInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[44] + mi := &file_protos_o2control_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3191,7 +3238,7 @@ func (x *TaskInfo) String() string { func (*TaskInfo) ProtoMessage() {} func (x *TaskInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[44] + mi := &file_protos_o2control_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3204,7 +3251,7 @@ func (x *TaskInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskInfo.ProtoReflect.Descriptor instead. func (*TaskInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{44} + return file_protos_o2control_proto_rawDescGZIP(), []int{45} } func (x *TaskInfo) GetShortInfo() *ShortTaskInfo { @@ -3274,7 +3321,7 @@ type CleanupTasksRequest struct { func (x *CleanupTasksRequest) Reset() { *x = CleanupTasksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[45] + mi := &file_protos_o2control_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3287,7 +3334,7 @@ func (x *CleanupTasksRequest) String() string { func (*CleanupTasksRequest) ProtoMessage() {} func (x *CleanupTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[45] + mi := &file_protos_o2control_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3300,7 +3347,7 @@ func (x *CleanupTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CleanupTasksRequest.ProtoReflect.Descriptor instead. func (*CleanupTasksRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{45} + return file_protos_o2control_proto_rawDescGZIP(), []int{46} } func (x *CleanupTasksRequest) GetTaskIds() []string { @@ -3322,7 +3369,7 @@ type CleanupTasksReply struct { func (x *CleanupTasksReply) Reset() { *x = CleanupTasksReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[46] + mi := &file_protos_o2control_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3335,7 +3382,7 @@ func (x *CleanupTasksReply) String() string { func (*CleanupTasksReply) ProtoMessage() {} func (x *CleanupTasksReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[46] + mi := &file_protos_o2control_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3348,7 +3395,7 @@ func (x *CleanupTasksReply) ProtoReflect() protoreflect.Message { // Deprecated: Use CleanupTasksReply.ProtoReflect.Descriptor instead. func (*CleanupTasksReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{46} + return file_protos_o2control_proto_rawDescGZIP(), []int{47} } func (x *CleanupTasksReply) GetKilledTasks() []*ShortTaskInfo { @@ -3380,7 +3427,7 @@ type GetRolesRequest struct { func (x *GetRolesRequest) Reset() { *x = GetRolesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[47] + mi := &file_protos_o2control_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3393,7 +3440,7 @@ func (x *GetRolesRequest) String() string { func (*GetRolesRequest) ProtoMessage() {} func (x *GetRolesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[47] + mi := &file_protos_o2control_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3406,7 +3453,7 @@ func (x *GetRolesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRolesRequest.ProtoReflect.Descriptor instead. func (*GetRolesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{47} + return file_protos_o2control_proto_rawDescGZIP(), []int{48} } func (x *GetRolesRequest) GetEnvId() string { @@ -3444,7 +3491,7 @@ type RoleInfo struct { func (x *RoleInfo) Reset() { *x = RoleInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[48] + mi := &file_protos_o2control_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3457,7 +3504,7 @@ func (x *RoleInfo) String() string { func (*RoleInfo) ProtoMessage() {} func (x *RoleInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[48] + mi := &file_protos_o2control_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3470,7 +3517,7 @@ func (x *RoleInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RoleInfo.ProtoReflect.Descriptor instead. func (*RoleInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{48} + return file_protos_o2control_proto_rawDescGZIP(), []int{49} } func (x *RoleInfo) GetName() string { @@ -3561,7 +3608,7 @@ type GetRolesReply struct { func (x *GetRolesReply) Reset() { *x = GetRolesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[49] + mi := &file_protos_o2control_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3574,7 +3621,7 @@ func (x *GetRolesReply) String() string { func (*GetRolesReply) ProtoMessage() {} func (x *GetRolesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[49] + mi := &file_protos_o2control_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3587,7 +3634,7 @@ func (x *GetRolesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRolesReply.ProtoReflect.Descriptor instead. func (*GetRolesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{49} + return file_protos_o2control_proto_rawDescGZIP(), []int{50} } func (x *GetRolesReply) GetRoles() []*RoleInfo { @@ -3612,7 +3659,7 @@ type GetWorkflowTemplatesRequest struct { func (x *GetWorkflowTemplatesRequest) Reset() { *x = GetWorkflowTemplatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[50] + mi := &file_protos_o2control_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3625,7 +3672,7 @@ func (x *GetWorkflowTemplatesRequest) String() string { func (*GetWorkflowTemplatesRequest) ProtoMessage() {} func (x *GetWorkflowTemplatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[50] + mi := &file_protos_o2control_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3638,7 +3685,7 @@ func (x *GetWorkflowTemplatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkflowTemplatesRequest.ProtoReflect.Descriptor instead. func (*GetWorkflowTemplatesRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{50} + return file_protos_o2control_proto_rawDescGZIP(), []int{51} } func (x *GetWorkflowTemplatesRequest) GetRepoPattern() string { @@ -3696,7 +3743,7 @@ type VarSpecMessage struct { func (x *VarSpecMessage) Reset() { *x = VarSpecMessage{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[51] + mi := &file_protos_o2control_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3709,7 +3756,7 @@ func (x *VarSpecMessage) String() string { func (*VarSpecMessage) ProtoMessage() {} func (x *VarSpecMessage) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[51] + mi := &file_protos_o2control_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3722,7 +3769,7 @@ func (x *VarSpecMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use VarSpecMessage.ProtoReflect.Descriptor instead. func (*VarSpecMessage) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{51} + return file_protos_o2control_proto_rawDescGZIP(), []int{52} } func (x *VarSpecMessage) GetDefaultValue() string { @@ -3810,7 +3857,7 @@ type WorkflowTemplateInfo struct { func (x *WorkflowTemplateInfo) Reset() { *x = WorkflowTemplateInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[52] + mi := &file_protos_o2control_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3823,7 +3870,7 @@ func (x *WorkflowTemplateInfo) String() string { func (*WorkflowTemplateInfo) ProtoMessage() {} func (x *WorkflowTemplateInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[52] + mi := &file_protos_o2control_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3836,7 +3883,7 @@ func (x *WorkflowTemplateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkflowTemplateInfo.ProtoReflect.Descriptor instead. func (*WorkflowTemplateInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{52} + return file_protos_o2control_proto_rawDescGZIP(), []int{53} } func (x *WorkflowTemplateInfo) GetRepo() string { @@ -3885,7 +3932,7 @@ type GetWorkflowTemplatesReply struct { func (x *GetWorkflowTemplatesReply) Reset() { *x = GetWorkflowTemplatesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[53] + mi := &file_protos_o2control_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3898,7 +3945,7 @@ func (x *GetWorkflowTemplatesReply) String() string { func (*GetWorkflowTemplatesReply) ProtoMessage() {} func (x *GetWorkflowTemplatesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[53] + mi := &file_protos_o2control_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3911,7 +3958,7 @@ func (x *GetWorkflowTemplatesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWorkflowTemplatesReply.ProtoReflect.Descriptor instead. func (*GetWorkflowTemplatesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{53} + return file_protos_o2control_proto_rawDescGZIP(), []int{54} } func (x *GetWorkflowTemplatesReply) GetWorkflowTemplates() []*WorkflowTemplateInfo { @@ -3932,7 +3979,7 @@ type ListReposRequest struct { func (x *ListReposRequest) Reset() { *x = ListReposRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[54] + mi := &file_protos_o2control_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3945,7 +3992,7 @@ func (x *ListReposRequest) String() string { func (*ListReposRequest) ProtoMessage() {} func (x *ListReposRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[54] + mi := &file_protos_o2control_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3958,7 +4005,7 @@ func (x *ListReposRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReposRequest.ProtoReflect.Descriptor instead. func (*ListReposRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{54} + return file_protos_o2control_proto_rawDescGZIP(), []int{55} } func (x *ListReposRequest) GetGetRevisions() bool { @@ -3982,7 +4029,7 @@ type RepoInfo struct { func (x *RepoInfo) Reset() { *x = RepoInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[55] + mi := &file_protos_o2control_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3995,7 +4042,7 @@ func (x *RepoInfo) String() string { func (*RepoInfo) ProtoMessage() {} func (x *RepoInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[55] + mi := &file_protos_o2control_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4008,7 +4055,7 @@ func (x *RepoInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RepoInfo.ProtoReflect.Descriptor instead. func (*RepoInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{55} + return file_protos_o2control_proto_rawDescGZIP(), []int{56} } func (x *RepoInfo) GetName() string { @@ -4051,7 +4098,7 @@ type ListReposReply struct { func (x *ListReposReply) Reset() { *x = ListReposReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[56] + mi := &file_protos_o2control_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4064,7 +4111,7 @@ func (x *ListReposReply) String() string { func (*ListReposReply) ProtoMessage() {} func (x *ListReposReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[56] + mi := &file_protos_o2control_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4077,7 +4124,7 @@ func (x *ListReposReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReposReply.ProtoReflect.Descriptor instead. func (*ListReposReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{56} + return file_protos_o2control_proto_rawDescGZIP(), []int{57} } func (x *ListReposReply) GetRepos() []*RepoInfo { @@ -4106,7 +4153,7 @@ type AddRepoRequest struct { func (x *AddRepoRequest) Reset() { *x = AddRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[57] + mi := &file_protos_o2control_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4119,7 +4166,7 @@ func (x *AddRepoRequest) String() string { func (*AddRepoRequest) ProtoMessage() {} func (x *AddRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[57] + mi := &file_protos_o2control_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4132,7 +4179,7 @@ func (x *AddRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddRepoRequest.ProtoReflect.Descriptor instead. func (*AddRepoRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{57} + return file_protos_o2control_proto_rawDescGZIP(), []int{58} } func (x *AddRepoRequest) GetName() string { @@ -4161,7 +4208,7 @@ type AddRepoReply struct { func (x *AddRepoReply) Reset() { *x = AddRepoReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[58] + mi := &file_protos_o2control_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4174,7 +4221,7 @@ func (x *AddRepoReply) String() string { func (*AddRepoReply) ProtoMessage() {} func (x *AddRepoReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[58] + mi := &file_protos_o2control_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4187,7 +4234,7 @@ func (x *AddRepoReply) ProtoReflect() protoreflect.Message { // Deprecated: Use AddRepoReply.ProtoReflect.Descriptor instead. func (*AddRepoReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{58} + return file_protos_o2control_proto_rawDescGZIP(), []int{59} } func (x *AddRepoReply) GetNewDefaultRevision() string { @@ -4215,7 +4262,7 @@ type RemoveRepoRequest struct { func (x *RemoveRepoRequest) Reset() { *x = RemoveRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[59] + mi := &file_protos_o2control_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4228,7 +4275,7 @@ func (x *RemoveRepoRequest) String() string { func (*RemoveRepoRequest) ProtoMessage() {} func (x *RemoveRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[59] + mi := &file_protos_o2control_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4241,7 +4288,7 @@ func (x *RemoveRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRepoRequest.ProtoReflect.Descriptor instead. func (*RemoveRepoRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{59} + return file_protos_o2control_proto_rawDescGZIP(), []int{60} } func (x *RemoveRepoRequest) GetIndex() int32 { @@ -4262,7 +4309,7 @@ type RemoveRepoReply struct { func (x *RemoveRepoReply) Reset() { *x = RemoveRepoReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[60] + mi := &file_protos_o2control_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4275,7 +4322,7 @@ func (x *RemoveRepoReply) String() string { func (*RemoveRepoReply) ProtoMessage() {} func (x *RemoveRepoReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[60] + mi := &file_protos_o2control_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4288,7 +4335,7 @@ func (x *RemoveRepoReply) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveRepoReply.ProtoReflect.Descriptor instead. func (*RemoveRepoReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{60} + return file_protos_o2control_proto_rawDescGZIP(), []int{61} } func (x *RemoveRepoReply) GetNewDefaultRepo() string { @@ -4309,7 +4356,7 @@ type RefreshReposRequest struct { func (x *RefreshReposRequest) Reset() { *x = RefreshReposRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[61] + mi := &file_protos_o2control_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4322,7 +4369,7 @@ func (x *RefreshReposRequest) String() string { func (*RefreshReposRequest) ProtoMessage() {} func (x *RefreshReposRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[61] + mi := &file_protos_o2control_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4335,7 +4382,7 @@ func (x *RefreshReposRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshReposRequest.ProtoReflect.Descriptor instead. func (*RefreshReposRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{61} + return file_protos_o2control_proto_rawDescGZIP(), []int{62} } func (x *RefreshReposRequest) GetIndex() int32 { @@ -4356,7 +4403,7 @@ type SetDefaultRepoRequest struct { func (x *SetDefaultRepoRequest) Reset() { *x = SetDefaultRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[62] + mi := &file_protos_o2control_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4369,7 +4416,7 @@ func (x *SetDefaultRepoRequest) String() string { func (*SetDefaultRepoRequest) ProtoMessage() {} func (x *SetDefaultRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[62] + mi := &file_protos_o2control_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4382,7 +4429,7 @@ func (x *SetDefaultRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetDefaultRepoRequest.ProtoReflect.Descriptor instead. func (*SetDefaultRepoRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{62} + return file_protos_o2control_proto_rawDescGZIP(), []int{63} } func (x *SetDefaultRepoRequest) GetIndex() int32 { @@ -4403,7 +4450,7 @@ type SetGlobalDefaultRevisionRequest struct { func (x *SetGlobalDefaultRevisionRequest) Reset() { *x = SetGlobalDefaultRevisionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[63] + mi := &file_protos_o2control_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4416,7 +4463,7 @@ func (x *SetGlobalDefaultRevisionRequest) String() string { func (*SetGlobalDefaultRevisionRequest) ProtoMessage() {} func (x *SetGlobalDefaultRevisionRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[63] + mi := &file_protos_o2control_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4429,7 +4476,7 @@ func (x *SetGlobalDefaultRevisionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetGlobalDefaultRevisionRequest.ProtoReflect.Descriptor instead. func (*SetGlobalDefaultRevisionRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{63} + return file_protos_o2control_proto_rawDescGZIP(), []int{64} } func (x *SetGlobalDefaultRevisionRequest) GetRevision() string { @@ -4451,7 +4498,7 @@ type SetRepoDefaultRevisionRequest struct { func (x *SetRepoDefaultRevisionRequest) Reset() { *x = SetRepoDefaultRevisionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[64] + mi := &file_protos_o2control_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4464,7 +4511,7 @@ func (x *SetRepoDefaultRevisionRequest) String() string { func (*SetRepoDefaultRevisionRequest) ProtoMessage() {} func (x *SetRepoDefaultRevisionRequest) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[64] + mi := &file_protos_o2control_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4477,7 +4524,7 @@ func (x *SetRepoDefaultRevisionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRepoDefaultRevisionRequest.ProtoReflect.Descriptor instead. func (*SetRepoDefaultRevisionRequest) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{64} + return file_protos_o2control_proto_rawDescGZIP(), []int{65} } func (x *SetRepoDefaultRevisionRequest) GetIndex() int32 { @@ -4505,7 +4552,7 @@ type SetRepoDefaultRevisionReply struct { func (x *SetRepoDefaultRevisionReply) Reset() { *x = SetRepoDefaultRevisionReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[65] + mi := &file_protos_o2control_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4518,7 +4565,7 @@ func (x *SetRepoDefaultRevisionReply) String() string { func (*SetRepoDefaultRevisionReply) ProtoMessage() {} func (x *SetRepoDefaultRevisionReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[65] + mi := &file_protos_o2control_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4531,7 +4578,7 @@ func (x *SetRepoDefaultRevisionReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRepoDefaultRevisionReply.ProtoReflect.Descriptor instead. func (*SetRepoDefaultRevisionReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{65} + return file_protos_o2control_proto_rawDescGZIP(), []int{66} } func (x *SetRepoDefaultRevisionReply) GetInfo() string { @@ -4550,7 +4597,7 @@ type Empty struct { func (x *Empty) Reset() { *x = Empty{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[66] + mi := &file_protos_o2control_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4563,7 +4610,7 @@ func (x *Empty) String() string { func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[66] + mi := &file_protos_o2control_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4576,7 +4623,7 @@ func (x *Empty) ProtoReflect() protoreflect.Message { // Deprecated: Use Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{66} + return file_protos_o2control_proto_rawDescGZIP(), []int{67} } type ListIntegratedServicesReply struct { @@ -4590,7 +4637,7 @@ type ListIntegratedServicesReply struct { func (x *ListIntegratedServicesReply) Reset() { *x = ListIntegratedServicesReply{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[67] + mi := &file_protos_o2control_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4603,7 +4650,7 @@ func (x *ListIntegratedServicesReply) String() string { func (*ListIntegratedServicesReply) ProtoMessage() {} func (x *ListIntegratedServicesReply) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[67] + mi := &file_protos_o2control_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4616,7 +4663,7 @@ func (x *ListIntegratedServicesReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListIntegratedServicesReply.ProtoReflect.Descriptor instead. func (*ListIntegratedServicesReply) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{67} + return file_protos_o2control_proto_rawDescGZIP(), []int{68} } func (x *ListIntegratedServicesReply) GetServices() map[string]*IntegratedServiceInfo { @@ -4641,7 +4688,7 @@ type IntegratedServiceInfo struct { func (x *IntegratedServiceInfo) Reset() { *x = IntegratedServiceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protos_o2control_proto_msgTypes[68] + mi := &file_protos_o2control_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4654,7 +4701,7 @@ func (x *IntegratedServiceInfo) String() string { func (*IntegratedServiceInfo) ProtoMessage() {} func (x *IntegratedServiceInfo) ProtoReflect() protoreflect.Message { - mi := &file_protos_o2control_proto_msgTypes[68] + mi := &file_protos_o2control_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4667,7 +4714,7 @@ func (x *IntegratedServiceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use IntegratedServiceInfo.ProtoReflect.Descriptor instead. func (*IntegratedServiceInfo) Descriptor() ([]byte, []int) { - return file_protos_o2control_proto_rawDescGZIP(), []int{68} + return file_protos_o2control_proto_rawDescGZIP(), []int{69} } func (x *IntegratedServiceInfo) GetName() string { @@ -5033,404 +5080,413 @@ var file_protos_o2control_proto_rawDesc = []byte{ 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x73, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, - 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, - 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x22, 0xb8, 0x01, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x58, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, - 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbc, 0x02, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, - 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x64, - 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, - 0x6f, 0x78, 0x53, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x11, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x3f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, - 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x22, 0x28, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x74, - 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x74, 0x61, 0x73, 0x6b, 0x22, 0x45, 0x0a, 0x0d, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, - 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x68, 0x65, - 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0b, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 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, 0xf0, 0x03, 0x0a, 0x08, 0x54, 0x61, - 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, - 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, - 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x13, - 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x8d, 0x01, - 0x0a, 0x11, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, - 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, - 0x3c, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0c, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x43, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, - 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, - 0x65, 0x63, 0x22, 0xd3, 0x05, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 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, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x31, 0x0a, 0x04, 0x76, 0x61, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x61, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, - 0x76, 0x61, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x56, 0x61, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, - 0x61, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0x3b, 0x0a, 0x0d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, - 0x56, 0x61, 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, 0x3b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, + 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x3a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x38, 0x01, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x73, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, + 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xbc, 0x02, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, + 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, + 0x64, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, + 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x28, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, + 0x22, 0x45, 0x0a, 0x0d, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x7d, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x65, 0x6c, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 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, 0xf0, 0x03, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x6e, 0x76, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3a, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x22, 0x9a, 0x04, 0x0a, 0x0e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, - 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x55, - 0x69, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x52, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x12, - 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x22, 0x71, 0x0a, - 0x08, 0x55, 0x69, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x65, 0x64, 0x69, - 0x74, 0x42, 0x6f, 0x78, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x78, 0x10, 0x02, 0x12, - 0x0f, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x44, 0x6f, 0x77, 0x6e, 0x42, 0x6f, 0x78, 0x10, 0x03, - 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x42, 0x6f, 0x78, 0x10, 0x04, 0x12, 0x12, - 0x0a, 0x0e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x6f, 0x78, - 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x6f, 0x78, 0x10, 0x06, - 0x22, 0x3b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x10, 0x04, 0x22, 0xaf, 0x02, - 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, - 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x58, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4d, 0x0a, 0x11, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x28, - 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x71, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x0e, 0x41, 0x64, 0x64, - 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x13, 0x43, 0x6c, 0x65, 0x61, + 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x43, 0x6c, + 0x65, 0x61, 0x6e, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, + 0x3a, 0x0a, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, + 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, + 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x43, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x6e, 0x76, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x53, 0x70, 0x65, 0x63, 0x22, 0xd3, + 0x05, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x0c, 0x41, 0x64, 0x64, - 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x77, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x29, 0x0a, - 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x6e, - 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x22, 0x2d, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, - 0x3d, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x51, - 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x31, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xce, 0x01, - 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x50, 0x0a, - 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, - 0x5d, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 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, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, - 0x01, 0x0a, 0x15, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x32, 0x82, 0x10, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x0b, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x6f, 0x32, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, - 0x01, 0x12, 0x5a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, + 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3d, + 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x31, 0x0a, + 0x04, 0x76, 0x61, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x56, 0x61, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x76, 0x61, 0x72, 0x73, + 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, + 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x56, 0x61, 0x72, 0x73, 0x12, + 0x58, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, + 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x32, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3b, 0x0a, 0x0d, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x56, 0x61, 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, 0x3b, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x56, 0x61, 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, 0x44, + 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3a, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x22, 0xc9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x61, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x9a, 0x04, 0x0a, + 0x0e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x56, 0x61, + 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3a, 0x0a, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, + 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x55, 0x69, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x52, 0x06, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, + 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x66, 0x22, 0x71, 0x0a, 0x08, 0x55, 0x69, 0x57, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x42, 0x6f, 0x78, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x78, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x64, + 0x72, 0x6f, 0x70, 0x44, 0x6f, 0x77, 0x6e, 0x42, 0x6f, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, + 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x42, 0x6f, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x6f, 0x78, 0x10, 0x05, 0x12, 0x0c, + 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x6f, 0x78, 0x10, 0x06, 0x22, 0x3b, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x62, 0x6f, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x10, 0x03, + 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x10, 0x04, 0x22, 0xaf, 0x02, 0x0a, 0x14, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4f, + 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0a, 0x76, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0x58, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x61, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x56, 0x61, 0x72, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4d, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x36, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x67, + 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0x80, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x71, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, + 0x34, 0x0a, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6f, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6e, 0x65, 0x77, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x22, + 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2d, 0x0a, 0x15, + 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3d, 0x0a, 0x1f, 0x53, + 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x1d, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, + 0x1b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x4c, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x50, 0x0a, 0x08, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x5d, 0x0a, 0x0d, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 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, 0x36, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x28, + 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xd6, 0x10, 0x0a, + 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5a, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x08, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x00, 0x12, 0x57, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x4e, 0x65, - 0x77, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x24, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, - 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, - 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, - 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x45, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x08, 0x54, 0x65, 0x61, + 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x54, 0x65, + 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x4e, 0x65, 0x77, 0x41, 0x75, 0x74, + 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6f, + 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x41, 0x75, 0x74, 0x6f, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, + 0x65, 0x77, 0x41, 0x75, 0x74, 0x6f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6f, 0x32, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, + 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x54, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, + 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6f, 0x32, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, - 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, - 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x11, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x23, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x44, 0x65, 0x73, - 0x74, 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x24, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x10, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, + 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x45, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, + 0x69, 0x66, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x12, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6f, 0x32, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x10, 0x2e, + 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x22, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x10, + 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x25, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x6f, 0x32, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, @@ -5521,7 +5577,7 @@ func file_protos_o2control_proto_rawDescGZIP() []byte { } var file_protos_o2control_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_protos_o2control_proto_msgTypes = make([]protoimpl.MessageInfo, 84) +var file_protos_o2control_proto_msgTypes = make([]protoimpl.MessageInfo, 85) var file_protos_o2control_proto_goTypes = []interface{}{ (StatusUpdate_Level)(0), // 0: o2control.StatusUpdate.Level (ControlEnvironmentRequest_Optype)(0), // 1: o2control.ControlEnvironmentRequest.Optype @@ -5559,59 +5615,60 @@ var file_protos_o2control_proto_goTypes = []interface{}{ (*DestroyEnvironmentRequest)(nil), // 33: o2control.DestroyEnvironmentRequest (*DestroyEnvironmentReply)(nil), // 34: o2control.DestroyEnvironmentReply (*GetActiveDetectorsReply)(nil), // 35: o2control.GetActiveDetectorsReply - (*SetEnvironmentPropertiesRequest)(nil), // 36: o2control.SetEnvironmentPropertiesRequest - (*SetEnvironmentPropertiesReply)(nil), // 37: o2control.SetEnvironmentPropertiesReply - (*GetEnvironmentPropertiesRequest)(nil), // 38: o2control.GetEnvironmentPropertiesRequest - (*GetEnvironmentPropertiesReply)(nil), // 39: o2control.GetEnvironmentPropertiesReply - (*ShortTaskInfo)(nil), // 40: o2control.ShortTaskInfo - (*TaskDeploymentInfo)(nil), // 41: o2control.TaskDeploymentInfo - (*GetTasksRequest)(nil), // 42: o2control.GetTasksRequest - (*GetTasksReply)(nil), // 43: o2control.GetTasksReply - (*GetTaskRequest)(nil), // 44: o2control.GetTaskRequest - (*GetTaskReply)(nil), // 45: o2control.GetTaskReply - (*TaskClassInfo)(nil), // 46: o2control.TaskClassInfo - (*CommandInfo)(nil), // 47: o2control.CommandInfo - (*ChannelInfo)(nil), // 48: o2control.ChannelInfo - (*TaskInfo)(nil), // 49: o2control.TaskInfo - (*CleanupTasksRequest)(nil), // 50: o2control.CleanupTasksRequest - (*CleanupTasksReply)(nil), // 51: o2control.CleanupTasksReply - (*GetRolesRequest)(nil), // 52: o2control.GetRolesRequest - (*RoleInfo)(nil), // 53: o2control.RoleInfo - (*GetRolesReply)(nil), // 54: o2control.GetRolesReply - (*GetWorkflowTemplatesRequest)(nil), // 55: o2control.GetWorkflowTemplatesRequest - (*VarSpecMessage)(nil), // 56: o2control.VarSpecMessage - (*WorkflowTemplateInfo)(nil), // 57: o2control.WorkflowTemplateInfo - (*GetWorkflowTemplatesReply)(nil), // 58: o2control.GetWorkflowTemplatesReply - (*ListReposRequest)(nil), // 59: o2control.ListReposRequest - (*RepoInfo)(nil), // 60: o2control.RepoInfo - (*ListReposReply)(nil), // 61: o2control.ListReposReply - (*AddRepoRequest)(nil), // 62: o2control.AddRepoRequest - (*AddRepoReply)(nil), // 63: o2control.AddRepoReply - (*RemoveRepoRequest)(nil), // 64: o2control.RemoveRepoRequest - (*RemoveRepoReply)(nil), // 65: o2control.RemoveRepoReply - (*RefreshReposRequest)(nil), // 66: o2control.RefreshReposRequest - (*SetDefaultRepoRequest)(nil), // 67: o2control.SetDefaultRepoRequest - (*SetGlobalDefaultRevisionRequest)(nil), // 68: o2control.SetGlobalDefaultRevisionRequest - (*SetRepoDefaultRevisionRequest)(nil), // 69: o2control.SetRepoDefaultRevisionRequest - (*SetRepoDefaultRevisionReply)(nil), // 70: o2control.SetRepoDefaultRevisionReply - (*Empty)(nil), // 71: o2control.Empty - (*ListIntegratedServicesReply)(nil), // 72: o2control.ListIntegratedServicesReply - (*IntegratedServiceInfo)(nil), // 73: o2control.IntegratedServiceInfo - nil, // 74: o2control.EnvironmentInfo.DefaultsEntry - nil, // 75: o2control.EnvironmentInfo.VarsEntry - nil, // 76: o2control.EnvironmentInfo.UserVarsEntry - nil, // 77: o2control.EnvironmentInfo.IntegratedServicesDataEntry - nil, // 78: o2control.NewEnvironmentRequest.VarsEntry - nil, // 79: o2control.NewAutoEnvironmentRequest.VarsEntry - nil, // 80: o2control.SetEnvironmentPropertiesRequest.PropertiesEntry - nil, // 81: o2control.GetEnvironmentPropertiesReply.PropertiesEntry - nil, // 82: o2control.TaskInfo.PropertiesEntry - nil, // 83: o2control.RoleInfo.DefaultsEntry - nil, // 84: o2control.RoleInfo.VarsEntry - nil, // 85: o2control.RoleInfo.UserVarsEntry - nil, // 86: o2control.RoleInfo.ConsolidatedStackEntry - nil, // 87: o2control.WorkflowTemplateInfo.VarSpecMapEntry - nil, // 88: o2control.ListIntegratedServicesReply.ServicesEntry + (*GetAvailableDetectorsReply)(nil), // 36: o2control.GetAvailableDetectorsReply + (*SetEnvironmentPropertiesRequest)(nil), // 37: o2control.SetEnvironmentPropertiesRequest + (*SetEnvironmentPropertiesReply)(nil), // 38: o2control.SetEnvironmentPropertiesReply + (*GetEnvironmentPropertiesRequest)(nil), // 39: o2control.GetEnvironmentPropertiesRequest + (*GetEnvironmentPropertiesReply)(nil), // 40: o2control.GetEnvironmentPropertiesReply + (*ShortTaskInfo)(nil), // 41: o2control.ShortTaskInfo + (*TaskDeploymentInfo)(nil), // 42: o2control.TaskDeploymentInfo + (*GetTasksRequest)(nil), // 43: o2control.GetTasksRequest + (*GetTasksReply)(nil), // 44: o2control.GetTasksReply + (*GetTaskRequest)(nil), // 45: o2control.GetTaskRequest + (*GetTaskReply)(nil), // 46: o2control.GetTaskReply + (*TaskClassInfo)(nil), // 47: o2control.TaskClassInfo + (*CommandInfo)(nil), // 48: o2control.CommandInfo + (*ChannelInfo)(nil), // 49: o2control.ChannelInfo + (*TaskInfo)(nil), // 50: o2control.TaskInfo + (*CleanupTasksRequest)(nil), // 51: o2control.CleanupTasksRequest + (*CleanupTasksReply)(nil), // 52: o2control.CleanupTasksReply + (*GetRolesRequest)(nil), // 53: o2control.GetRolesRequest + (*RoleInfo)(nil), // 54: o2control.RoleInfo + (*GetRolesReply)(nil), // 55: o2control.GetRolesReply + (*GetWorkflowTemplatesRequest)(nil), // 56: o2control.GetWorkflowTemplatesRequest + (*VarSpecMessage)(nil), // 57: o2control.VarSpecMessage + (*WorkflowTemplateInfo)(nil), // 58: o2control.WorkflowTemplateInfo + (*GetWorkflowTemplatesReply)(nil), // 59: o2control.GetWorkflowTemplatesReply + (*ListReposRequest)(nil), // 60: o2control.ListReposRequest + (*RepoInfo)(nil), // 61: o2control.RepoInfo + (*ListReposReply)(nil), // 62: o2control.ListReposReply + (*AddRepoRequest)(nil), // 63: o2control.AddRepoRequest + (*AddRepoReply)(nil), // 64: o2control.AddRepoReply + (*RemoveRepoRequest)(nil), // 65: o2control.RemoveRepoRequest + (*RemoveRepoReply)(nil), // 66: o2control.RemoveRepoReply + (*RefreshReposRequest)(nil), // 67: o2control.RefreshReposRequest + (*SetDefaultRepoRequest)(nil), // 68: o2control.SetDefaultRepoRequest + (*SetGlobalDefaultRevisionRequest)(nil), // 69: o2control.SetGlobalDefaultRevisionRequest + (*SetRepoDefaultRevisionRequest)(nil), // 70: o2control.SetRepoDefaultRevisionRequest + (*SetRepoDefaultRevisionReply)(nil), // 71: o2control.SetRepoDefaultRevisionReply + (*Empty)(nil), // 72: o2control.Empty + (*ListIntegratedServicesReply)(nil), // 73: o2control.ListIntegratedServicesReply + (*IntegratedServiceInfo)(nil), // 74: o2control.IntegratedServiceInfo + nil, // 75: o2control.EnvironmentInfo.DefaultsEntry + nil, // 76: o2control.EnvironmentInfo.VarsEntry + nil, // 77: o2control.EnvironmentInfo.UserVarsEntry + nil, // 78: o2control.EnvironmentInfo.IntegratedServicesDataEntry + nil, // 79: o2control.NewEnvironmentRequest.VarsEntry + nil, // 80: o2control.NewAutoEnvironmentRequest.VarsEntry + nil, // 81: o2control.SetEnvironmentPropertiesRequest.PropertiesEntry + nil, // 82: o2control.GetEnvironmentPropertiesReply.PropertiesEntry + nil, // 83: o2control.TaskInfo.PropertiesEntry + nil, // 84: o2control.RoleInfo.DefaultsEntry + nil, // 85: o2control.RoleInfo.VarsEntry + nil, // 86: o2control.RoleInfo.UserVarsEntry + nil, // 87: o2control.RoleInfo.ConsolidatedStackEntry + nil, // 88: o2control.WorkflowTemplateInfo.VarSpecMapEntry + nil, // 89: o2control.ListIntegratedServicesReply.ServicesEntry } var file_protos_o2control_proto_depIdxs = []int32{ 11, // 0: o2control.StatusReply.statusUpdates:type_name -> o2control.StatusUpdate @@ -5622,48 +5679,48 @@ var file_protos_o2control_proto_depIdxs = []int32{ 8, // 5: o2control.Event.roleEvent:type_name -> o2control.Ev_RoleEvent 15, // 6: o2control.GetFrameworkInfoReply.version:type_name -> o2control.Version 21, // 7: o2control.GetEnvironmentsReply.environments:type_name -> o2control.EnvironmentInfo - 40, // 8: o2control.EnvironmentInfo.tasks:type_name -> o2control.ShortTaskInfo - 74, // 9: o2control.EnvironmentInfo.defaults:type_name -> o2control.EnvironmentInfo.DefaultsEntry - 75, // 10: o2control.EnvironmentInfo.vars:type_name -> o2control.EnvironmentInfo.VarsEntry - 76, // 11: o2control.EnvironmentInfo.userVars:type_name -> o2control.EnvironmentInfo.UserVarsEntry - 77, // 12: o2control.EnvironmentInfo.integratedServicesData:type_name -> o2control.EnvironmentInfo.IntegratedServicesDataEntry - 78, // 13: o2control.NewEnvironmentRequest.vars:type_name -> o2control.NewEnvironmentRequest.VarsEntry + 41, // 8: o2control.EnvironmentInfo.tasks:type_name -> o2control.ShortTaskInfo + 75, // 9: o2control.EnvironmentInfo.defaults:type_name -> o2control.EnvironmentInfo.DefaultsEntry + 76, // 10: o2control.EnvironmentInfo.vars:type_name -> o2control.EnvironmentInfo.VarsEntry + 77, // 11: o2control.EnvironmentInfo.userVars:type_name -> o2control.EnvironmentInfo.UserVarsEntry + 78, // 12: o2control.EnvironmentInfo.integratedServicesData:type_name -> o2control.EnvironmentInfo.IntegratedServicesDataEntry + 79, // 13: o2control.NewEnvironmentRequest.vars:type_name -> o2control.NewEnvironmentRequest.VarsEntry 21, // 14: o2control.NewEnvironmentReply.environment:type_name -> o2control.EnvironmentInfo - 79, // 15: o2control.NewAutoEnvironmentRequest.vars:type_name -> o2control.NewAutoEnvironmentRequest.VarsEntry + 80, // 15: o2control.NewAutoEnvironmentRequest.vars:type_name -> o2control.NewAutoEnvironmentRequest.VarsEntry 21, // 16: o2control.GetEnvironmentReply.environment:type_name -> o2control.EnvironmentInfo - 53, // 17: o2control.GetEnvironmentReply.workflow:type_name -> o2control.RoleInfo + 54, // 17: o2control.GetEnvironmentReply.workflow:type_name -> o2control.RoleInfo 1, // 18: o2control.ControlEnvironmentRequest.type:type_name -> o2control.ControlEnvironmentRequest.Optype 31, // 19: o2control.ModifyEnvironmentRequest.operations:type_name -> o2control.EnvironmentOperation 2, // 20: o2control.EnvironmentOperation.type:type_name -> o2control.EnvironmentOperation.Optype 31, // 21: o2control.ModifyEnvironmentReply.failedOperations:type_name -> o2control.EnvironmentOperation - 51, // 22: o2control.DestroyEnvironmentReply.cleanupTasksReply:type_name -> o2control.CleanupTasksReply - 80, // 23: o2control.SetEnvironmentPropertiesRequest.properties:type_name -> o2control.SetEnvironmentPropertiesRequest.PropertiesEntry - 81, // 24: o2control.GetEnvironmentPropertiesReply.properties:type_name -> o2control.GetEnvironmentPropertiesReply.PropertiesEntry - 41, // 25: o2control.ShortTaskInfo.deploymentInfo:type_name -> o2control.TaskDeploymentInfo - 40, // 26: o2control.GetTasksReply.tasks:type_name -> o2control.ShortTaskInfo - 49, // 27: o2control.GetTaskReply.task:type_name -> o2control.TaskInfo - 40, // 28: o2control.TaskInfo.shortInfo:type_name -> o2control.ShortTaskInfo - 46, // 29: o2control.TaskInfo.classInfo:type_name -> o2control.TaskClassInfo - 48, // 30: o2control.TaskInfo.inboundChannels:type_name -> o2control.ChannelInfo - 48, // 31: o2control.TaskInfo.outboundChannels:type_name -> o2control.ChannelInfo - 47, // 32: o2control.TaskInfo.commandInfo:type_name -> o2control.CommandInfo - 82, // 33: o2control.TaskInfo.properties:type_name -> o2control.TaskInfo.PropertiesEntry - 40, // 34: o2control.CleanupTasksReply.killedTasks:type_name -> o2control.ShortTaskInfo - 40, // 35: o2control.CleanupTasksReply.runningTasks:type_name -> o2control.ShortTaskInfo - 53, // 36: o2control.RoleInfo.roles:type_name -> o2control.RoleInfo - 83, // 37: o2control.RoleInfo.defaults:type_name -> o2control.RoleInfo.DefaultsEntry - 84, // 38: o2control.RoleInfo.vars:type_name -> o2control.RoleInfo.VarsEntry - 85, // 39: o2control.RoleInfo.userVars:type_name -> o2control.RoleInfo.UserVarsEntry - 86, // 40: o2control.RoleInfo.consolidatedStack:type_name -> o2control.RoleInfo.ConsolidatedStackEntry - 53, // 41: o2control.GetRolesReply.roles:type_name -> o2control.RoleInfo + 52, // 22: o2control.DestroyEnvironmentReply.cleanupTasksReply:type_name -> o2control.CleanupTasksReply + 81, // 23: o2control.SetEnvironmentPropertiesRequest.properties:type_name -> o2control.SetEnvironmentPropertiesRequest.PropertiesEntry + 82, // 24: o2control.GetEnvironmentPropertiesReply.properties:type_name -> o2control.GetEnvironmentPropertiesReply.PropertiesEntry + 42, // 25: o2control.ShortTaskInfo.deploymentInfo:type_name -> o2control.TaskDeploymentInfo + 41, // 26: o2control.GetTasksReply.tasks:type_name -> o2control.ShortTaskInfo + 50, // 27: o2control.GetTaskReply.task:type_name -> o2control.TaskInfo + 41, // 28: o2control.TaskInfo.shortInfo:type_name -> o2control.ShortTaskInfo + 47, // 29: o2control.TaskInfo.classInfo:type_name -> o2control.TaskClassInfo + 49, // 30: o2control.TaskInfo.inboundChannels:type_name -> o2control.ChannelInfo + 49, // 31: o2control.TaskInfo.outboundChannels:type_name -> o2control.ChannelInfo + 48, // 32: o2control.TaskInfo.commandInfo:type_name -> o2control.CommandInfo + 83, // 33: o2control.TaskInfo.properties:type_name -> o2control.TaskInfo.PropertiesEntry + 41, // 34: o2control.CleanupTasksReply.killedTasks:type_name -> o2control.ShortTaskInfo + 41, // 35: o2control.CleanupTasksReply.runningTasks:type_name -> o2control.ShortTaskInfo + 54, // 36: o2control.RoleInfo.roles:type_name -> o2control.RoleInfo + 84, // 37: o2control.RoleInfo.defaults:type_name -> o2control.RoleInfo.DefaultsEntry + 85, // 38: o2control.RoleInfo.vars:type_name -> o2control.RoleInfo.VarsEntry + 86, // 39: o2control.RoleInfo.userVars:type_name -> o2control.RoleInfo.UserVarsEntry + 87, // 40: o2control.RoleInfo.consolidatedStack:type_name -> o2control.RoleInfo.ConsolidatedStackEntry + 54, // 41: o2control.GetRolesReply.roles:type_name -> o2control.RoleInfo 4, // 42: o2control.VarSpecMessage.type:type_name -> o2control.VarSpecMessage.Type 3, // 43: o2control.VarSpecMessage.widget:type_name -> o2control.VarSpecMessage.UiWidget - 87, // 44: o2control.WorkflowTemplateInfo.varSpecMap:type_name -> o2control.WorkflowTemplateInfo.VarSpecMapEntry - 57, // 45: o2control.GetWorkflowTemplatesReply.workflowTemplates:type_name -> o2control.WorkflowTemplateInfo - 60, // 46: o2control.ListReposReply.repos:type_name -> o2control.RepoInfo - 88, // 47: o2control.ListIntegratedServicesReply.services:type_name -> o2control.ListIntegratedServicesReply.ServicesEntry - 56, // 48: o2control.WorkflowTemplateInfo.VarSpecMapEntry.value:type_name -> o2control.VarSpecMessage - 73, // 49: o2control.ListIntegratedServicesReply.ServicesEntry.value:type_name -> o2control.IntegratedServiceInfo + 88, // 44: o2control.WorkflowTemplateInfo.varSpecMap:type_name -> o2control.WorkflowTemplateInfo.VarSpecMapEntry + 58, // 45: o2control.GetWorkflowTemplatesReply.workflowTemplates:type_name -> o2control.WorkflowTemplateInfo + 61, // 46: o2control.ListReposReply.repos:type_name -> o2control.RepoInfo + 89, // 47: o2control.ListIntegratedServicesReply.services:type_name -> o2control.ListIntegratedServicesReply.ServicesEntry + 57, // 48: o2control.WorkflowTemplateInfo.VarSpecMapEntry.value:type_name -> o2control.VarSpecMessage + 74, // 49: o2control.ListIntegratedServicesReply.ServicesEntry.value:type_name -> o2control.IntegratedServiceInfo 9, // 50: o2control.Control.TrackStatus:input_type -> o2control.StatusRequest 14, // 51: o2control.Control.GetFrameworkInfo:input_type -> o2control.GetFrameworkInfoRequest 17, // 52: o2control.Control.Teardown:input_type -> o2control.TeardownRequest @@ -5674,48 +5731,50 @@ var file_protos_o2control_proto_depIdxs = []int32{ 28, // 57: o2control.Control.ControlEnvironment:input_type -> o2control.ControlEnvironmentRequest 30, // 58: o2control.Control.ModifyEnvironment:input_type -> o2control.ModifyEnvironmentRequest 33, // 59: o2control.Control.DestroyEnvironment:input_type -> o2control.DestroyEnvironmentRequest - 71, // 60: o2control.Control.GetActiveDetectors:input_type -> o2control.Empty - 42, // 61: o2control.Control.GetTasks:input_type -> o2control.GetTasksRequest - 44, // 62: o2control.Control.GetTask:input_type -> o2control.GetTaskRequest - 50, // 63: o2control.Control.CleanupTasks:input_type -> o2control.CleanupTasksRequest - 52, // 64: o2control.Control.GetRoles:input_type -> o2control.GetRolesRequest - 55, // 65: o2control.Control.GetWorkflowTemplates:input_type -> o2control.GetWorkflowTemplatesRequest - 59, // 66: o2control.Control.ListRepos:input_type -> o2control.ListReposRequest - 62, // 67: o2control.Control.AddRepo:input_type -> o2control.AddRepoRequest - 64, // 68: o2control.Control.RemoveRepo:input_type -> o2control.RemoveRepoRequest - 66, // 69: o2control.Control.RefreshRepos:input_type -> o2control.RefreshReposRequest - 67, // 70: o2control.Control.SetDefaultRepo:input_type -> o2control.SetDefaultRepoRequest - 68, // 71: o2control.Control.SetGlobalDefaultRevision:input_type -> o2control.SetGlobalDefaultRevisionRequest - 69, // 72: o2control.Control.SetRepoDefaultRevision:input_type -> o2control.SetRepoDefaultRevisionRequest - 13, // 73: o2control.Control.Subscribe:input_type -> o2control.SubscribeRequest - 71, // 74: o2control.Control.GetIntegratedServices:input_type -> o2control.Empty - 10, // 75: o2control.Control.TrackStatus:output_type -> o2control.StatusReply - 16, // 76: o2control.Control.GetFrameworkInfo:output_type -> o2control.GetFrameworkInfoReply - 18, // 77: o2control.Control.Teardown:output_type -> o2control.TeardownReply - 20, // 78: o2control.Control.GetEnvironments:output_type -> o2control.GetEnvironmentsReply - 25, // 79: o2control.Control.NewAutoEnvironment:output_type -> o2control.NewAutoEnvironmentReply - 23, // 80: o2control.Control.NewEnvironment:output_type -> o2control.NewEnvironmentReply - 27, // 81: o2control.Control.GetEnvironment:output_type -> o2control.GetEnvironmentReply - 29, // 82: o2control.Control.ControlEnvironment:output_type -> o2control.ControlEnvironmentReply - 32, // 83: o2control.Control.ModifyEnvironment:output_type -> o2control.ModifyEnvironmentReply - 34, // 84: o2control.Control.DestroyEnvironment:output_type -> o2control.DestroyEnvironmentReply - 35, // 85: o2control.Control.GetActiveDetectors:output_type -> o2control.GetActiveDetectorsReply - 43, // 86: o2control.Control.GetTasks:output_type -> o2control.GetTasksReply - 45, // 87: o2control.Control.GetTask:output_type -> o2control.GetTaskReply - 51, // 88: o2control.Control.CleanupTasks:output_type -> o2control.CleanupTasksReply - 54, // 89: o2control.Control.GetRoles:output_type -> o2control.GetRolesReply - 58, // 90: o2control.Control.GetWorkflowTemplates:output_type -> o2control.GetWorkflowTemplatesReply - 61, // 91: o2control.Control.ListRepos:output_type -> o2control.ListReposReply - 63, // 92: o2control.Control.AddRepo:output_type -> o2control.AddRepoReply - 65, // 93: o2control.Control.RemoveRepo:output_type -> o2control.RemoveRepoReply - 71, // 94: o2control.Control.RefreshRepos:output_type -> o2control.Empty - 71, // 95: o2control.Control.SetDefaultRepo:output_type -> o2control.Empty - 71, // 96: o2control.Control.SetGlobalDefaultRevision:output_type -> o2control.Empty - 70, // 97: o2control.Control.SetRepoDefaultRevision:output_type -> o2control.SetRepoDefaultRevisionReply - 12, // 98: o2control.Control.Subscribe:output_type -> o2control.Event - 72, // 99: o2control.Control.GetIntegratedServices:output_type -> o2control.ListIntegratedServicesReply - 75, // [75:100] is the sub-list for method output_type - 50, // [50:75] is the sub-list for method input_type + 72, // 60: o2control.Control.GetActiveDetectors:input_type -> o2control.Empty + 72, // 61: o2control.Control.GetAvailableDetectors:input_type -> o2control.Empty + 43, // 62: o2control.Control.GetTasks:input_type -> o2control.GetTasksRequest + 45, // 63: o2control.Control.GetTask:input_type -> o2control.GetTaskRequest + 51, // 64: o2control.Control.CleanupTasks:input_type -> o2control.CleanupTasksRequest + 53, // 65: o2control.Control.GetRoles:input_type -> o2control.GetRolesRequest + 56, // 66: o2control.Control.GetWorkflowTemplates:input_type -> o2control.GetWorkflowTemplatesRequest + 60, // 67: o2control.Control.ListRepos:input_type -> o2control.ListReposRequest + 63, // 68: o2control.Control.AddRepo:input_type -> o2control.AddRepoRequest + 65, // 69: o2control.Control.RemoveRepo:input_type -> o2control.RemoveRepoRequest + 67, // 70: o2control.Control.RefreshRepos:input_type -> o2control.RefreshReposRequest + 68, // 71: o2control.Control.SetDefaultRepo:input_type -> o2control.SetDefaultRepoRequest + 69, // 72: o2control.Control.SetGlobalDefaultRevision:input_type -> o2control.SetGlobalDefaultRevisionRequest + 70, // 73: o2control.Control.SetRepoDefaultRevision:input_type -> o2control.SetRepoDefaultRevisionRequest + 13, // 74: o2control.Control.Subscribe:input_type -> o2control.SubscribeRequest + 72, // 75: o2control.Control.GetIntegratedServices:input_type -> o2control.Empty + 10, // 76: o2control.Control.TrackStatus:output_type -> o2control.StatusReply + 16, // 77: o2control.Control.GetFrameworkInfo:output_type -> o2control.GetFrameworkInfoReply + 18, // 78: o2control.Control.Teardown:output_type -> o2control.TeardownReply + 20, // 79: o2control.Control.GetEnvironments:output_type -> o2control.GetEnvironmentsReply + 25, // 80: o2control.Control.NewAutoEnvironment:output_type -> o2control.NewAutoEnvironmentReply + 23, // 81: o2control.Control.NewEnvironment:output_type -> o2control.NewEnvironmentReply + 27, // 82: o2control.Control.GetEnvironment:output_type -> o2control.GetEnvironmentReply + 29, // 83: o2control.Control.ControlEnvironment:output_type -> o2control.ControlEnvironmentReply + 32, // 84: o2control.Control.ModifyEnvironment:output_type -> o2control.ModifyEnvironmentReply + 34, // 85: o2control.Control.DestroyEnvironment:output_type -> o2control.DestroyEnvironmentReply + 35, // 86: o2control.Control.GetActiveDetectors:output_type -> o2control.GetActiveDetectorsReply + 36, // 87: o2control.Control.GetAvailableDetectors:output_type -> o2control.GetAvailableDetectorsReply + 44, // 88: o2control.Control.GetTasks:output_type -> o2control.GetTasksReply + 46, // 89: o2control.Control.GetTask:output_type -> o2control.GetTaskReply + 52, // 90: o2control.Control.CleanupTasks:output_type -> o2control.CleanupTasksReply + 55, // 91: o2control.Control.GetRoles:output_type -> o2control.GetRolesReply + 59, // 92: o2control.Control.GetWorkflowTemplates:output_type -> o2control.GetWorkflowTemplatesReply + 62, // 93: o2control.Control.ListRepos:output_type -> o2control.ListReposReply + 64, // 94: o2control.Control.AddRepo:output_type -> o2control.AddRepoReply + 66, // 95: o2control.Control.RemoveRepo:output_type -> o2control.RemoveRepoReply + 72, // 96: o2control.Control.RefreshRepos:output_type -> o2control.Empty + 72, // 97: o2control.Control.SetDefaultRepo:output_type -> o2control.Empty + 72, // 98: o2control.Control.SetGlobalDefaultRevision:output_type -> o2control.Empty + 71, // 99: o2control.Control.SetRepoDefaultRevision:output_type -> o2control.SetRepoDefaultRevisionReply + 12, // 100: o2control.Control.Subscribe:output_type -> o2control.Event + 73, // 101: o2control.Control.GetIntegratedServices:output_type -> o2control.ListIntegratedServicesReply + 76, // [76:102] is the sub-list for method output_type + 50, // [50:76] is the sub-list for method input_type 50, // [50:50] is the sub-list for extension type_name 50, // [50:50] is the sub-list for extension extendee 0, // [0:50] is the sub-list for field type_name @@ -6100,7 +6159,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetEnvironmentPropertiesRequest); i { + switch v := v.(*GetAvailableDetectorsReply); i { case 0: return &v.state case 1: @@ -6112,7 +6171,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetEnvironmentPropertiesReply); i { + switch v := v.(*SetEnvironmentPropertiesRequest); i { case 0: return &v.state case 1: @@ -6124,7 +6183,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetEnvironmentPropertiesRequest); i { + switch v := v.(*SetEnvironmentPropertiesReply); i { case 0: return &v.state case 1: @@ -6136,7 +6195,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetEnvironmentPropertiesReply); i { + switch v := v.(*GetEnvironmentPropertiesRequest); i { case 0: return &v.state case 1: @@ -6148,7 +6207,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShortTaskInfo); i { + switch v := v.(*GetEnvironmentPropertiesReply); i { case 0: return &v.state case 1: @@ -6160,7 +6219,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskDeploymentInfo); i { + switch v := v.(*ShortTaskInfo); i { case 0: return &v.state case 1: @@ -6172,7 +6231,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTasksRequest); i { + switch v := v.(*TaskDeploymentInfo); i { case 0: return &v.state case 1: @@ -6184,7 +6243,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTasksReply); i { + switch v := v.(*GetTasksRequest); i { case 0: return &v.state case 1: @@ -6196,7 +6255,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTaskRequest); i { + switch v := v.(*GetTasksReply); i { case 0: return &v.state case 1: @@ -6208,7 +6267,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTaskReply); i { + switch v := v.(*GetTaskRequest); i { case 0: return &v.state case 1: @@ -6220,7 +6279,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskClassInfo); i { + switch v := v.(*GetTaskReply); i { case 0: return &v.state case 1: @@ -6232,7 +6291,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommandInfo); i { + switch v := v.(*TaskClassInfo); i { case 0: return &v.state case 1: @@ -6244,7 +6303,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChannelInfo); i { + switch v := v.(*CommandInfo); i { case 0: return &v.state case 1: @@ -6256,7 +6315,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TaskInfo); i { + switch v := v.(*ChannelInfo); i { case 0: return &v.state case 1: @@ -6268,7 +6327,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CleanupTasksRequest); i { + switch v := v.(*TaskInfo); i { case 0: return &v.state case 1: @@ -6280,7 +6339,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CleanupTasksReply); i { + switch v := v.(*CleanupTasksRequest); i { case 0: return &v.state case 1: @@ -6292,7 +6351,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesRequest); i { + switch v := v.(*CleanupTasksReply); i { case 0: return &v.state case 1: @@ -6304,7 +6363,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoleInfo); i { + switch v := v.(*GetRolesRequest); i { case 0: return &v.state case 1: @@ -6316,7 +6375,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRolesReply); i { + switch v := v.(*RoleInfo); i { case 0: return &v.state case 1: @@ -6328,7 +6387,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWorkflowTemplatesRequest); i { + switch v := v.(*GetRolesReply); i { case 0: return &v.state case 1: @@ -6340,7 +6399,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VarSpecMessage); i { + switch v := v.(*GetWorkflowTemplatesRequest); i { case 0: return &v.state case 1: @@ -6352,7 +6411,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkflowTemplateInfo); i { + switch v := v.(*VarSpecMessage); i { case 0: return &v.state case 1: @@ -6364,7 +6423,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWorkflowTemplatesReply); i { + switch v := v.(*WorkflowTemplateInfo); i { case 0: return &v.state case 1: @@ -6376,7 +6435,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReposRequest); i { + switch v := v.(*GetWorkflowTemplatesReply); i { case 0: return &v.state case 1: @@ -6388,7 +6447,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepoInfo); i { + switch v := v.(*ListReposRequest); i { case 0: return &v.state case 1: @@ -6400,7 +6459,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReposReply); i { + switch v := v.(*RepoInfo); i { case 0: return &v.state case 1: @@ -6412,7 +6471,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRepoRequest); i { + switch v := v.(*ListReposReply); i { case 0: return &v.state case 1: @@ -6424,7 +6483,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRepoReply); i { + switch v := v.(*AddRepoRequest); i { case 0: return &v.state case 1: @@ -6436,7 +6495,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveRepoRequest); i { + switch v := v.(*AddRepoReply); i { case 0: return &v.state case 1: @@ -6448,7 +6507,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveRepoReply); i { + switch v := v.(*RemoveRepoRequest); i { case 0: return &v.state case 1: @@ -6460,7 +6519,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshReposRequest); i { + switch v := v.(*RemoveRepoReply); i { case 0: return &v.state case 1: @@ -6472,7 +6531,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDefaultRepoRequest); i { + switch v := v.(*RefreshReposRequest); i { case 0: return &v.state case 1: @@ -6484,7 +6543,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGlobalDefaultRevisionRequest); i { + switch v := v.(*SetDefaultRepoRequest); i { case 0: return &v.state case 1: @@ -6496,7 +6555,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRepoDefaultRevisionRequest); i { + switch v := v.(*SetGlobalDefaultRevisionRequest); i { case 0: return &v.state case 1: @@ -6508,7 +6567,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRepoDefaultRevisionReply); i { + switch v := v.(*SetRepoDefaultRevisionRequest); i { case 0: return &v.state case 1: @@ -6520,7 +6579,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Empty); i { + switch v := v.(*SetRepoDefaultRevisionReply); i { case 0: return &v.state case 1: @@ -6532,7 +6591,7 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListIntegratedServicesReply); i { + switch v := v.(*Empty); i { case 0: return &v.state case 1: @@ -6544,6 +6603,18 @@ func file_protos_o2control_proto_init() { } } file_protos_o2control_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIntegratedServicesReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_o2control_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IntegratedServiceInfo); i { case 0: return &v.state @@ -6570,7 +6641,7 @@ func file_protos_o2control_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protos_o2control_proto_rawDesc, NumEnums: 5, - NumMessages: 84, + NumMessages: 85, NumExtensions: 0, NumServices: 1, }, diff --git a/core/protos/o2control.proto b/core/protos/o2control.proto index b575da22..03c280f8 100644 --- a/core/protos/o2control.proto +++ b/core/protos/o2control.proto @@ -73,6 +73,7 @@ service Control { rpc ModifyEnvironment (ModifyEnvironmentRequest) returns (ModifyEnvironmentReply) {} rpc DestroyEnvironment (DestroyEnvironmentRequest) returns (DestroyEnvironmentReply) {} rpc GetActiveDetectors (Empty) returns (GetActiveDetectorsReply) {} + rpc GetAvailableDetectors (Empty) returns (GetAvailableDetectorsReply) {} // rpc SetEnvironmentProperties (SetEnvironmentPropertiesRequest) returns (SetEnvironmentPropertiesReply) {} // rpc GetEnvironmentProperties (GetEnvironmentPropertiesRequest) returns (GetEnvironmentPropertiesReply) {} @@ -280,6 +281,10 @@ message GetActiveDetectorsReply { repeated string detectors = 1; } +message GetAvailableDetectorsReply { + repeated string detectors = 1; +} + //////////////////////////////////////// // Environment, GET/SET properties //////////////////////////////////////// @@ -522,4 +527,4 @@ message IntegratedServiceInfo { string endpoint = 3; string connectionState = 4; // allowed values: READY, CONNECTING, TRANSIENT_FAILURE, IDLE, SHUTDOWN string data = 5; // always a JSON payload with a map<string, string> inside. -} \ No newline at end of file +} diff --git a/core/protos/o2control_grpc.pb.go b/core/protos/o2control_grpc.pb.go index 884a14e1..faa355ec 100644 --- a/core/protos/o2control_grpc.pb.go +++ b/core/protos/o2control_grpc.pb.go @@ -1,7 +1,30 @@ +// +// === This file is part of ALICE O² === +// +// Copyright 2018 CERN and copyright holders of ALICE O². +// Author: Teo Mrnjavac <teo.mrnjavac@cern.ch> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// In applying this license CERN does not waive the privileges and +// immunities granted to it by virtue of its status as an +// Intergovernmental Organization or submit itself to any jurisdiction. + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v4.23.4 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.1 // source: protos/o2control.proto package pb @@ -18,6 +41,35 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + Control_TrackStatus_FullMethodName = "/o2control.Control/TrackStatus" + Control_GetFrameworkInfo_FullMethodName = "/o2control.Control/GetFrameworkInfo" + Control_Teardown_FullMethodName = "/o2control.Control/Teardown" + Control_GetEnvironments_FullMethodName = "/o2control.Control/GetEnvironments" + Control_NewAutoEnvironment_FullMethodName = "/o2control.Control/NewAutoEnvironment" + Control_NewEnvironment_FullMethodName = "/o2control.Control/NewEnvironment" + Control_GetEnvironment_FullMethodName = "/o2control.Control/GetEnvironment" + Control_ControlEnvironment_FullMethodName = "/o2control.Control/ControlEnvironment" + Control_ModifyEnvironment_FullMethodName = "/o2control.Control/ModifyEnvironment" + Control_DestroyEnvironment_FullMethodName = "/o2control.Control/DestroyEnvironment" + Control_GetActiveDetectors_FullMethodName = "/o2control.Control/GetActiveDetectors" + Control_GetAvailableDetectors_FullMethodName = "/o2control.Control/GetAvailableDetectors" + Control_GetTasks_FullMethodName = "/o2control.Control/GetTasks" + Control_GetTask_FullMethodName = "/o2control.Control/GetTask" + Control_CleanupTasks_FullMethodName = "/o2control.Control/CleanupTasks" + Control_GetRoles_FullMethodName = "/o2control.Control/GetRoles" + Control_GetWorkflowTemplates_FullMethodName = "/o2control.Control/GetWorkflowTemplates" + Control_ListRepos_FullMethodName = "/o2control.Control/ListRepos" + Control_AddRepo_FullMethodName = "/o2control.Control/AddRepo" + Control_RemoveRepo_FullMethodName = "/o2control.Control/RemoveRepo" + Control_RefreshRepos_FullMethodName = "/o2control.Control/RefreshRepos" + Control_SetDefaultRepo_FullMethodName = "/o2control.Control/SetDefaultRepo" + Control_SetGlobalDefaultRevision_FullMethodName = "/o2control.Control/SetGlobalDefaultRevision" + Control_SetRepoDefaultRevision_FullMethodName = "/o2control.Control/SetRepoDefaultRevision" + Control_Subscribe_FullMethodName = "/o2control.Control/Subscribe" + Control_GetIntegratedServices_FullMethodName = "/o2control.Control/GetIntegratedServices" +) + // ControlClient is the client API for Control service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -33,6 +85,7 @@ type ControlClient interface { ModifyEnvironment(ctx context.Context, in *ModifyEnvironmentRequest, opts ...grpc.CallOption) (*ModifyEnvironmentReply, error) DestroyEnvironment(ctx context.Context, in *DestroyEnvironmentRequest, opts ...grpc.CallOption) (*DestroyEnvironmentReply, error) GetActiveDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetActiveDetectorsReply, error) + GetAvailableDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetAvailableDetectorsReply, error) GetTasks(ctx context.Context, in *GetTasksRequest, opts ...grpc.CallOption) (*GetTasksReply, error) GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*GetTaskReply, error) CleanupTasks(ctx context.Context, in *CleanupTasksRequest, opts ...grpc.CallOption) (*CleanupTasksReply, error) @@ -58,7 +111,7 @@ func NewControlClient(cc grpc.ClientConnInterface) ControlClient { } func (c *controlClient) TrackStatus(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (Control_TrackStatusClient, error) { - stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[0], "/o2control.Control/TrackStatus", opts...) + stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[0], Control_TrackStatus_FullMethodName, opts...) if err != nil { return nil, err } @@ -91,7 +144,7 @@ func (x *controlTrackStatusClient) Recv() (*StatusReply, error) { func (c *controlClient) GetFrameworkInfo(ctx context.Context, in *GetFrameworkInfoRequest, opts ...grpc.CallOption) (*GetFrameworkInfoReply, error) { out := new(GetFrameworkInfoReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetFrameworkInfo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetFrameworkInfo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +153,7 @@ func (c *controlClient) GetFrameworkInfo(ctx context.Context, in *GetFrameworkIn func (c *controlClient) Teardown(ctx context.Context, in *TeardownRequest, opts ...grpc.CallOption) (*TeardownReply, error) { out := new(TeardownReply) - err := c.cc.Invoke(ctx, "/o2control.Control/Teardown", in, out, opts...) + err := c.cc.Invoke(ctx, Control_Teardown_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -109,7 +162,7 @@ func (c *controlClient) Teardown(ctx context.Context, in *TeardownRequest, opts func (c *controlClient) GetEnvironments(ctx context.Context, in *GetEnvironmentsRequest, opts ...grpc.CallOption) (*GetEnvironmentsReply, error) { out := new(GetEnvironmentsReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetEnvironments", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetEnvironments_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -118,7 +171,7 @@ func (c *controlClient) GetEnvironments(ctx context.Context, in *GetEnvironments func (c *controlClient) NewAutoEnvironment(ctx context.Context, in *NewAutoEnvironmentRequest, opts ...grpc.CallOption) (*NewAutoEnvironmentReply, error) { out := new(NewAutoEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/NewAutoEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_NewAutoEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -127,7 +180,7 @@ func (c *controlClient) NewAutoEnvironment(ctx context.Context, in *NewAutoEnvir func (c *controlClient) NewEnvironment(ctx context.Context, in *NewEnvironmentRequest, opts ...grpc.CallOption) (*NewEnvironmentReply, error) { out := new(NewEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/NewEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_NewEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -136,7 +189,7 @@ func (c *controlClient) NewEnvironment(ctx context.Context, in *NewEnvironmentRe func (c *controlClient) GetEnvironment(ctx context.Context, in *GetEnvironmentRequest, opts ...grpc.CallOption) (*GetEnvironmentReply, error) { out := new(GetEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -145,7 +198,7 @@ func (c *controlClient) GetEnvironment(ctx context.Context, in *GetEnvironmentRe func (c *controlClient) ControlEnvironment(ctx context.Context, in *ControlEnvironmentRequest, opts ...grpc.CallOption) (*ControlEnvironmentReply, error) { out := new(ControlEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/ControlEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_ControlEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -154,7 +207,7 @@ func (c *controlClient) ControlEnvironment(ctx context.Context, in *ControlEnvir func (c *controlClient) ModifyEnvironment(ctx context.Context, in *ModifyEnvironmentRequest, opts ...grpc.CallOption) (*ModifyEnvironmentReply, error) { out := new(ModifyEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/ModifyEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_ModifyEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -163,7 +216,7 @@ func (c *controlClient) ModifyEnvironment(ctx context.Context, in *ModifyEnviron func (c *controlClient) DestroyEnvironment(ctx context.Context, in *DestroyEnvironmentRequest, opts ...grpc.CallOption) (*DestroyEnvironmentReply, error) { out := new(DestroyEnvironmentReply) - err := c.cc.Invoke(ctx, "/o2control.Control/DestroyEnvironment", in, out, opts...) + err := c.cc.Invoke(ctx, Control_DestroyEnvironment_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -172,7 +225,16 @@ func (c *controlClient) DestroyEnvironment(ctx context.Context, in *DestroyEnvir func (c *controlClient) GetActiveDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetActiveDetectorsReply, error) { out := new(GetActiveDetectorsReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetActiveDetectors", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetActiveDetectors_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) GetAvailableDetectors(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*GetAvailableDetectorsReply, error) { + out := new(GetAvailableDetectorsReply) + err := c.cc.Invoke(ctx, Control_GetAvailableDetectors_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -181,7 +243,7 @@ func (c *controlClient) GetActiveDetectors(ctx context.Context, in *Empty, opts func (c *controlClient) GetTasks(ctx context.Context, in *GetTasksRequest, opts ...grpc.CallOption) (*GetTasksReply, error) { out := new(GetTasksReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetTasks", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetTasks_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -190,7 +252,7 @@ func (c *controlClient) GetTasks(ctx context.Context, in *GetTasksRequest, opts func (c *controlClient) GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*GetTaskReply, error) { out := new(GetTaskReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetTask", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetTask_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -199,7 +261,7 @@ func (c *controlClient) GetTask(ctx context.Context, in *GetTaskRequest, opts .. func (c *controlClient) CleanupTasks(ctx context.Context, in *CleanupTasksRequest, opts ...grpc.CallOption) (*CleanupTasksReply, error) { out := new(CleanupTasksReply) - err := c.cc.Invoke(ctx, "/o2control.Control/CleanupTasks", in, out, opts...) + err := c.cc.Invoke(ctx, Control_CleanupTasks_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -208,7 +270,7 @@ func (c *controlClient) CleanupTasks(ctx context.Context, in *CleanupTasksReques func (c *controlClient) GetRoles(ctx context.Context, in *GetRolesRequest, opts ...grpc.CallOption) (*GetRolesReply, error) { out := new(GetRolesReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetRoles", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetRoles_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -217,7 +279,7 @@ func (c *controlClient) GetRoles(ctx context.Context, in *GetRolesRequest, opts func (c *controlClient) GetWorkflowTemplates(ctx context.Context, in *GetWorkflowTemplatesRequest, opts ...grpc.CallOption) (*GetWorkflowTemplatesReply, error) { out := new(GetWorkflowTemplatesReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetWorkflowTemplates", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetWorkflowTemplates_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -226,7 +288,7 @@ func (c *controlClient) GetWorkflowTemplates(ctx context.Context, in *GetWorkflo func (c *controlClient) ListRepos(ctx context.Context, in *ListReposRequest, opts ...grpc.CallOption) (*ListReposReply, error) { out := new(ListReposReply) - err := c.cc.Invoke(ctx, "/o2control.Control/ListRepos", in, out, opts...) + err := c.cc.Invoke(ctx, Control_ListRepos_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -235,7 +297,7 @@ func (c *controlClient) ListRepos(ctx context.Context, in *ListReposRequest, opt func (c *controlClient) AddRepo(ctx context.Context, in *AddRepoRequest, opts ...grpc.CallOption) (*AddRepoReply, error) { out := new(AddRepoReply) - err := c.cc.Invoke(ctx, "/o2control.Control/AddRepo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_AddRepo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -244,7 +306,7 @@ func (c *controlClient) AddRepo(ctx context.Context, in *AddRepoRequest, opts .. func (c *controlClient) RemoveRepo(ctx context.Context, in *RemoveRepoRequest, opts ...grpc.CallOption) (*RemoveRepoReply, error) { out := new(RemoveRepoReply) - err := c.cc.Invoke(ctx, "/o2control.Control/RemoveRepo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_RemoveRepo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -253,7 +315,7 @@ func (c *controlClient) RemoveRepo(ctx context.Context, in *RemoveRepoRequest, o func (c *controlClient) RefreshRepos(ctx context.Context, in *RefreshReposRequest, opts ...grpc.CallOption) (*Empty, error) { out := new(Empty) - err := c.cc.Invoke(ctx, "/o2control.Control/RefreshRepos", in, out, opts...) + err := c.cc.Invoke(ctx, Control_RefreshRepos_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -262,7 +324,7 @@ func (c *controlClient) RefreshRepos(ctx context.Context, in *RefreshReposReques func (c *controlClient) SetDefaultRepo(ctx context.Context, in *SetDefaultRepoRequest, opts ...grpc.CallOption) (*Empty, error) { out := new(Empty) - err := c.cc.Invoke(ctx, "/o2control.Control/SetDefaultRepo", in, out, opts...) + err := c.cc.Invoke(ctx, Control_SetDefaultRepo_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -271,7 +333,7 @@ func (c *controlClient) SetDefaultRepo(ctx context.Context, in *SetDefaultRepoRe func (c *controlClient) SetGlobalDefaultRevision(ctx context.Context, in *SetGlobalDefaultRevisionRequest, opts ...grpc.CallOption) (*Empty, error) { out := new(Empty) - err := c.cc.Invoke(ctx, "/o2control.Control/SetGlobalDefaultRevision", in, out, opts...) + err := c.cc.Invoke(ctx, Control_SetGlobalDefaultRevision_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -280,7 +342,7 @@ func (c *controlClient) SetGlobalDefaultRevision(ctx context.Context, in *SetGlo func (c *controlClient) SetRepoDefaultRevision(ctx context.Context, in *SetRepoDefaultRevisionRequest, opts ...grpc.CallOption) (*SetRepoDefaultRevisionReply, error) { out := new(SetRepoDefaultRevisionReply) - err := c.cc.Invoke(ctx, "/o2control.Control/SetRepoDefaultRevision", in, out, opts...) + err := c.cc.Invoke(ctx, Control_SetRepoDefaultRevision_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -288,7 +350,7 @@ func (c *controlClient) SetRepoDefaultRevision(ctx context.Context, in *SetRepoD } func (c *controlClient) Subscribe(ctx context.Context, in *SubscribeRequest, opts ...grpc.CallOption) (Control_SubscribeClient, error) { - stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[1], "/o2control.Control/Subscribe", opts...) + stream, err := c.cc.NewStream(ctx, &Control_ServiceDesc.Streams[1], Control_Subscribe_FullMethodName, opts...) if err != nil { return nil, err } @@ -321,7 +383,7 @@ func (x *controlSubscribeClient) Recv() (*Event, error) { func (c *controlClient) GetIntegratedServices(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListIntegratedServicesReply, error) { out := new(ListIntegratedServicesReply) - err := c.cc.Invoke(ctx, "/o2control.Control/GetIntegratedServices", in, out, opts...) + err := c.cc.Invoke(ctx, Control_GetIntegratedServices_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -343,6 +405,7 @@ type ControlServer interface { ModifyEnvironment(context.Context, *ModifyEnvironmentRequest) (*ModifyEnvironmentReply, error) DestroyEnvironment(context.Context, *DestroyEnvironmentRequest) (*DestroyEnvironmentReply, error) GetActiveDetectors(context.Context, *Empty) (*GetActiveDetectorsReply, error) + GetAvailableDetectors(context.Context, *Empty) (*GetAvailableDetectorsReply, error) GetTasks(context.Context, *GetTasksRequest) (*GetTasksReply, error) GetTask(context.Context, *GetTaskRequest) (*GetTaskReply, error) CleanupTasks(context.Context, *CleanupTasksRequest) (*CleanupTasksReply, error) @@ -396,6 +459,9 @@ func (UnimplementedControlServer) DestroyEnvironment(context.Context, *DestroyEn func (UnimplementedControlServer) GetActiveDetectors(context.Context, *Empty) (*GetActiveDetectorsReply, error) { return nil, status.Errorf(codes.Unimplemented, "method GetActiveDetectors not implemented") } +func (UnimplementedControlServer) GetAvailableDetectors(context.Context, *Empty) (*GetAvailableDetectorsReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAvailableDetectors not implemented") +} func (UnimplementedControlServer) GetTasks(context.Context, *GetTasksRequest) (*GetTasksReply, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTasks not implemented") } @@ -481,7 +547,7 @@ func _Control_GetFrameworkInfo_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetFrameworkInfo", + FullMethod: Control_GetFrameworkInfo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetFrameworkInfo(ctx, req.(*GetFrameworkInfoRequest)) @@ -499,7 +565,7 @@ func _Control_Teardown_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/Teardown", + FullMethod: Control_Teardown_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).Teardown(ctx, req.(*TeardownRequest)) @@ -517,7 +583,7 @@ func _Control_GetEnvironments_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetEnvironments", + FullMethod: Control_GetEnvironments_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetEnvironments(ctx, req.(*GetEnvironmentsRequest)) @@ -535,7 +601,7 @@ func _Control_NewAutoEnvironment_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/NewAutoEnvironment", + FullMethod: Control_NewAutoEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).NewAutoEnvironment(ctx, req.(*NewAutoEnvironmentRequest)) @@ -553,7 +619,7 @@ func _Control_NewEnvironment_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/NewEnvironment", + FullMethod: Control_NewEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).NewEnvironment(ctx, req.(*NewEnvironmentRequest)) @@ -571,7 +637,7 @@ func _Control_GetEnvironment_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetEnvironment", + FullMethod: Control_GetEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetEnvironment(ctx, req.(*GetEnvironmentRequest)) @@ -589,7 +655,7 @@ func _Control_ControlEnvironment_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/ControlEnvironment", + FullMethod: Control_ControlEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).ControlEnvironment(ctx, req.(*ControlEnvironmentRequest)) @@ -607,7 +673,7 @@ func _Control_ModifyEnvironment_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/ModifyEnvironment", + FullMethod: Control_ModifyEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).ModifyEnvironment(ctx, req.(*ModifyEnvironmentRequest)) @@ -625,7 +691,7 @@ func _Control_DestroyEnvironment_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/DestroyEnvironment", + FullMethod: Control_DestroyEnvironment_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).DestroyEnvironment(ctx, req.(*DestroyEnvironmentRequest)) @@ -643,7 +709,7 @@ func _Control_GetActiveDetectors_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetActiveDetectors", + FullMethod: Control_GetActiveDetectors_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetActiveDetectors(ctx, req.(*Empty)) @@ -651,6 +717,24 @@ func _Control_GetActiveDetectors_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _Control_GetAvailableDetectors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).GetAvailableDetectors(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Control_GetAvailableDetectors_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).GetAvailableDetectors(ctx, req.(*Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _Control_GetTasks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTasksRequest) if err := dec(in); err != nil { @@ -661,7 +745,7 @@ func _Control_GetTasks_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetTasks", + FullMethod: Control_GetTasks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetTasks(ctx, req.(*GetTasksRequest)) @@ -679,7 +763,7 @@ func _Control_GetTask_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetTask", + FullMethod: Control_GetTask_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetTask(ctx, req.(*GetTaskRequest)) @@ -697,7 +781,7 @@ func _Control_CleanupTasks_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/CleanupTasks", + FullMethod: Control_CleanupTasks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).CleanupTasks(ctx, req.(*CleanupTasksRequest)) @@ -715,7 +799,7 @@ func _Control_GetRoles_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetRoles", + FullMethod: Control_GetRoles_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetRoles(ctx, req.(*GetRolesRequest)) @@ -733,7 +817,7 @@ func _Control_GetWorkflowTemplates_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetWorkflowTemplates", + FullMethod: Control_GetWorkflowTemplates_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetWorkflowTemplates(ctx, req.(*GetWorkflowTemplatesRequest)) @@ -751,7 +835,7 @@ func _Control_ListRepos_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/ListRepos", + FullMethod: Control_ListRepos_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).ListRepos(ctx, req.(*ListReposRequest)) @@ -769,7 +853,7 @@ func _Control_AddRepo_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/AddRepo", + FullMethod: Control_AddRepo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).AddRepo(ctx, req.(*AddRepoRequest)) @@ -787,7 +871,7 @@ func _Control_RemoveRepo_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/RemoveRepo", + FullMethod: Control_RemoveRepo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).RemoveRepo(ctx, req.(*RemoveRepoRequest)) @@ -805,7 +889,7 @@ func _Control_RefreshRepos_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/RefreshRepos", + FullMethod: Control_RefreshRepos_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).RefreshRepos(ctx, req.(*RefreshReposRequest)) @@ -823,7 +907,7 @@ func _Control_SetDefaultRepo_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/SetDefaultRepo", + FullMethod: Control_SetDefaultRepo_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).SetDefaultRepo(ctx, req.(*SetDefaultRepoRequest)) @@ -841,7 +925,7 @@ func _Control_SetGlobalDefaultRevision_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/SetGlobalDefaultRevision", + FullMethod: Control_SetGlobalDefaultRevision_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).SetGlobalDefaultRevision(ctx, req.(*SetGlobalDefaultRevisionRequest)) @@ -859,7 +943,7 @@ func _Control_SetRepoDefaultRevision_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/SetRepoDefaultRevision", + FullMethod: Control_SetRepoDefaultRevision_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).SetRepoDefaultRevision(ctx, req.(*SetRepoDefaultRevisionRequest)) @@ -898,7 +982,7 @@ func _Control_GetIntegratedServices_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/o2control.Control/GetIntegratedServices", + FullMethod: Control_GetIntegratedServices_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ControlServer).GetIntegratedServices(ctx, req.(*Empty)) @@ -953,6 +1037,10 @@ var Control_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetActiveDetectors", Handler: _Control_GetActiveDetectors_Handler, }, + { + MethodName: "GetAvailableDetectors", + Handler: _Control_GetAvailableDetectors_Handler, + }, { MethodName: "GetTasks", Handler: _Control_GetTasks_Handler, diff --git a/core/server.go b/core/server.go index c69eaad9..fbc2e617 100644 --- a/core/server.go +++ b/core/server.go @@ -173,21 +173,12 @@ func (m *RpcServer) GetFrameworkInfo(context.Context, *pb.GetFrameworkInfoReques min, _ := strconv.ParseInt(product.VERSION_MINOR, 10, 32) pat, _ := strconv.ParseInt(product.VERSION_PATCH, 10, 32) - cs := the.ConfSvc() - allDetectors, err := cs.ListDetectors(true) + availableDetectors, activeDetectors, allDetectors, err := m.listDetectors() + if err != nil { allDetectors = []string{"NIL"} - } - activeDetectorsMap := m.state.environments.GetActiveDetectors() - availableDetectors := make([]string, 0) - for _, det := range allDetectors { - detId, err := system.IDString(det) - if err != nil { - continue - } - if _, contains := activeDetectorsMap[detId]; !contains { - availableDetectors = append(availableDetectors, det) - } + availableDetectors = []string{} + activeDetectors = []string{} } r := &pb.GetFrameworkInfoReply{ @@ -207,7 +198,7 @@ func (m *RpcServer) GetFrameworkInfo(context.Context, *pb.GetFrameworkInfoReques }, ConfigurationEndpoint: viper.GetString("configServiceUri"), DetectorsInInstance: allDetectors, - ActiveDetectors: activeDetectorsMap.StringList(), + ActiveDetectors: activeDetectors, AvailableDetectors: availableDetectors, } return r, nil @@ -691,6 +682,43 @@ func (m *RpcServer) GetActiveDetectors(_ context.Context, _ *pb.Empty) (*pb.GetA return r, nil } +// return string lists of available, active and all detectors +func (m *RpcServer) listDetectors() ([]string, []string, []string, error) { + cs := the.ConfSvc() + allDetectors, err := cs.ListDetectors(true) + if err != nil { + return nil, nil, nil, err + } + activeDetectorsMap := m.state.environments.GetActiveDetectors() + availableDetectors := make([]string, 0) + for _, det := range allDetectors { + detId, err := system.IDString(det) + if err != nil { + continue + } + if _, contains := activeDetectorsMap[detId]; !contains { + availableDetectors = append(availableDetectors, det) + } + } + + return availableDetectors, activeDetectorsMap.StringList(), allDetectors, nil +} + +func (m *RpcServer) GetAvailableDetectors(_ context.Context, _ *pb.Empty) (*pb.GetAvailableDetectorsReply, error) { + defer utils.TimeTrackFunction(time.Now(), log.WithPrefix("rpcserver")) + m.logMethod() + defer m.logMethodHandled() + + if availableDetectors, _, _, err := m.listDetectors(); err != nil { + return nil, err + } else { + r := &pb.GetAvailableDetectorsReply{ + Detectors: availableDetectors, + } + return r, nil + } +} + func (m *RpcServer) GetTasks(context.Context, *pb.GetTasksRequest) (*pb.GetTasksReply, error) { defer utils.TimeTrackFunction(time.Now(), log.WithPrefix("rpcserver")) m.logMethod()