diff --git a/client/client-1.0/Javascript/appclient_commands.txt b/client/client-1.0/Javascript/appclient_commands.txt index 2fcdd595..635f7045 100644 --- a/client/client-1.0/Javascript/appclient_commands.txt +++ b/client/client-1.0/Javascript/appclient_commands.txt @@ -27,9 +27,7 @@ Get request with AT token (XXX must be replaced with actual token): {"action":"get","path":"Vehicle.Body.BodyType","authorization":"XXX","requestId":"243"} Metadata request: -{"action":"get","path":"Vehicle/ADAS/ABS","filter":{"type":"static-metadata","parameter":""},"requestId":"244"} -{"action":"get","path":"Vehicle","filter":{"type":"dynamic-metadata","parameter":"server_capabilities"},"requestId":"244"} -{"action":"get","path":"Vehicle/ADAS","filter":[{"type":"paths","parameter":["ABS/*","CruiseControl/Error"]},{"type":"dynamic-metadata","parameter":"availability"}],"requestId":"237"} +{"action":"get","path":"Vehicle/ADAS/ABS","filter":{"type":"metadata","parameter":""},"requestId":"244"} Set request: {"action":"set", "path":"Vehicle/Cabin/Door/Row1/PassengerSide/IsOpen", "value":"999", "requestId":"245"} @@ -70,7 +68,7 @@ Payload: 0.123 Service discovery request: HTTP GET -URL: Vehicle/ADAS/ABS?filter={"type":"static-metadata", "parameter":""} +URL: Vehicle/ADAS/ABS?filter={"type":"metadata", "parameter":""} // ********* Access control testing ************* // requires that a binary VSS file has been generated with "validate" tags added into vspec file(s) for the requested signals. diff --git a/grpc_pb/README.md b/grpc_pb/README.md index 852b0237..727a7026 100644 --- a/grpc_pb/README.md +++ b/grpc_pb/README.md @@ -4,8 +4,8 @@ The gRPC implementation is payload compatible with the Websocket and MQTT implementations. -The following command builds the VISSv2.proto file: +The following command builds the VISSv3.proto file: -protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative VISSv2.proto +protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative VISSv3.proto diff --git a/grpc_pb/VISSv2.pb.go b/grpc_pb/VISSv3.pb.go similarity index 64% rename from grpc_pb/VISSv2.pb.go rename to grpc_pb/VISSv3.pb.go index 4fe23d58..db52a720 100644 --- a/grpc_pb/VISSv2.pb.go +++ b/grpc_pb/VISSv3.pb.go @@ -10,7 +10,7 @@ // versions: // protoc-gen-go v1.31.0 // protoc v3.15.8 -// source: VISSv2.proto +// source: VISSv3.proto package __ @@ -58,11 +58,11 @@ func (x ResponseStatus) String() string { } func (ResponseStatus) Descriptor() protoreflect.EnumDescriptor { - return file_VISSv2_proto_enumTypes[0].Descriptor() + return file_VISSv3_proto_enumTypes[0].Descriptor() } func (ResponseStatus) Type() protoreflect.EnumType { - return &file_VISSv2_proto_enumTypes[0] + return &file_VISSv3_proto_enumTypes[0] } func (x ResponseStatus) Number() protoreflect.EnumNumber { @@ -71,7 +71,7 @@ func (x ResponseStatus) Number() protoreflect.EnumNumber { // Deprecated: Use ResponseStatus.Descriptor instead. func (ResponseStatus) EnumDescriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{0} + return file_VISSv3_proto_rawDescGZIP(), []int{0} } type SubscribeResponseType int32 @@ -104,11 +104,11 @@ func (x SubscribeResponseType) String() string { } func (SubscribeResponseType) Descriptor() protoreflect.EnumDescriptor { - return file_VISSv2_proto_enumTypes[1].Descriptor() + return file_VISSv3_proto_enumTypes[1].Descriptor() } func (SubscribeResponseType) Type() protoreflect.EnumType { - return &file_VISSv2_proto_enumTypes[1] + return &file_VISSv3_proto_enumTypes[1] } func (x SubscribeResponseType) Number() protoreflect.EnumNumber { @@ -117,20 +117,19 @@ func (x SubscribeResponseType) Number() protoreflect.EnumNumber { // Deprecated: Use SubscribeResponseType.Descriptor instead. func (SubscribeResponseType) EnumDescriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1} + return file_VISSv3_proto_rawDescGZIP(), []int{1} } type FilterExpressions_FilterExpression_FilterType int32 const ( - FilterExpressions_FilterExpression_PATHS FilterExpressions_FilterExpression_FilterType = 0 - FilterExpressions_FilterExpression_TIMEBASED FilterExpressions_FilterExpression_FilterType = 1 - FilterExpressions_FilterExpression_RANGE FilterExpressions_FilterExpression_FilterType = 2 - FilterExpressions_FilterExpression_CHANGE FilterExpressions_FilterExpression_FilterType = 3 - FilterExpressions_FilterExpression_CURVELOG FilterExpressions_FilterExpression_FilterType = 4 - FilterExpressions_FilterExpression_HISTORY FilterExpressions_FilterExpression_FilterType = 5 - FilterExpressions_FilterExpression_STATIC_METADATA FilterExpressions_FilterExpression_FilterType = 6 - FilterExpressions_FilterExpression_DYNAMIC_METADATA FilterExpressions_FilterExpression_FilterType = 7 + FilterExpressions_FilterExpression_PATHS FilterExpressions_FilterExpression_FilterType = 0 + FilterExpressions_FilterExpression_TIMEBASED FilterExpressions_FilterExpression_FilterType = 1 + FilterExpressions_FilterExpression_RANGE FilterExpressions_FilterExpression_FilterType = 2 + FilterExpressions_FilterExpression_CHANGE FilterExpressions_FilterExpression_FilterType = 3 + FilterExpressions_FilterExpression_CURVELOG FilterExpressions_FilterExpression_FilterType = 4 + FilterExpressions_FilterExpression_HISTORY FilterExpressions_FilterExpression_FilterType = 5 + FilterExpressions_FilterExpression_METADATA FilterExpressions_FilterExpression_FilterType = 6 ) // Enum value maps for FilterExpressions_FilterExpression_FilterType. @@ -142,18 +141,16 @@ var ( 3: "CHANGE", 4: "CURVELOG", 5: "HISTORY", - 6: "STATIC_METADATA", - 7: "DYNAMIC_METADATA", + 6: "METADATA", } FilterExpressions_FilterExpression_FilterType_value = map[string]int32{ - "PATHS": 0, - "TIMEBASED": 1, - "RANGE": 2, - "CHANGE": 3, - "CURVELOG": 4, - "HISTORY": 5, - "STATIC_METADATA": 6, - "DYNAMIC_METADATA": 7, + "PATHS": 0, + "TIMEBASED": 1, + "RANGE": 2, + "CHANGE": 3, + "CURVELOG": 4, + "HISTORY": 5, + "METADATA": 6, } ) @@ -168,11 +165,11 @@ func (x FilterExpressions_FilterExpression_FilterType) String() string { } func (FilterExpressions_FilterExpression_FilterType) Descriptor() protoreflect.EnumDescriptor { - return file_VISSv2_proto_enumTypes[2].Descriptor() + return file_VISSv3_proto_enumTypes[2].Descriptor() } func (FilterExpressions_FilterExpression_FilterType) Type() protoreflect.EnumType { - return &file_VISSv2_proto_enumTypes[2] + return &file_VISSv3_proto_enumTypes[2] } func (x FilterExpressions_FilterExpression_FilterType) Number() protoreflect.EnumNumber { @@ -181,7 +178,7 @@ func (x FilterExpressions_FilterExpression_FilterType) Number() protoreflect.Enu // Deprecated: Use FilterExpressions_FilterExpression_FilterType.Descriptor instead. func (FilterExpressions_FilterExpression_FilterType) EnumDescriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0} } type ErrorResponseMessage struct { @@ -197,7 +194,7 @@ type ErrorResponseMessage struct { func (x *ErrorResponseMessage) Reset() { *x = ErrorResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[0] + mi := &file_VISSv3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -210,7 +207,7 @@ func (x *ErrorResponseMessage) String() string { func (*ErrorResponseMessage) ProtoMessage() {} func (x *ErrorResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[0] + mi := &file_VISSv3_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -223,7 +220,7 @@ func (x *ErrorResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ErrorResponseMessage.ProtoReflect.Descriptor instead. func (*ErrorResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{0} + return file_VISSv3_proto_rawDescGZIP(), []int{0} } func (x *ErrorResponseMessage) GetNumber() string { @@ -258,7 +255,7 @@ type FilterExpressions struct { func (x *FilterExpressions) Reset() { *x = FilterExpressions{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[1] + mi := &file_VISSv3_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -271,7 +268,7 @@ func (x *FilterExpressions) String() string { func (*FilterExpressions) ProtoMessage() {} func (x *FilterExpressions) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[1] + mi := &file_VISSv3_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -284,7 +281,7 @@ func (x *FilterExpressions) ProtoReflect() protoreflect.Message { // Deprecated: Use FilterExpressions.ProtoReflect.Descriptor instead. func (*FilterExpressions) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1} + return file_VISSv3_proto_rawDescGZIP(), []int{1} } func (x *FilterExpressions) GetFilterExp() []*FilterExpressions_FilterExpression { @@ -305,7 +302,7 @@ type DataPackages struct { func (x *DataPackages) Reset() { *x = DataPackages{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[2] + mi := &file_VISSv3_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -318,7 +315,7 @@ func (x *DataPackages) String() string { func (*DataPackages) ProtoMessage() {} func (x *DataPackages) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[2] + mi := &file_VISSv3_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -331,7 +328,7 @@ func (x *DataPackages) ProtoReflect() protoreflect.Message { // Deprecated: Use DataPackages.ProtoReflect.Descriptor instead. func (*DataPackages) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{2} + return file_VISSv3_proto_rawDescGZIP(), []int{2} } func (x *DataPackages) GetData() []*DataPackages_DataPackage { @@ -355,7 +352,7 @@ type GetRequestMessage struct { func (x *GetRequestMessage) Reset() { *x = GetRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[3] + mi := &file_VISSv3_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -368,7 +365,7 @@ func (x *GetRequestMessage) String() string { func (*GetRequestMessage) ProtoMessage() {} func (x *GetRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[3] + mi := &file_VISSv3_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -381,7 +378,7 @@ func (x *GetRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRequestMessage.ProtoReflect.Descriptor instead. func (*GetRequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{3} + return file_VISSv3_proto_rawDescGZIP(), []int{3} } func (x *GetRequestMessage) GetPath() string { @@ -429,7 +426,7 @@ type GetResponseMessage struct { func (x *GetResponseMessage) Reset() { *x = GetResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[4] + mi := &file_VISSv3_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -442,7 +439,7 @@ func (x *GetResponseMessage) String() string { func (*GetResponseMessage) ProtoMessage() {} func (x *GetResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[4] + mi := &file_VISSv3_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -455,7 +452,7 @@ func (x *GetResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResponseMessage.ProtoReflect.Descriptor instead. func (*GetResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{4} + return file_VISSv3_proto_rawDescGZIP(), []int{4} } func (x *GetResponseMessage) GetStatus() ResponseStatus { @@ -521,7 +518,7 @@ type SetRequestMessage struct { func (x *SetRequestMessage) Reset() { *x = SetRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[5] + mi := &file_VISSv3_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -534,7 +531,7 @@ func (x *SetRequestMessage) String() string { func (*SetRequestMessage) ProtoMessage() {} func (x *SetRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[5] + mi := &file_VISSv3_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -547,7 +544,7 @@ func (x *SetRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SetRequestMessage.ProtoReflect.Descriptor instead. func (*SetRequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{5} + return file_VISSv3_proto_rawDescGZIP(), []int{5} } func (x *SetRequestMessage) GetPath() string { @@ -593,7 +590,7 @@ type SetResponseMessage struct { func (x *SetResponseMessage) Reset() { *x = SetResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[6] + mi := &file_VISSv3_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -606,7 +603,7 @@ func (x *SetResponseMessage) String() string { func (*SetResponseMessage) ProtoMessage() {} func (x *SetResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[6] + mi := &file_VISSv3_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -619,7 +616,7 @@ func (x *SetResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SetResponseMessage.ProtoReflect.Descriptor instead. func (*SetResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{6} + return file_VISSv3_proto_rawDescGZIP(), []int{6} } func (x *SetResponseMessage) GetStatus() ResponseStatus { @@ -671,7 +668,7 @@ type SubscribeRequestMessage struct { func (x *SubscribeRequestMessage) Reset() { *x = SubscribeRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[7] + mi := &file_VISSv3_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -684,7 +681,7 @@ func (x *SubscribeRequestMessage) String() string { func (*SubscribeRequestMessage) ProtoMessage() {} func (x *SubscribeRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[7] + mi := &file_VISSv3_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -697,7 +694,7 @@ func (x *SubscribeRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeRequestMessage.ProtoReflect.Descriptor instead. func (*SubscribeRequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{7} + return file_VISSv3_proto_rawDescGZIP(), []int{7} } func (x *SubscribeRequestMessage) GetPath() string { @@ -742,7 +739,7 @@ type SubscribeStreamMessage struct { func (x *SubscribeStreamMessage) Reset() { *x = SubscribeStreamMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[8] + mi := &file_VISSv3_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -755,7 +752,7 @@ func (x *SubscribeStreamMessage) String() string { func (*SubscribeStreamMessage) ProtoMessage() {} func (x *SubscribeStreamMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[8] + mi := &file_VISSv3_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -768,7 +765,7 @@ func (x *SubscribeStreamMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeStreamMessage.ProtoReflect.Descriptor instead. func (*SubscribeStreamMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{8} + return file_VISSv3_proto_rawDescGZIP(), []int{8} } func (x *SubscribeStreamMessage) GetMType() SubscribeResponseType { @@ -811,7 +808,7 @@ type UnsubscribeRequestMessage struct { func (x *UnsubscribeRequestMessage) Reset() { *x = UnsubscribeRequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[9] + mi := &file_VISSv3_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -824,7 +821,7 @@ func (x *UnsubscribeRequestMessage) String() string { func (*UnsubscribeRequestMessage) ProtoMessage() {} func (x *UnsubscribeRequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[9] + mi := &file_VISSv3_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -837,7 +834,7 @@ func (x *UnsubscribeRequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeRequestMessage.ProtoReflect.Descriptor instead. func (*UnsubscribeRequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{9} + return file_VISSv3_proto_rawDescGZIP(), []int{9} } func (x *UnsubscribeRequestMessage) GetSubscriptionId() string { @@ -869,7 +866,7 @@ type UnsubscribeResponseMessage struct { func (x *UnsubscribeResponseMessage) Reset() { *x = UnsubscribeResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[10] + mi := &file_VISSv3_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -882,7 +879,7 @@ func (x *UnsubscribeResponseMessage) String() string { func (*UnsubscribeResponseMessage) ProtoMessage() {} func (x *UnsubscribeResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[10] + mi := &file_VISSv3_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -895,7 +892,7 @@ func (x *UnsubscribeResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeResponseMessage.ProtoReflect.Descriptor instead. func (*UnsubscribeResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{10} + return file_VISSv3_proto_rawDescGZIP(), []int{10} } func (x *UnsubscribeResponseMessage) GetSubscriptionId() string { @@ -945,7 +942,7 @@ type FilterExpressions_FilterExpression struct { func (x *FilterExpressions_FilterExpression) Reset() { *x = FilterExpressions_FilterExpression{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[11] + mi := &file_VISSv3_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -958,7 +955,7 @@ func (x *FilterExpressions_FilterExpression) String() string { func (*FilterExpressions_FilterExpression) ProtoMessage() {} func (x *FilterExpressions_FilterExpression) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[11] + mi := &file_VISSv3_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -971,7 +968,7 @@ func (x *FilterExpressions_FilterExpression) ProtoReflect() protoreflect.Message // Deprecated: Use FilterExpressions_FilterExpression.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0} } func (x *FilterExpressions_FilterExpression) GetFType() FilterExpressions_FilterExpression_FilterType { @@ -993,20 +990,19 @@ type FilterExpressions_FilterExpression_FilterValue struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValuePaths *FilterExpressions_FilterExpression_FilterValue_PathsValue `protobuf:"bytes,1,opt,name=ValuePaths,proto3,oneof" json:"ValuePaths,omitempty"` - ValueTimebased *FilterExpressions_FilterExpression_FilterValue_TimebasedValue `protobuf:"bytes,2,opt,name=ValueTimebased,proto3,oneof" json:"ValueTimebased,omitempty"` - ValueRange []*FilterExpressions_FilterExpression_FilterValue_RangeValue `protobuf:"bytes,3,rep,name=ValueRange,proto3" json:"ValueRange,omitempty"` - ValueChange *FilterExpressions_FilterExpression_FilterValue_ChangeValue `protobuf:"bytes,4,opt,name=ValueChange,proto3,oneof" json:"ValueChange,omitempty"` - ValueCurvelog *FilterExpressions_FilterExpression_FilterValue_CurvelogValue `protobuf:"bytes,5,opt,name=ValueCurvelog,proto3,oneof" json:"ValueCurvelog,omitempty"` - ValueHistory *FilterExpressions_FilterExpression_FilterValue_HistoryValue `protobuf:"bytes,6,opt,name=ValueHistory,proto3,oneof" json:"ValueHistory,omitempty"` - ValueStaticMetadata *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue `protobuf:"bytes,7,opt,name=ValueStaticMetadata,proto3,oneof" json:"ValueStaticMetadata,omitempty"` - ValueDynamicMetadata *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue `protobuf:"bytes,8,opt,name=ValueDynamicMetadata,proto3,oneof" json:"ValueDynamicMetadata,omitempty"` + ValuePaths *FilterExpressions_FilterExpression_FilterValue_PathsValue `protobuf:"bytes,1,opt,name=ValuePaths,proto3,oneof" json:"ValuePaths,omitempty"` + ValueTimebased *FilterExpressions_FilterExpression_FilterValue_TimebasedValue `protobuf:"bytes,2,opt,name=ValueTimebased,proto3,oneof" json:"ValueTimebased,omitempty"` + ValueRange []*FilterExpressions_FilterExpression_FilterValue_RangeValue `protobuf:"bytes,3,rep,name=ValueRange,proto3" json:"ValueRange,omitempty"` + ValueChange *FilterExpressions_FilterExpression_FilterValue_ChangeValue `protobuf:"bytes,4,opt,name=ValueChange,proto3,oneof" json:"ValueChange,omitempty"` + ValueCurvelog *FilterExpressions_FilterExpression_FilterValue_CurvelogValue `protobuf:"bytes,5,opt,name=ValueCurvelog,proto3,oneof" json:"ValueCurvelog,omitempty"` + ValueHistory *FilterExpressions_FilterExpression_FilterValue_HistoryValue `protobuf:"bytes,6,opt,name=ValueHistory,proto3,oneof" json:"ValueHistory,omitempty"` + ValueMetadata *FilterExpressions_FilterExpression_FilterValue_MetadataValue `protobuf:"bytes,7,opt,name=ValueMetadata,proto3,oneof" json:"ValueMetadata,omitempty"` } func (x *FilterExpressions_FilterExpression_FilterValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[12] + mi := &file_VISSv3_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1019,7 +1015,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue) String() string { func (*FilterExpressions_FilterExpression_FilterValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[12] + mi := &file_VISSv3_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1032,7 +1028,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue) ProtoReflect() protoref // Deprecated: Use FilterExpressions_FilterExpression_FilterValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0} } func (x *FilterExpressions_FilterExpression_FilterValue) GetValuePaths() *FilterExpressions_FilterExpression_FilterValue_PathsValue { @@ -1077,16 +1073,9 @@ func (x *FilterExpressions_FilterExpression_FilterValue) GetValueHistory() *Filt return nil } -func (x *FilterExpressions_FilterExpression_FilterValue) GetValueStaticMetadata() *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue { +func (x *FilterExpressions_FilterExpression_FilterValue) GetValueMetadata() *FilterExpressions_FilterExpression_FilterValue_MetadataValue { if x != nil { - return x.ValueStaticMetadata - } - return nil -} - -func (x *FilterExpressions_FilterExpression_FilterValue) GetValueDynamicMetadata() *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue { - if x != nil { - return x.ValueDynamicMetadata + return x.ValueMetadata } return nil } @@ -1102,7 +1091,7 @@ type FilterExpressions_FilterExpression_FilterValue_PathsValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_PathsValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[13] + mi := &file_VISSv3_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1115,7 +1104,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) String() str func (*FilterExpressions_FilterExpression_FilterValue_PathsValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[13] + mi := &file_VISSv3_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1128,7 +1117,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) ProtoReflect // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_PathsValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_PathsValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0, 0} } func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) GetRelativePath() []string { @@ -1149,7 +1138,7 @@ type FilterExpressions_FilterExpression_FilterValue_TimebasedValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_TimebasedValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[14] + mi := &file_VISSv3_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1162,7 +1151,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) String() func (*FilterExpressions_FilterExpression_FilterValue_TimebasedValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[14] + mi := &file_VISSv3_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1175,7 +1164,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) ProtoRef // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_TimebasedValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_TimebasedValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 1} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0, 1} } func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) GetPeriod() string { @@ -1197,7 +1186,7 @@ type FilterExpressions_FilterExpression_FilterValue_RangeValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_RangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[15] + mi := &file_VISSv3_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1210,7 +1199,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) String() str func (*FilterExpressions_FilterExpression_FilterValue_RangeValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[15] + mi := &file_VISSv3_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1223,7 +1212,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) ProtoReflect // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_RangeValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_RangeValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 2} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0, 2} } func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) GetLogicOperator() string { @@ -1252,7 +1241,7 @@ type FilterExpressions_FilterExpression_FilterValue_ChangeValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_ChangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[16] + mi := &file_VISSv3_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1265,7 +1254,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) String() st func (*FilterExpressions_FilterExpression_FilterValue_ChangeValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[16] + mi := &file_VISSv3_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1278,7 +1267,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) ProtoReflec // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_ChangeValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_ChangeValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 3} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0, 3} } func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) GetLogicOperator() string { @@ -1307,7 +1296,7 @@ type FilterExpressions_FilterExpression_FilterValue_CurvelogValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_CurvelogValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[17] + mi := &file_VISSv3_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1320,7 +1309,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) String() func (*FilterExpressions_FilterExpression_FilterValue_CurvelogValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[17] + mi := &file_VISSv3_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1333,7 +1322,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) ProtoRefl // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_CurvelogValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_CurvelogValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 4} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0, 4} } func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) GetMaxErr() string { @@ -1361,7 +1350,7 @@ type FilterExpressions_FilterExpression_FilterValue_HistoryValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_HistoryValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[18] + mi := &file_VISSv3_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1374,7 +1363,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) String() s func (*FilterExpressions_FilterExpression_FilterValue_HistoryValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[18] + mi := &file_VISSv3_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1387,7 +1376,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) ProtoRefle // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_HistoryValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_HistoryValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 5} + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0, 5} } func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) GetTimePeriod() string { @@ -1397,7 +1386,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) GetTimePer return "" } -type FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue struct { +type FilterExpressions_FilterExpression_FilterValue_MetadataValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1405,23 +1394,23 @@ type FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue struct { Tree string `protobuf:"bytes,1,opt,name=Tree,proto3" json:"Tree,omitempty"` } -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) Reset() { - *x = FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue{} +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) Reset() { + *x = FilterExpressions_FilterExpression_FilterValue_MetadataValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[19] + mi := &file_VISSv3_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) String() string { +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) ProtoMessage() {} +func (*FilterExpressions_FilterExpression_FilterValue_MetadataValue) ProtoMessage() {} -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[19] +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) ProtoReflect() protoreflect.Message { + mi := &file_VISSv3_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1432,65 +1421,18 @@ func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) Pro return mi.MessageOf(x) } -// Deprecated: Use FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue.ProtoReflect.Descriptor instead. -func (*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 6} +// Deprecated: Use FilterExpressions_FilterExpression_FilterValue_MetadataValue.ProtoReflect.Descriptor instead. +func (*FilterExpressions_FilterExpression_FilterValue_MetadataValue) Descriptor() ([]byte, []int) { + return file_VISSv3_proto_rawDescGZIP(), []int{1, 0, 0, 6} } -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) GetTree() string { +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) GetTree() string { if x != nil { return x.Tree } return "" } -type FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MetadataDomain string `protobuf:"bytes,1,opt,name=MetadataDomain,proto3" json:"MetadataDomain,omitempty"` -} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) Reset() { - *x = FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue{} - if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) ProtoMessage() {} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue.ProtoReflect.Descriptor instead. -func (*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{1, 0, 0, 7} -} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) GetMetadataDomain() string { - if x != nil { - return x.MetadataDomain - } - return "" -} - type DataPackages_DataPackage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1504,7 +1446,7 @@ type DataPackages_DataPackage struct { func (x *DataPackages_DataPackage) Reset() { *x = DataPackages_DataPackage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[21] + mi := &file_VISSv3_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1517,7 +1459,7 @@ func (x *DataPackages_DataPackage) String() string { func (*DataPackages_DataPackage) ProtoMessage() {} func (x *DataPackages_DataPackage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[21] + mi := &file_VISSv3_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1530,7 +1472,7 @@ func (x *DataPackages_DataPackage) ProtoReflect() protoreflect.Message { // Deprecated: Use DataPackages_DataPackage.ProtoReflect.Descriptor instead. func (*DataPackages_DataPackage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{2, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{2, 0} } func (x *DataPackages_DataPackage) GetPath() string { @@ -1567,7 +1509,7 @@ type DataPackages_DataPackage_DataPoint struct { func (x *DataPackages_DataPackage_DataPoint) Reset() { *x = DataPackages_DataPackage_DataPoint{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[22] + mi := &file_VISSv3_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1580,7 +1522,7 @@ func (x *DataPackages_DataPackage_DataPoint) String() string { func (*DataPackages_DataPackage_DataPoint) ProtoMessage() {} func (x *DataPackages_DataPackage_DataPoint) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[22] + mi := &file_VISSv3_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1593,7 +1535,7 @@ func (x *DataPackages_DataPackage_DataPoint) ProtoReflect() protoreflect.Message // Deprecated: Use DataPackages_DataPackage_DataPoint.ProtoReflect.Descriptor instead. func (*DataPackages_DataPackage_DataPoint) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{2, 0, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{2, 0, 0} } func (x *DataPackages_DataPackage_DataPoint) GetValue() string { @@ -1623,13 +1565,13 @@ type GetResponseMessage_SuccessResponseMessage struct { unknownFields protoimpl.UnknownFields DataPack *DataPackages `protobuf:"bytes,1,opt,name=DataPack,proto3,oneof" json:"DataPack,omitempty"` - Metadata *string `protobuf:"bytes,2,opt,name=Metadata,proto3,oneof" json:"Metadata,omitempty"` // replaces DataPack in static metadata and one dynamic metadata variant + Metadata *string `protobuf:"bytes,2,opt,name=Metadata,proto3,oneof" json:"Metadata,omitempty"` // replaces DataPack in metadata variant } func (x *GetResponseMessage_SuccessResponseMessage) Reset() { *x = GetResponseMessage_SuccessResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[23] + mi := &file_VISSv3_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1642,7 +1584,7 @@ func (x *GetResponseMessage_SuccessResponseMessage) String() string { func (*GetResponseMessage_SuccessResponseMessage) ProtoMessage() {} func (x *GetResponseMessage_SuccessResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[23] + mi := &file_VISSv3_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1655,7 +1597,7 @@ func (x *GetResponseMessage_SuccessResponseMessage) ProtoReflect() protoreflect. // Deprecated: Use GetResponseMessage_SuccessResponseMessage.ProtoReflect.Descriptor instead. func (*GetResponseMessage_SuccessResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{4, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{4, 0} } func (x *GetResponseMessage_SuccessResponseMessage) GetDataPack() *DataPackages { @@ -1687,7 +1629,7 @@ type SubscribeStreamMessage_SubscribeResponseMessage struct { func (x *SubscribeStreamMessage_SubscribeResponseMessage) Reset() { *x = SubscribeStreamMessage_SubscribeResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[24] + mi := &file_VISSv3_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1700,7 +1642,7 @@ func (x *SubscribeStreamMessage_SubscribeResponseMessage) String() string { func (*SubscribeStreamMessage_SubscribeResponseMessage) ProtoMessage() {} func (x *SubscribeStreamMessage_SubscribeResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[24] + mi := &file_VISSv3_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1713,7 +1655,7 @@ func (x *SubscribeStreamMessage_SubscribeResponseMessage) ProtoReflect() protore // Deprecated: Use SubscribeStreamMessage_SubscribeResponseMessage.ProtoReflect.Descriptor instead. func (*SubscribeStreamMessage_SubscribeResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{8, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{8, 0} } func (x *SubscribeStreamMessage_SubscribeResponseMessage) GetErrorResponse() *ErrorResponseMessage { @@ -1766,7 +1708,7 @@ type SubscribeStreamMessage_SubscribeEventMessage struct { func (x *SubscribeStreamMessage_SubscribeEventMessage) Reset() { *x = SubscribeStreamMessage_SubscribeEventMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[25] + mi := &file_VISSv3_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1779,7 +1721,7 @@ func (x *SubscribeStreamMessage_SubscribeEventMessage) String() string { func (*SubscribeStreamMessage_SubscribeEventMessage) ProtoMessage() {} func (x *SubscribeStreamMessage_SubscribeEventMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[25] + mi := &file_VISSv3_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1792,7 +1734,7 @@ func (x *SubscribeStreamMessage_SubscribeEventMessage) ProtoReflect() protorefle // Deprecated: Use SubscribeStreamMessage_SubscribeEventMessage.ProtoReflect.Descriptor instead. func (*SubscribeStreamMessage_SubscribeEventMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{8, 1} + return file_VISSv3_proto_rawDescGZIP(), []int{8, 1} } func (x *SubscribeStreamMessage_SubscribeEventMessage) GetSubscriptionId() string { @@ -1841,7 +1783,7 @@ type SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage struct func (x *SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) Reset() { *x = SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2_proto_msgTypes[26] + mi := &file_VISSv3_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1854,7 +1796,7 @@ func (x *SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) St func (*SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) ProtoMessage() {} func (x *SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2_proto_msgTypes[26] + mi := &file_VISSv3_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1867,7 +1809,7 @@ func (x *SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) Pr // Deprecated: Use SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage.ProtoReflect.Descriptor instead. func (*SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2_proto_rawDescGZIP(), []int{8, 1, 0} + return file_VISSv3_proto_rawDescGZIP(), []int{8, 1, 0} } func (x *SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) GetDataPack() *DataPackages { @@ -1877,10 +1819,10 @@ func (x *SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage) Ge return nil } -var File_VISSv2_proto protoreflect.FileDescriptor +var File_VISSv3_proto protoreflect.FileDescriptor -var file_VISSv2_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x56, 0x49, 0x53, 0x53, 0x76, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, +var file_VISSv3_proto_rawDesc = []byte{ + 0x0a, 0x0c, 0x56, 0x49, 0x53, 0x53, 0x76, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x14, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, @@ -1890,14 +1832,14 @@ var file_VISSv2_proto_rawDesc = []byte{ 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xab, 0x10, 0x0a, 0x11, 0x46, 0x69, 0x6c, + 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x80, 0x0e, 0x0a, 0x11, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x1a, 0xbd, 0x0f, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x1a, 0x92, 0x0d, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x05, 0x46, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, @@ -1910,7 +1852,7 @@ var file_VISSv2_proto_rawDesc = []byte{ 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x1a, 0xeb, 0x0c, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0xde, 0x0a, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x74, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, @@ -1957,342 +1899,323 @@ var file_VISSv2_proto_rawDesc = []byte{ 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x04, 0x52, 0x0c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x8f, 0x01, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, - 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x05, 0x52, 0x13, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, - 0x01, 0x01, 0x12, 0x92, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x59, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x06, 0x52, 0x14, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x0a, 0x50, 0x61, 0x74, 0x68, 0x73, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x28, 0x0a, 0x0e, 0x54, 0x69, 0x6d, - 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x1a, 0x4e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x72, 0x79, 0x1a, 0x47, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x69, 0x66, 0x66, 0x1a, 0x41, 0x0a, 0x0d, - 0x43, 0x75, 0x72, 0x76, 0x65, 0x6c, 0x6f, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x4d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4d, - 0x61, 0x78, 0x45, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x75, 0x66, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x75, 0x66, 0x53, 0x69, 0x7a, 0x65, 0x1a, - 0x2e, 0x0a, 0x0c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, - 0x29, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x72, 0x65, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x72, 0x65, 0x65, 0x1a, 0x3e, 0x0a, 0x14, 0x44, 0x79, - 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x75, 0x72, 0x76, 0x65, 0x6c, 0x6f, 0x67, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x83, 0x01, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x09, 0x0a, 0x05, 0x50, 0x41, 0x54, 0x48, 0x53, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, - 0x4d, 0x45, 0x42, 0x41, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, - 0x47, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x03, - 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x55, 0x52, 0x56, 0x45, 0x4c, 0x4f, 0x47, 0x10, 0x04, 0x12, 0x0b, - 0x0a, 0x07, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x06, - 0x12, 0x14, 0x0a, 0x10, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x44, 0x41, 0x54, 0x41, 0x10, 0x07, 0x22, 0xd1, 0x02, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xfc, 0x01, 0x0a, 0x0b, - 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x50, - 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x50, 0x61, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x68, 0x43, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x50, 0x61, 0x74, 0x68, 0x43, 0x88, 0x01, 0x01, 0x12, - 0x48, 0x0a, 0x02, 0x44, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x72, - 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x02, 0x44, 0x70, 0x1a, 0x5c, 0x0a, 0x09, 0x44, 0x61, 0x74, - 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x13, 0x0a, 0x02, - 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x50, 0x61, 0x74, 0x68, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x50, 0x61, 0x74, 0x68, 0x43, 0x22, 0xe6, 0x01, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, - 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x49, 0x64, 0x22, 0x83, 0x05, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x70, + 0x12, 0x7d, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x05, 0x52, 0x0d, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x1a, + 0x30, 0x0a, 0x0a, 0x50, 0x61, 0x74, 0x68, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x1a, 0x28, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0x4e, 0x0a, 0x0a, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, + 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x1a, 0x47, 0x0a, 0x0b, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, + 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x44, 0x69, 0x66, 0x66, 0x1a, 0x41, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x76, 0x65, 0x6c, 0x6f, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x42, 0x75, 0x66, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x42, 0x75, 0x66, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x2e, 0x0a, 0x0c, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x54, 0x69, 0x6d, + 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0x23, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x72, 0x65, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x72, 0x65, 0x65, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x75, 0x72, 0x76, 0x65, 0x6c, 0x6f, 0x67, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x54, 0x48, 0x53, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x54, 0x49, 0x4d, 0x45, 0x42, 0x41, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, + 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, + 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x55, 0x52, 0x56, 0x45, 0x4c, 0x4f, 0x47, 0x10, 0x04, + 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x05, 0x12, 0x0c, 0x0a, + 0x08, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x06, 0x22, 0xd1, 0x02, 0x0a, 0x0c, + 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6e, 0x0a, 0x0f, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, - 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x1a, 0xfc, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x12, 0x17, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x50, 0x61, 0x74, + 0x68, 0x43, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x50, 0x61, 0x74, 0x68, + 0x43, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x02, 0x44, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x02, 0x44, 0x70, 0x1a, 0x5c, + 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x13, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, + 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x50, 0x61, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x50, 0x61, 0x74, 0x68, 0x43, 0x22, + 0xe6, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x83, 0x05, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x3c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6e, 0x0a, + 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, + 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x48, 0x01, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x54, 0x73, 0x43, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x03, 0x54, 0x73, 0x43, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0d, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x98, + 0x01, 0x0a, 0x16, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x44, 0x61, 0x74, + 0x61, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x48, + 0x00, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1f, + 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x05, 0x0a, + 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xab, + 0x01, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x98, 0x01, 0x0a, 0x16, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x44, 0x61, - 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x44, - 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x11, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xb9, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xb9, 0x02, 0x0a, + 0x12, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, 0x54, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x48, 0x00, 0x52, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x09, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x41, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x55, 0x0a, 0x0d, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, - 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, - 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x49, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x87, 0x09, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x4d, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x72, 0x70, 0x63, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x66, 0x0a, 0x08, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x66, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x1a, 0xae, 0x02, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, - 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0xdc, 0x03, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x59, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x54, 0x73, 0x43, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x03, 0x54, 0x73, 0x43, - 0x88, 0x01, 0x01, 0x1a, 0x58, 0x0a, 0x16, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, - 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x54, - 0x73, 0x43, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x19, 0x55, 0x6e, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, - 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, - 0xac, 0x02, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, + 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x08, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x05, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0xae, 0x02, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x0e, - 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x2a, 0x28, - 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x2a, 0x30, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x32, 0xb6, 0x03, 0x0a, 0x06, 0x56, - 0x49, 0x53, 0x53, 0x76, 0x32, 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x28, 0x2e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xdc, 0x03, 0x0a, 0x15, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x59, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x00, 0x52, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x28, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x71, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x72, - 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x2c, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x01, 0x12, 0x77, 0x0a, 0x12, 0x55, 0x6e, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x1a, 0x30, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, + 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, + 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x1a, 0x58, 0x0a, 0x16, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, + 0x63, 0x6b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x74, + 0x0a, 0x19, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x22, 0xac, 0x02, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x42, 0x04, 0x5a, 0x02, 0x2e, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x55, 0x0a, 0x0d, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x54, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x2a, 0x28, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x2a, 0x30, 0x0a, + 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, + 0x53, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x32, + 0xb6, 0x03, 0x0a, 0x06, 0x56, 0x49, 0x53, 0x53, 0x76, 0x32, 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x1a, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x0a, 0x53, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x1a, 0x28, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x71, 0x0a, 0x10, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, + 0x2c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x01, 0x12, + 0x77, 0x0a, 0x12, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x30, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x04, 0x5a, 0x02, 0x2e, 0x2f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_VISSv2_proto_rawDescOnce sync.Once - file_VISSv2_proto_rawDescData = file_VISSv2_proto_rawDesc + file_VISSv3_proto_rawDescOnce sync.Once + file_VISSv3_proto_rawDescData = file_VISSv3_proto_rawDesc ) -func file_VISSv2_proto_rawDescGZIP() []byte { - file_VISSv2_proto_rawDescOnce.Do(func() { - file_VISSv2_proto_rawDescData = protoimpl.X.CompressGZIP(file_VISSv2_proto_rawDescData) +func file_VISSv3_proto_rawDescGZIP() []byte { + file_VISSv3_proto_rawDescOnce.Do(func() { + file_VISSv3_proto_rawDescData = protoimpl.X.CompressGZIP(file_VISSv3_proto_rawDescData) }) - return file_VISSv2_proto_rawDescData + return file_VISSv3_proto_rawDescData } -var file_VISSv2_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_VISSv2_proto_msgTypes = make([]protoimpl.MessageInfo, 27) -var file_VISSv2_proto_goTypes = []interface{}{ +var file_VISSv3_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_VISSv3_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_VISSv3_proto_goTypes = []interface{}{ (ResponseStatus)(0), // 0: grpcProtobufMessages.ResponseStatus (SubscribeResponseType)(0), // 1: grpcProtobufMessages.SubscribeResponseType (FilterExpressions_FilterExpression_FilterType)(0), // 2: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterType @@ -2315,29 +2238,28 @@ var file_VISSv2_proto_goTypes = []interface{}{ (*FilterExpressions_FilterExpression_FilterValue_ChangeValue)(nil), // 19: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ChangeValue (*FilterExpressions_FilterExpression_FilterValue_CurvelogValue)(nil), // 20: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.CurvelogValue (*FilterExpressions_FilterExpression_FilterValue_HistoryValue)(nil), // 21: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.HistoryValue - (*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue)(nil), // 22: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.StaticMetadataValue - (*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue)(nil), // 23: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.DynamicMetadataValue - (*DataPackages_DataPackage)(nil), // 24: grpcProtobufMessages.DataPackages.DataPackage - (*DataPackages_DataPackage_DataPoint)(nil), // 25: grpcProtobufMessages.DataPackages.DataPackage.DataPoint - (*GetResponseMessage_SuccessResponseMessage)(nil), // 26: grpcProtobufMessages.GetResponseMessage.SuccessResponseMessage - (*SubscribeStreamMessage_SubscribeResponseMessage)(nil), // 27: grpcProtobufMessages.SubscribeStreamMessage.SubscribeResponseMessage - (*SubscribeStreamMessage_SubscribeEventMessage)(nil), // 28: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage - (*SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage)(nil), // 29: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponseMessage -} -var file_VISSv2_proto_depIdxs = []int32{ + (*FilterExpressions_FilterExpression_FilterValue_MetadataValue)(nil), // 22: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.MetadataValue + (*DataPackages_DataPackage)(nil), // 23: grpcProtobufMessages.DataPackages.DataPackage + (*DataPackages_DataPackage_DataPoint)(nil), // 24: grpcProtobufMessages.DataPackages.DataPackage.DataPoint + (*GetResponseMessage_SuccessResponseMessage)(nil), // 25: grpcProtobufMessages.GetResponseMessage.SuccessResponseMessage + (*SubscribeStreamMessage_SubscribeResponseMessage)(nil), // 26: grpcProtobufMessages.SubscribeStreamMessage.SubscribeResponseMessage + (*SubscribeStreamMessage_SubscribeEventMessage)(nil), // 27: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage + (*SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage)(nil), // 28: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponseMessage +} +var file_VISSv3_proto_depIdxs = []int32{ 14, // 0: grpcProtobufMessages.FilterExpressions.FilterExp:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression - 24, // 1: grpcProtobufMessages.DataPackages.Data:type_name -> grpcProtobufMessages.DataPackages.DataPackage + 23, // 1: grpcProtobufMessages.DataPackages.Data:type_name -> grpcProtobufMessages.DataPackages.DataPackage 4, // 2: grpcProtobufMessages.GetRequestMessage.Filter:type_name -> grpcProtobufMessages.FilterExpressions 0, // 3: grpcProtobufMessages.GetResponseMessage.Status:type_name -> grpcProtobufMessages.ResponseStatus - 26, // 4: grpcProtobufMessages.GetResponseMessage.SuccessResponse:type_name -> grpcProtobufMessages.GetResponseMessage.SuccessResponseMessage + 25, // 4: grpcProtobufMessages.GetResponseMessage.SuccessResponse:type_name -> grpcProtobufMessages.GetResponseMessage.SuccessResponseMessage 3, // 5: grpcProtobufMessages.GetResponseMessage.ErrorResponse:type_name -> grpcProtobufMessages.ErrorResponseMessage 0, // 6: grpcProtobufMessages.SetResponseMessage.Status:type_name -> grpcProtobufMessages.ResponseStatus 3, // 7: grpcProtobufMessages.SetResponseMessage.ErrorResponse:type_name -> grpcProtobufMessages.ErrorResponseMessage 4, // 8: grpcProtobufMessages.SubscribeRequestMessage.Filter:type_name -> grpcProtobufMessages.FilterExpressions 1, // 9: grpcProtobufMessages.SubscribeStreamMessage.MType:type_name -> grpcProtobufMessages.SubscribeResponseType 0, // 10: grpcProtobufMessages.SubscribeStreamMessage.Status:type_name -> grpcProtobufMessages.ResponseStatus - 27, // 11: grpcProtobufMessages.SubscribeStreamMessage.Response:type_name -> grpcProtobufMessages.SubscribeStreamMessage.SubscribeResponseMessage - 28, // 12: grpcProtobufMessages.SubscribeStreamMessage.Event:type_name -> grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage + 26, // 11: grpcProtobufMessages.SubscribeStreamMessage.Response:type_name -> grpcProtobufMessages.SubscribeStreamMessage.SubscribeResponseMessage + 27, // 12: grpcProtobufMessages.SubscribeStreamMessage.Event:type_name -> grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage 0, // 13: grpcProtobufMessages.UnsubscribeResponseMessage.Status:type_name -> grpcProtobufMessages.ResponseStatus 3, // 14: grpcProtobufMessages.UnsubscribeResponseMessage.ErrorResponse:type_name -> grpcProtobufMessages.ErrorResponseMessage 2, // 15: grpcProtobufMessages.FilterExpressions.FilterExpression.FType:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression.FilterType @@ -2348,36 +2270,35 @@ var file_VISSv2_proto_depIdxs = []int32{ 19, // 20: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueChange:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ChangeValue 20, // 21: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueCurvelog:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.CurvelogValue 21, // 22: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueHistory:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.HistoryValue - 22, // 23: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueStaticMetadata:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.StaticMetadataValue - 23, // 24: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueDynamicMetadata:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.DynamicMetadataValue - 25, // 25: grpcProtobufMessages.DataPackages.DataPackage.Dp:type_name -> grpcProtobufMessages.DataPackages.DataPackage.DataPoint - 5, // 26: grpcProtobufMessages.GetResponseMessage.SuccessResponseMessage.DataPack:type_name -> grpcProtobufMessages.DataPackages - 3, // 27: grpcProtobufMessages.SubscribeStreamMessage.SubscribeResponseMessage.ErrorResponse:type_name -> grpcProtobufMessages.ErrorResponseMessage - 29, // 28: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponse:type_name -> grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponseMessage - 3, // 29: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.ErrorResponse:type_name -> grpcProtobufMessages.ErrorResponseMessage - 5, // 30: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponseMessage.DataPack:type_name -> grpcProtobufMessages.DataPackages - 6, // 31: grpcProtobufMessages.VISSv2.GetRequest:input_type -> grpcProtobufMessages.GetRequestMessage - 8, // 32: grpcProtobufMessages.VISSv2.SetRequest:input_type -> grpcProtobufMessages.SetRequestMessage - 10, // 33: grpcProtobufMessages.VISSv2.SubscribeRequest:input_type -> grpcProtobufMessages.SubscribeRequestMessage - 12, // 34: grpcProtobufMessages.VISSv2.UnsubscribeRequest:input_type -> grpcProtobufMessages.UnsubscribeRequestMessage - 7, // 35: grpcProtobufMessages.VISSv2.GetRequest:output_type -> grpcProtobufMessages.GetResponseMessage - 9, // 36: grpcProtobufMessages.VISSv2.SetRequest:output_type -> grpcProtobufMessages.SetResponseMessage - 11, // 37: grpcProtobufMessages.VISSv2.SubscribeRequest:output_type -> grpcProtobufMessages.SubscribeStreamMessage - 13, // 38: grpcProtobufMessages.VISSv2.UnsubscribeRequest:output_type -> grpcProtobufMessages.UnsubscribeResponseMessage - 35, // [35:39] is the sub-list for method output_type - 31, // [31:35] is the sub-list for method input_type - 31, // [31:31] is the sub-list for extension type_name - 31, // [31:31] is the sub-list for extension extendee - 0, // [0:31] is the sub-list for field type_name -} - -func init() { file_VISSv2_proto_init() } -func file_VISSv2_proto_init() { - if File_VISSv2_proto != nil { + 22, // 23: grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueMetadata:type_name -> grpcProtobufMessages.FilterExpressions.FilterExpression.FilterValue.MetadataValue + 24, // 24: grpcProtobufMessages.DataPackages.DataPackage.Dp:type_name -> grpcProtobufMessages.DataPackages.DataPackage.DataPoint + 5, // 25: grpcProtobufMessages.GetResponseMessage.SuccessResponseMessage.DataPack:type_name -> grpcProtobufMessages.DataPackages + 3, // 26: grpcProtobufMessages.SubscribeStreamMessage.SubscribeResponseMessage.ErrorResponse:type_name -> grpcProtobufMessages.ErrorResponseMessage + 28, // 27: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponse:type_name -> grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponseMessage + 3, // 28: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.ErrorResponse:type_name -> grpcProtobufMessages.ErrorResponseMessage + 5, // 29: grpcProtobufMessages.SubscribeStreamMessage.SubscribeEventMessage.SuccessResponseMessage.DataPack:type_name -> grpcProtobufMessages.DataPackages + 6, // 30: grpcProtobufMessages.VISSv2.GetRequest:input_type -> grpcProtobufMessages.GetRequestMessage + 8, // 31: grpcProtobufMessages.VISSv2.SetRequest:input_type -> grpcProtobufMessages.SetRequestMessage + 10, // 32: grpcProtobufMessages.VISSv2.SubscribeRequest:input_type -> grpcProtobufMessages.SubscribeRequestMessage + 12, // 33: grpcProtobufMessages.VISSv2.UnsubscribeRequest:input_type -> grpcProtobufMessages.UnsubscribeRequestMessage + 7, // 34: grpcProtobufMessages.VISSv2.GetRequest:output_type -> grpcProtobufMessages.GetResponseMessage + 9, // 35: grpcProtobufMessages.VISSv2.SetRequest:output_type -> grpcProtobufMessages.SetResponseMessage + 11, // 36: grpcProtobufMessages.VISSv2.SubscribeRequest:output_type -> grpcProtobufMessages.SubscribeStreamMessage + 13, // 37: grpcProtobufMessages.VISSv2.UnsubscribeRequest:output_type -> grpcProtobufMessages.UnsubscribeResponseMessage + 34, // [34:38] is the sub-list for method output_type + 30, // [30:34] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name +} + +func init() { file_VISSv3_proto_init() } +func file_VISSv3_proto_init() { + if File_VISSv3_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_VISSv2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErrorResponseMessage); i { case 0: return &v.state @@ -2389,7 +2310,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions); i { case 0: return &v.state @@ -2401,7 +2322,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataPackages); i { case 0: return &v.state @@ -2413,7 +2334,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRequestMessage); i { case 0: return &v.state @@ -2425,7 +2346,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetResponseMessage); i { case 0: return &v.state @@ -2437,7 +2358,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetRequestMessage); i { case 0: return &v.state @@ -2449,7 +2370,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetResponseMessage); i { case 0: return &v.state @@ -2461,7 +2382,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeRequestMessage); i { case 0: return &v.state @@ -2473,7 +2394,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeStreamMessage); i { case 0: return &v.state @@ -2485,7 +2406,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnsubscribeRequestMessage); i { case 0: return &v.state @@ -2497,7 +2418,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnsubscribeResponseMessage); i { case 0: return &v.state @@ -2509,7 +2430,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression); i { case 0: return &v.state @@ -2521,7 +2442,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue); i { case 0: return &v.state @@ -2533,7 +2454,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_PathsValue); i { case 0: return &v.state @@ -2545,7 +2466,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_TimebasedValue); i { case 0: return &v.state @@ -2557,7 +2478,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_RangeValue); i { case 0: return &v.state @@ -2569,7 +2490,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_ChangeValue); i { case 0: return &v.state @@ -2581,7 +2502,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_CurvelogValue); i { case 0: return &v.state @@ -2593,7 +2514,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_HistoryValue); i { case 0: return &v.state @@ -2605,20 +2526,8 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_VISSv2_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue); i { + file_VISSv3_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FilterExpressions_FilterExpression_FilterValue_MetadataValue); i { case 0: return &v.state case 1: @@ -2629,7 +2538,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataPackages_DataPackage); i { case 0: return &v.state @@ -2641,7 +2550,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataPackages_DataPackage_DataPoint); i { case 0: return &v.state @@ -2653,7 +2562,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetResponseMessage_SuccessResponseMessage); i { case 0: return &v.state @@ -2665,7 +2574,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeStreamMessage_SubscribeResponseMessage); i { case 0: return &v.state @@ -2677,7 +2586,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeStreamMessage_SubscribeEventMessage); i { case 0: return &v.state @@ -2689,7 +2598,7 @@ func file_VISSv2_proto_init() { return nil } } - file_VISSv2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeStreamMessage_SubscribeEventMessage_SuccessResponseMessage); i { case 0: return &v.state @@ -2702,38 +2611,38 @@ func file_VISSv2_proto_init() { } } } - file_VISSv2_proto_msgTypes[0].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[3].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[4].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[5].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[6].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[7].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[8].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[9].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[10].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[12].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[21].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[22].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[23].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[24].OneofWrappers = []interface{}{} - file_VISSv2_proto_msgTypes[25].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_VISSv3_proto_msgTypes[24].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_VISSv2_proto_rawDesc, + RawDescriptor: file_VISSv3_proto_rawDesc, NumEnums: 3, - NumMessages: 27, + NumMessages: 26, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_VISSv2_proto_goTypes, - DependencyIndexes: file_VISSv2_proto_depIdxs, - EnumInfos: file_VISSv2_proto_enumTypes, - MessageInfos: file_VISSv2_proto_msgTypes, + GoTypes: file_VISSv3_proto_goTypes, + DependencyIndexes: file_VISSv3_proto_depIdxs, + EnumInfos: file_VISSv3_proto_enumTypes, + MessageInfos: file_VISSv3_proto_msgTypes, }.Build() - File_VISSv2_proto = out.File - file_VISSv2_proto_rawDesc = nil - file_VISSv2_proto_goTypes = nil - file_VISSv2_proto_depIdxs = nil + File_VISSv3_proto = out.File + file_VISSv3_proto_rawDesc = nil + file_VISSv3_proto_goTypes = nil + file_VISSv3_proto_depIdxs = nil } diff --git a/grpc_pb/VISSv2.proto b/grpc_pb/VISSv3.proto similarity index 93% rename from grpc_pb/VISSv2.proto rename to grpc_pb/VISSv3.proto index e50b806a..72d1ad86 100644 --- a/grpc_pb/VISSv2.proto +++ b/grpc_pb/VISSv3.proto @@ -48,8 +48,7 @@ message FilterExpressions { CHANGE = 3; CURVELOG = 4; HISTORY = 5; - STATIC_METADATA = 6; - DYNAMIC_METADATA = 7; + METADATA = 6; } FilterType FType = 1; @@ -87,15 +86,10 @@ message FilterExpressions { } optional HistoryValue ValueHistory = 6; - message StaticMetadataValue { + message MetadataValue { string Tree = 1; } - optional StaticMetadataValue ValueStaticMetadata = 7; - - message DynamicMetadataValue { - string MetadataDomain = 1; - } - optional DynamicMetadataValue ValueDynamicMetadata = 8; + optional MetadataValue ValueMetadata = 7; } FilterValue Value = 2; } @@ -128,7 +122,7 @@ message GetResponseMessage { ResponseStatus Status = 1; message SuccessResponseMessage { optional DataPackages DataPack = 1; - optional string Metadata = 2; // replaces DataPack in static metadata and one dynamic metadata variant + optional string Metadata = 2; // replaces DataPack in metadata variant } optional SuccessResponseMessage SuccessResponse = 2; optional ErrorResponseMessage ErrorResponse = 3; diff --git a/grpc_pb/VISSv2_grpc.pb.go b/grpc_pb/VISSv3_grpc.pb.go similarity index 99% rename from grpc_pb/VISSv2_grpc.pb.go rename to grpc_pb/VISSv3_grpc.pb.go index d4aacf72..6a17f3bb 100644 --- a/grpc_pb/VISSv2_grpc.pb.go +++ b/grpc_pb/VISSv3_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc v3.15.8 -// source: VISSv2.proto +// source: VISSv3.proto package __ @@ -237,5 +237,5 @@ var VISSv2_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "VISSv2.proto", + Metadata: "VISSv3.proto", } diff --git a/protobuf/README.md b/protobuf/README.md index 0e1d414c..ed5e624b 100644 --- a/protobuf/README.md +++ b/protobuf/README.md @@ -1,12 +1,13 @@ +**(C) 2024 Foed Motor Cmpany**
**(C) 2022 Geotab Inc**
# Protobuf implementation of the VISSv2 payload messages -The VISSv2messages.proto file contains a definition that encompasses all payload messages that the VISSv2 standard defines for the Websocket, and MQTT protocols. For HTTP the requests carry most parts of this not as a payload but explicitly in the protocol, so this design may need some tweaks for supporting HTTP. At a minimum the code that transforms between JSON and protobuf would need modifications.
+The VISSv3messages.proto file contains a definition that encompasses all payload messages that the VISSv3 standard defines for the Websocket, and MQTT protocols. For HTTP the requests carry most parts of this not as a payload but explicitly in the protocol, so this design may need some tweaks for supporting HTTP. At a minimum the code that transforms between JSON and protobuf would need modifications.
-The VISSv2messages.proto file is used as input to the protoc tool. To generate a Golang output file, the following command can be used:
-$ protoc --go_out=protoc-out VISSv2messages.proto
-which creates the VISSv2messages.pb.go file in the protoc-out directory.
+The VISSv3messages.proto file is used as input to the protoc tool. To generate a Golang output file, the following command can be used:
+$ protoc --go_out=protoc-out VISSv3messages.proto
+which creates the VISSv3messages.pb.go file in the protoc-out directory.
The different type of messages that serialised protobuf blob supports are the following:
diff --git a/protobuf/VISSv2messages.proto b/protobuf/VISSv3messages.proto similarity index 93% rename from protobuf/VISSv2messages.proto rename to protobuf/VISSv3messages.proto index 453c977b..15e0bd5b 100644 --- a/protobuf/VISSv2messages.proto +++ b/protobuf/VISSv3messages.proto @@ -37,8 +37,7 @@ message FilterExpressions { CHANGE = 3; CURVELOG = 4; HISTORY = 5; - STATIC_METADATA = 6; - DYNAMIC_METADATA = 7; + METADATA = 6; } FilterType FType = 1; @@ -76,15 +75,10 @@ message FilterExpressions { } optional HistoryValue ValueHistory = 6; - message StaticMetadataValue { + message MetadataValue { string Tree = 1; } - optional StaticMetadataValue ValueStaticMetadata = 7; - - message DynamicMetadataValue { - string MetadataDomain = 1; - } - optional DynamicMetadataValue ValueDynamicMetadata = 8; + optional MetadataValue ValueMetadata = 7; } FilterValue Value = 2; } @@ -121,7 +115,7 @@ message GetMessage { ResponseStatus Status = 1; message SuccessResponseMessage { optional DataPackages DataPack = 1; - optional string Metadata = 2; // replaces DataPack in static metadata and one dynamic metadata variant + optional string Metadata = 2; // replaces DataPack in metadata variant } optional SuccessResponseMessage SuccessResponse = 2; optional ErrorResponseMessage ErrorResponse = 3; diff --git a/protobuf/protoc-out/VISSv2messages.pb.go b/protobuf/protoc-out/VISSv3messages.pb.go similarity index 62% rename from protobuf/protoc-out/VISSv2messages.pb.go rename to protobuf/protoc-out/VISSv3messages.pb.go index 337be0ea..5df16031 100644 --- a/protobuf/protoc-out/VISSv2messages.pb.go +++ b/protobuf/protoc-out/VISSv3messages.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.19.1 -// source: VISSv2messages.proto +// protoc-gen-go v1.31.0 +// protoc v3.15.8 +// source: VISSv3messages.proto package __ @@ -56,11 +56,11 @@ func (x MessageMethod) String() string { } func (MessageMethod) Descriptor() protoreflect.EnumDescriptor { - return file_VISSv2messages_proto_enumTypes[0].Descriptor() + return file_VISSv3messages_proto_enumTypes[0].Descriptor() } func (MessageMethod) Type() protoreflect.EnumType { - return &file_VISSv2messages_proto_enumTypes[0] + return &file_VISSv3messages_proto_enumTypes[0] } func (x MessageMethod) Number() protoreflect.EnumNumber { @@ -69,7 +69,7 @@ func (x MessageMethod) Number() protoreflect.EnumNumber { // Deprecated: Use MessageMethod.Descriptor instead. func (MessageMethod) EnumDescriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{0} } type MessageType int32 @@ -105,11 +105,11 @@ func (x MessageType) String() string { } func (MessageType) Descriptor() protoreflect.EnumDescriptor { - return file_VISSv2messages_proto_enumTypes[1].Descriptor() + return file_VISSv3messages_proto_enumTypes[1].Descriptor() } func (MessageType) Type() protoreflect.EnumType { - return &file_VISSv2messages_proto_enumTypes[1] + return &file_VISSv3messages_proto_enumTypes[1] } func (x MessageType) Number() protoreflect.EnumNumber { @@ -118,7 +118,7 @@ func (x MessageType) Number() protoreflect.EnumNumber { // Deprecated: Use MessageType.Descriptor instead. func (MessageType) EnumDescriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1} } type ResponseStatus int32 @@ -151,11 +151,11 @@ func (x ResponseStatus) String() string { } func (ResponseStatus) Descriptor() protoreflect.EnumDescriptor { - return file_VISSv2messages_proto_enumTypes[2].Descriptor() + return file_VISSv3messages_proto_enumTypes[2].Descriptor() } func (ResponseStatus) Type() protoreflect.EnumType { - return &file_VISSv2messages_proto_enumTypes[2] + return &file_VISSv3messages_proto_enumTypes[2] } func (x ResponseStatus) Number() protoreflect.EnumNumber { @@ -164,20 +164,19 @@ func (x ResponseStatus) Number() protoreflect.EnumNumber { // Deprecated: Use ResponseStatus.Descriptor instead. func (ResponseStatus) EnumDescriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{2} + return file_VISSv3messages_proto_rawDescGZIP(), []int{2} } type FilterExpressions_FilterExpression_FilterType int32 const ( - FilterExpressions_FilterExpression_PATHS FilterExpressions_FilterExpression_FilterType = 0 - FilterExpressions_FilterExpression_TIMEBASED FilterExpressions_FilterExpression_FilterType = 1 - FilterExpressions_FilterExpression_RANGE FilterExpressions_FilterExpression_FilterType = 2 - FilterExpressions_FilterExpression_CHANGE FilterExpressions_FilterExpression_FilterType = 3 - FilterExpressions_FilterExpression_CURVELOG FilterExpressions_FilterExpression_FilterType = 4 - FilterExpressions_FilterExpression_HISTORY FilterExpressions_FilterExpression_FilterType = 5 - FilterExpressions_FilterExpression_STATIC_METADATA FilterExpressions_FilterExpression_FilterType = 6 - FilterExpressions_FilterExpression_DYNAMIC_METADATA FilterExpressions_FilterExpression_FilterType = 7 + FilterExpressions_FilterExpression_PATHS FilterExpressions_FilterExpression_FilterType = 0 + FilterExpressions_FilterExpression_TIMEBASED FilterExpressions_FilterExpression_FilterType = 1 + FilterExpressions_FilterExpression_RANGE FilterExpressions_FilterExpression_FilterType = 2 + FilterExpressions_FilterExpression_CHANGE FilterExpressions_FilterExpression_FilterType = 3 + FilterExpressions_FilterExpression_CURVELOG FilterExpressions_FilterExpression_FilterType = 4 + FilterExpressions_FilterExpression_HISTORY FilterExpressions_FilterExpression_FilterType = 5 + FilterExpressions_FilterExpression_METADATA FilterExpressions_FilterExpression_FilterType = 6 ) // Enum value maps for FilterExpressions_FilterExpression_FilterType. @@ -189,18 +188,16 @@ var ( 3: "CHANGE", 4: "CURVELOG", 5: "HISTORY", - 6: "STATIC_METADATA", - 7: "DYNAMIC_METADATA", + 6: "METADATA", } FilterExpressions_FilterExpression_FilterType_value = map[string]int32{ - "PATHS": 0, - "TIMEBASED": 1, - "RANGE": 2, - "CHANGE": 3, - "CURVELOG": 4, - "HISTORY": 5, - "STATIC_METADATA": 6, - "DYNAMIC_METADATA": 7, + "PATHS": 0, + "TIMEBASED": 1, + "RANGE": 2, + "CHANGE": 3, + "CURVELOG": 4, + "HISTORY": 5, + "METADATA": 6, } ) @@ -215,11 +212,11 @@ func (x FilterExpressions_FilterExpression_FilterType) String() string { } func (FilterExpressions_FilterExpression_FilterType) Descriptor() protoreflect.EnumDescriptor { - return file_VISSv2messages_proto_enumTypes[3].Descriptor() + return file_VISSv3messages_proto_enumTypes[3].Descriptor() } func (FilterExpressions_FilterExpression_FilterType) Type() protoreflect.EnumType { - return &file_VISSv2messages_proto_enumTypes[3] + return &file_VISSv3messages_proto_enumTypes[3] } func (x FilterExpressions_FilterExpression_FilterType) Number() protoreflect.EnumNumber { @@ -228,7 +225,7 @@ func (x FilterExpressions_FilterExpression_FilterType) Number() protoreflect.Enu // Deprecated: Use FilterExpressions_FilterExpression_FilterType.Descriptor instead. func (FilterExpressions_FilterExpression_FilterType) EnumDescriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0} } type ErrorResponseMessage struct { @@ -244,7 +241,7 @@ type ErrorResponseMessage struct { func (x *ErrorResponseMessage) Reset() { *x = ErrorResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[0] + mi := &file_VISSv3messages_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -257,7 +254,7 @@ func (x *ErrorResponseMessage) String() string { func (*ErrorResponseMessage) ProtoMessage() {} func (x *ErrorResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[0] + mi := &file_VISSv3messages_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -270,7 +267,7 @@ func (x *ErrorResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ErrorResponseMessage.ProtoReflect.Descriptor instead. func (*ErrorResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{0} } func (x *ErrorResponseMessage) GetNumber() string { @@ -305,7 +302,7 @@ type FilterExpressions struct { func (x *FilterExpressions) Reset() { *x = FilterExpressions{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[1] + mi := &file_VISSv3messages_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -318,7 +315,7 @@ func (x *FilterExpressions) String() string { func (*FilterExpressions) ProtoMessage() {} func (x *FilterExpressions) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[1] + mi := &file_VISSv3messages_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -331,7 +328,7 @@ func (x *FilterExpressions) ProtoReflect() protoreflect.Message { // Deprecated: Use FilterExpressions.ProtoReflect.Descriptor instead. func (*FilterExpressions) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1} } func (x *FilterExpressions) GetFilterExp() []*FilterExpressions_FilterExpression { @@ -352,7 +349,7 @@ type DataPackages struct { func (x *DataPackages) Reset() { *x = DataPackages{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[2] + mi := &file_VISSv3messages_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -365,7 +362,7 @@ func (x *DataPackages) String() string { func (*DataPackages) ProtoMessage() {} func (x *DataPackages) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[2] + mi := &file_VISSv3messages_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -378,7 +375,7 @@ func (x *DataPackages) ProtoReflect() protoreflect.Message { // Deprecated: Use DataPackages.ProtoReflect.Descriptor instead. func (*DataPackages) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{2} + return file_VISSv3messages_proto_rawDescGZIP(), []int{2} } func (x *DataPackages) GetData() []*DataPackages_DataPackage { @@ -401,7 +398,7 @@ type GetMessage struct { func (x *GetMessage) Reset() { *x = GetMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[3] + mi := &file_VISSv3messages_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -414,7 +411,7 @@ func (x *GetMessage) String() string { func (*GetMessage) ProtoMessage() {} func (x *GetMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[3] + mi := &file_VISSv3messages_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -427,7 +424,7 @@ func (x *GetMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessage.ProtoReflect.Descriptor instead. func (*GetMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{3} + return file_VISSv3messages_proto_rawDescGZIP(), []int{3} } func (x *GetMessage) GetMType() MessageType { @@ -464,7 +461,7 @@ type SetMessage struct { func (x *SetMessage) Reset() { *x = SetMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[4] + mi := &file_VISSv3messages_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -477,7 +474,7 @@ func (x *SetMessage) String() string { func (*SetMessage) ProtoMessage() {} func (x *SetMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[4] + mi := &file_VISSv3messages_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -490,7 +487,7 @@ func (x *SetMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMessage.ProtoReflect.Descriptor instead. func (*SetMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{4} + return file_VISSv3messages_proto_rawDescGZIP(), []int{4} } func (x *SetMessage) GetMType() MessageType { @@ -528,7 +525,7 @@ type SubscribeMessage struct { func (x *SubscribeMessage) Reset() { *x = SubscribeMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[5] + mi := &file_VISSv3messages_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -541,7 +538,7 @@ func (x *SubscribeMessage) String() string { func (*SubscribeMessage) ProtoMessage() {} func (x *SubscribeMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[5] + mi := &file_VISSv3messages_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -554,7 +551,7 @@ func (x *SubscribeMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeMessage.ProtoReflect.Descriptor instead. func (*SubscribeMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{5} + return file_VISSv3messages_proto_rawDescGZIP(), []int{5} } func (x *SubscribeMessage) GetMType() MessageType { @@ -598,7 +595,7 @@ type UnSubscribeMessage struct { func (x *UnSubscribeMessage) Reset() { *x = UnSubscribeMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[6] + mi := &file_VISSv3messages_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -611,7 +608,7 @@ func (x *UnSubscribeMessage) String() string { func (*UnSubscribeMessage) ProtoMessage() {} func (x *UnSubscribeMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[6] + mi := &file_VISSv3messages_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -624,7 +621,7 @@ func (x *UnSubscribeMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use UnSubscribeMessage.ProtoReflect.Descriptor instead. func (*UnSubscribeMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{6} + return file_VISSv3messages_proto_rawDescGZIP(), []int{6} } func (x *UnSubscribeMessage) GetMType() MessageType { @@ -663,7 +660,7 @@ type ProtobufMessage struct { func (x *ProtobufMessage) Reset() { *x = ProtobufMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[7] + mi := &file_VISSv3messages_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -676,7 +673,7 @@ func (x *ProtobufMessage) String() string { func (*ProtobufMessage) ProtoMessage() {} func (x *ProtobufMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[7] + mi := &file_VISSv3messages_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -689,7 +686,7 @@ func (x *ProtobufMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtobufMessage.ProtoReflect.Descriptor instead. func (*ProtobufMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{7} + return file_VISSv3messages_proto_rawDescGZIP(), []int{7} } func (x *ProtobufMessage) GetMethod() MessageMethod { @@ -739,7 +736,7 @@ type FilterExpressions_FilterExpression struct { func (x *FilterExpressions_FilterExpression) Reset() { *x = FilterExpressions_FilterExpression{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[8] + mi := &file_VISSv3messages_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -752,7 +749,7 @@ func (x *FilterExpressions_FilterExpression) String() string { func (*FilterExpressions_FilterExpression) ProtoMessage() {} func (x *FilterExpressions_FilterExpression) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[8] + mi := &file_VISSv3messages_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -765,7 +762,7 @@ func (x *FilterExpressions_FilterExpression) ProtoReflect() protoreflect.Message // Deprecated: Use FilterExpressions_FilterExpression.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0} } func (x *FilterExpressions_FilterExpression) GetFType() FilterExpressions_FilterExpression_FilterType { @@ -787,20 +784,19 @@ type FilterExpressions_FilterExpression_FilterValue struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValuePaths *FilterExpressions_FilterExpression_FilterValue_PathsValue `protobuf:"bytes,1,opt,name=ValuePaths,proto3,oneof" json:"ValuePaths,omitempty"` - ValueTimebased *FilterExpressions_FilterExpression_FilterValue_TimebasedValue `protobuf:"bytes,2,opt,name=ValueTimebased,proto3,oneof" json:"ValueTimebased,omitempty"` - ValueRange []*FilterExpressions_FilterExpression_FilterValue_RangeValue `protobuf:"bytes,3,rep,name=ValueRange,proto3" json:"ValueRange,omitempty"` - ValueChange *FilterExpressions_FilterExpression_FilterValue_ChangeValue `protobuf:"bytes,4,opt,name=ValueChange,proto3,oneof" json:"ValueChange,omitempty"` - ValueCurvelog *FilterExpressions_FilterExpression_FilterValue_CurvelogValue `protobuf:"bytes,5,opt,name=ValueCurvelog,proto3,oneof" json:"ValueCurvelog,omitempty"` - ValueHistory *FilterExpressions_FilterExpression_FilterValue_HistoryValue `protobuf:"bytes,6,opt,name=ValueHistory,proto3,oneof" json:"ValueHistory,omitempty"` - ValueStaticMetadata *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue `protobuf:"bytes,7,opt,name=ValueStaticMetadata,proto3,oneof" json:"ValueStaticMetadata,omitempty"` - ValueDynamicMetadata *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue `protobuf:"bytes,8,opt,name=ValueDynamicMetadata,proto3,oneof" json:"ValueDynamicMetadata,omitempty"` + ValuePaths *FilterExpressions_FilterExpression_FilterValue_PathsValue `protobuf:"bytes,1,opt,name=ValuePaths,proto3,oneof" json:"ValuePaths,omitempty"` + ValueTimebased *FilterExpressions_FilterExpression_FilterValue_TimebasedValue `protobuf:"bytes,2,opt,name=ValueTimebased,proto3,oneof" json:"ValueTimebased,omitempty"` + ValueRange []*FilterExpressions_FilterExpression_FilterValue_RangeValue `protobuf:"bytes,3,rep,name=ValueRange,proto3" json:"ValueRange,omitempty"` + ValueChange *FilterExpressions_FilterExpression_FilterValue_ChangeValue `protobuf:"bytes,4,opt,name=ValueChange,proto3,oneof" json:"ValueChange,omitempty"` + ValueCurvelog *FilterExpressions_FilterExpression_FilterValue_CurvelogValue `protobuf:"bytes,5,opt,name=ValueCurvelog,proto3,oneof" json:"ValueCurvelog,omitempty"` + ValueHistory *FilterExpressions_FilterExpression_FilterValue_HistoryValue `protobuf:"bytes,6,opt,name=ValueHistory,proto3,oneof" json:"ValueHistory,omitempty"` + ValueMetadata *FilterExpressions_FilterExpression_FilterValue_MetadataValue `protobuf:"bytes,7,opt,name=ValueMetadata,proto3,oneof" json:"ValueMetadata,omitempty"` } func (x *FilterExpressions_FilterExpression_FilterValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[9] + mi := &file_VISSv3messages_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -813,7 +809,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue) String() string { func (*FilterExpressions_FilterExpression_FilterValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[9] + mi := &file_VISSv3messages_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -826,7 +822,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue) ProtoReflect() protoref // Deprecated: Use FilterExpressions_FilterExpression_FilterValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0} } func (x *FilterExpressions_FilterExpression_FilterValue) GetValuePaths() *FilterExpressions_FilterExpression_FilterValue_PathsValue { @@ -871,16 +867,9 @@ func (x *FilterExpressions_FilterExpression_FilterValue) GetValueHistory() *Filt return nil } -func (x *FilterExpressions_FilterExpression_FilterValue) GetValueStaticMetadata() *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue { +func (x *FilterExpressions_FilterExpression_FilterValue) GetValueMetadata() *FilterExpressions_FilterExpression_FilterValue_MetadataValue { if x != nil { - return x.ValueStaticMetadata - } - return nil -} - -func (x *FilterExpressions_FilterExpression_FilterValue) GetValueDynamicMetadata() *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue { - if x != nil { - return x.ValueDynamicMetadata + return x.ValueMetadata } return nil } @@ -896,7 +885,7 @@ type FilterExpressions_FilterExpression_FilterValue_PathsValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_PathsValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[10] + mi := &file_VISSv3messages_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -909,7 +898,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) String() str func (*FilterExpressions_FilterExpression_FilterValue_PathsValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[10] + mi := &file_VISSv3messages_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -922,7 +911,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) ProtoReflect // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_PathsValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_PathsValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0, 0} } func (x *FilterExpressions_FilterExpression_FilterValue_PathsValue) GetRelativePath() []string { @@ -943,7 +932,7 @@ type FilterExpressions_FilterExpression_FilterValue_TimebasedValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_TimebasedValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[11] + mi := &file_VISSv3messages_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -956,7 +945,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) String() func (*FilterExpressions_FilterExpression_FilterValue_TimebasedValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[11] + mi := &file_VISSv3messages_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -969,7 +958,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) ProtoRef // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_TimebasedValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_TimebasedValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 1} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0, 1} } func (x *FilterExpressions_FilterExpression_FilterValue_TimebasedValue) GetPeriod() string { @@ -991,7 +980,7 @@ type FilterExpressions_FilterExpression_FilterValue_RangeValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_RangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[12] + mi := &file_VISSv3messages_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1004,7 +993,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) String() str func (*FilterExpressions_FilterExpression_FilterValue_RangeValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[12] + mi := &file_VISSv3messages_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1017,7 +1006,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) ProtoReflect // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_RangeValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_RangeValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 2} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0, 2} } func (x *FilterExpressions_FilterExpression_FilterValue_RangeValue) GetLogicOperator() string { @@ -1046,7 +1035,7 @@ type FilterExpressions_FilterExpression_FilterValue_ChangeValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_ChangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[13] + mi := &file_VISSv3messages_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1059,7 +1048,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) String() st func (*FilterExpressions_FilterExpression_FilterValue_ChangeValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[13] + mi := &file_VISSv3messages_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1072,7 +1061,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) ProtoReflec // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_ChangeValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_ChangeValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 3} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0, 3} } func (x *FilterExpressions_FilterExpression_FilterValue_ChangeValue) GetLogicOperator() string { @@ -1101,7 +1090,7 @@ type FilterExpressions_FilterExpression_FilterValue_CurvelogValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_CurvelogValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[14] + mi := &file_VISSv3messages_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1114,7 +1103,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) String() func (*FilterExpressions_FilterExpression_FilterValue_CurvelogValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[14] + mi := &file_VISSv3messages_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1127,7 +1116,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) ProtoRefl // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_CurvelogValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_CurvelogValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 4} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0, 4} } func (x *FilterExpressions_FilterExpression_FilterValue_CurvelogValue) GetMaxErr() string { @@ -1155,7 +1144,7 @@ type FilterExpressions_FilterExpression_FilterValue_HistoryValue struct { func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) Reset() { *x = FilterExpressions_FilterExpression_FilterValue_HistoryValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[15] + mi := &file_VISSv3messages_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1168,7 +1157,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) String() s func (*FilterExpressions_FilterExpression_FilterValue_HistoryValue) ProtoMessage() {} func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[15] + mi := &file_VISSv3messages_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1181,7 +1170,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) ProtoRefle // Deprecated: Use FilterExpressions_FilterExpression_FilterValue_HistoryValue.ProtoReflect.Descriptor instead. func (*FilterExpressions_FilterExpression_FilterValue_HistoryValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 5} + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0, 5} } func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) GetTimePeriod() string { @@ -1191,7 +1180,7 @@ func (x *FilterExpressions_FilterExpression_FilterValue_HistoryValue) GetTimePer return "" } -type FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue struct { +type FilterExpressions_FilterExpression_FilterValue_MetadataValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1199,23 +1188,23 @@ type FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue struct { Tree string `protobuf:"bytes,1,opt,name=Tree,proto3" json:"Tree,omitempty"` } -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) Reset() { - *x = FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue{} +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) Reset() { + *x = FilterExpressions_FilterExpression_FilterValue_MetadataValue{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[16] + mi := &file_VISSv3messages_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) String() string { +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) ProtoMessage() {} +func (*FilterExpressions_FilterExpression_FilterValue_MetadataValue) ProtoMessage() {} -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[16] +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) ProtoReflect() protoreflect.Message { + mi := &file_VISSv3messages_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1226,65 +1215,18 @@ func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) Pro return mi.MessageOf(x) } -// Deprecated: Use FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue.ProtoReflect.Descriptor instead. -func (*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 6} +// Deprecated: Use FilterExpressions_FilterExpression_FilterValue_MetadataValue.ProtoReflect.Descriptor instead. +func (*FilterExpressions_FilterExpression_FilterValue_MetadataValue) Descriptor() ([]byte, []int) { + return file_VISSv3messages_proto_rawDescGZIP(), []int{1, 0, 0, 6} } -func (x *FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue) GetTree() string { +func (x *FilterExpressions_FilterExpression_FilterValue_MetadataValue) GetTree() string { if x != nil { return x.Tree } return "" } -type FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MetadataDomain string `protobuf:"bytes,1,opt,name=MetadataDomain,proto3" json:"MetadataDomain,omitempty"` -} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) Reset() { - *x = FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue{} - if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) ProtoMessage() {} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue.ProtoReflect.Descriptor instead. -func (*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{1, 0, 0, 7} -} - -func (x *FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue) GetMetadataDomain() string { - if x != nil { - return x.MetadataDomain - } - return "" -} - type DataPackages_DataPackage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1298,7 +1240,7 @@ type DataPackages_DataPackage struct { func (x *DataPackages_DataPackage) Reset() { *x = DataPackages_DataPackage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[18] + mi := &file_VISSv3messages_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1311,7 +1253,7 @@ func (x *DataPackages_DataPackage) String() string { func (*DataPackages_DataPackage) ProtoMessage() {} func (x *DataPackages_DataPackage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[18] + mi := &file_VISSv3messages_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1324,7 +1266,7 @@ func (x *DataPackages_DataPackage) ProtoReflect() protoreflect.Message { // Deprecated: Use DataPackages_DataPackage.ProtoReflect.Descriptor instead. func (*DataPackages_DataPackage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{2, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{2, 0} } func (x *DataPackages_DataPackage) GetPath() string { @@ -1361,7 +1303,7 @@ type DataPackages_DataPackage_DataPoint struct { func (x *DataPackages_DataPackage_DataPoint) Reset() { *x = DataPackages_DataPackage_DataPoint{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[19] + mi := &file_VISSv3messages_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1374,7 +1316,7 @@ func (x *DataPackages_DataPackage_DataPoint) String() string { func (*DataPackages_DataPackage_DataPoint) ProtoMessage() {} func (x *DataPackages_DataPackage_DataPoint) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[19] + mi := &file_VISSv3messages_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1387,7 +1329,7 @@ func (x *DataPackages_DataPackage_DataPoint) ProtoReflect() protoreflect.Message // Deprecated: Use DataPackages_DataPackage_DataPoint.ProtoReflect.Descriptor instead. func (*DataPackages_DataPackage_DataPoint) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{2, 0, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{2, 0, 0} } func (x *DataPackages_DataPackage_DataPoint) GetValue() string { @@ -1425,7 +1367,7 @@ type GetMessage_RequestMessage struct { func (x *GetMessage_RequestMessage) Reset() { *x = GetMessage_RequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[20] + mi := &file_VISSv3messages_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1438,7 +1380,7 @@ func (x *GetMessage_RequestMessage) String() string { func (*GetMessage_RequestMessage) ProtoMessage() {} func (x *GetMessage_RequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[20] + mi := &file_VISSv3messages_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1451,7 +1393,7 @@ func (x *GetMessage_RequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessage_RequestMessage.ProtoReflect.Descriptor instead. func (*GetMessage_RequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{3, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{3, 0} } func (x *GetMessage_RequestMessage) GetPath() string { @@ -1498,7 +1440,7 @@ type GetMessage_ResponseMessage struct { func (x *GetMessage_ResponseMessage) Reset() { *x = GetMessage_ResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[21] + mi := &file_VISSv3messages_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1511,7 +1453,7 @@ func (x *GetMessage_ResponseMessage) String() string { func (*GetMessage_ResponseMessage) ProtoMessage() {} func (x *GetMessage_ResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[21] + mi := &file_VISSv3messages_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1524,7 +1466,7 @@ func (x *GetMessage_ResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessage_ResponseMessage.ProtoReflect.Descriptor instead. func (*GetMessage_ResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{3, 1} + return file_VISSv3messages_proto_rawDescGZIP(), []int{3, 1} } func (x *GetMessage_ResponseMessage) GetStatus() ResponseStatus { @@ -1575,13 +1517,13 @@ type GetMessage_ResponseMessage_SuccessResponseMessage struct { unknownFields protoimpl.UnknownFields DataPack *DataPackages `protobuf:"bytes,1,opt,name=DataPack,proto3,oneof" json:"DataPack,omitempty"` - Metadata *string `protobuf:"bytes,2,opt,name=Metadata,proto3,oneof" json:"Metadata,omitempty"` // replaces DataPack in static metadata and one dynamic metadata variant + Metadata *string `protobuf:"bytes,2,opt,name=Metadata,proto3,oneof" json:"Metadata,omitempty"` // replaces DataPack in metadata variant } func (x *GetMessage_ResponseMessage_SuccessResponseMessage) Reset() { *x = GetMessage_ResponseMessage_SuccessResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[22] + mi := &file_VISSv3messages_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1594,7 +1536,7 @@ func (x *GetMessage_ResponseMessage_SuccessResponseMessage) String() string { func (*GetMessage_ResponseMessage_SuccessResponseMessage) ProtoMessage() {} func (x *GetMessage_ResponseMessage_SuccessResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[22] + mi := &file_VISSv3messages_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1607,7 +1549,7 @@ func (x *GetMessage_ResponseMessage_SuccessResponseMessage) ProtoReflect() proto // Deprecated: Use GetMessage_ResponseMessage_SuccessResponseMessage.ProtoReflect.Descriptor instead. func (*GetMessage_ResponseMessage_SuccessResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{3, 1, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{3, 1, 0} } func (x *GetMessage_ResponseMessage_SuccessResponseMessage) GetDataPack() *DataPackages { @@ -1638,7 +1580,7 @@ type SetMessage_RequestMessage struct { func (x *SetMessage_RequestMessage) Reset() { *x = SetMessage_RequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[23] + mi := &file_VISSv3messages_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1651,7 +1593,7 @@ func (x *SetMessage_RequestMessage) String() string { func (*SetMessage_RequestMessage) ProtoMessage() {} func (x *SetMessage_RequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[23] + mi := &file_VISSv3messages_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1664,7 +1606,7 @@ func (x *SetMessage_RequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMessage_RequestMessage.ProtoReflect.Descriptor instead. func (*SetMessage_RequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{4, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{4, 0} } func (x *SetMessage_RequestMessage) GetPath() string { @@ -1709,7 +1651,7 @@ type SetMessage_ResponseMessage struct { func (x *SetMessage_ResponseMessage) Reset() { *x = SetMessage_ResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[24] + mi := &file_VISSv3messages_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1722,7 +1664,7 @@ func (x *SetMessage_ResponseMessage) String() string { func (*SetMessage_ResponseMessage) ProtoMessage() {} func (x *SetMessage_ResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[24] + mi := &file_VISSv3messages_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1735,7 +1677,7 @@ func (x *SetMessage_ResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMessage_ResponseMessage.ProtoReflect.Descriptor instead. func (*SetMessage_ResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{4, 1} + return file_VISSv3messages_proto_rawDescGZIP(), []int{4, 1} } func (x *SetMessage_ResponseMessage) GetStatus() ResponseStatus { @@ -1780,7 +1722,7 @@ type SubscribeMessage_RequestMessage struct { func (x *SubscribeMessage_RequestMessage) Reset() { *x = SubscribeMessage_RequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[25] + mi := &file_VISSv3messages_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1793,7 +1735,7 @@ func (x *SubscribeMessage_RequestMessage) String() string { func (*SubscribeMessage_RequestMessage) ProtoMessage() {} func (x *SubscribeMessage_RequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[25] + mi := &file_VISSv3messages_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1806,7 +1748,7 @@ func (x *SubscribeMessage_RequestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeMessage_RequestMessage.ProtoReflect.Descriptor instead. func (*SubscribeMessage_RequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{5, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{5, 0} } func (x *SubscribeMessage_RequestMessage) GetPath() string { @@ -1852,7 +1794,7 @@ type SubscribeMessage_ResponseMessage struct { func (x *SubscribeMessage_ResponseMessage) Reset() { *x = SubscribeMessage_ResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[26] + mi := &file_VISSv3messages_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1865,7 +1807,7 @@ func (x *SubscribeMessage_ResponseMessage) String() string { func (*SubscribeMessage_ResponseMessage) ProtoMessage() {} func (x *SubscribeMessage_ResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[26] + mi := &file_VISSv3messages_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1878,7 +1820,7 @@ func (x *SubscribeMessage_ResponseMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeMessage_ResponseMessage.ProtoReflect.Descriptor instead. func (*SubscribeMessage_ResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{5, 1} + return file_VISSv3messages_proto_rawDescGZIP(), []int{5, 1} } func (x *SubscribeMessage_ResponseMessage) GetStatus() ResponseStatus { @@ -1932,7 +1874,7 @@ type SubscribeMessage_NotificationMessage struct { func (x *SubscribeMessage_NotificationMessage) Reset() { *x = SubscribeMessage_NotificationMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[27] + mi := &file_VISSv3messages_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1945,7 +1887,7 @@ func (x *SubscribeMessage_NotificationMessage) String() string { func (*SubscribeMessage_NotificationMessage) ProtoMessage() {} func (x *SubscribeMessage_NotificationMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[27] + mi := &file_VISSv3messages_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1958,7 +1900,7 @@ func (x *SubscribeMessage_NotificationMessage) ProtoReflect() protoreflect.Messa // Deprecated: Use SubscribeMessage_NotificationMessage.ProtoReflect.Descriptor instead. func (*SubscribeMessage_NotificationMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{5, 2} + return file_VISSv3messages_proto_rawDescGZIP(), []int{5, 2} } func (x *SubscribeMessage_NotificationMessage) GetSubscriptionId() string { @@ -2014,7 +1956,7 @@ type SubscribeMessage_NotificationMessage_SuccessResponseMessage struct { func (x *SubscribeMessage_NotificationMessage_SuccessResponseMessage) Reset() { *x = SubscribeMessage_NotificationMessage_SuccessResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[28] + mi := &file_VISSv3messages_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2027,7 +1969,7 @@ func (x *SubscribeMessage_NotificationMessage_SuccessResponseMessage) String() s func (*SubscribeMessage_NotificationMessage_SuccessResponseMessage) ProtoMessage() {} func (x *SubscribeMessage_NotificationMessage_SuccessResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[28] + mi := &file_VISSv3messages_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2040,7 +1982,7 @@ func (x *SubscribeMessage_NotificationMessage_SuccessResponseMessage) ProtoRefle // Deprecated: Use SubscribeMessage_NotificationMessage_SuccessResponseMessage.ProtoReflect.Descriptor instead. func (*SubscribeMessage_NotificationMessage_SuccessResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{5, 2, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{5, 2, 0} } func (x *SubscribeMessage_NotificationMessage_SuccessResponseMessage) GetDataPack() *DataPackages { @@ -2062,7 +2004,7 @@ type UnSubscribeMessage_RequestMessage struct { func (x *UnSubscribeMessage_RequestMessage) Reset() { *x = UnSubscribeMessage_RequestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[29] + mi := &file_VISSv3messages_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2075,7 +2017,7 @@ func (x *UnSubscribeMessage_RequestMessage) String() string { func (*UnSubscribeMessage_RequestMessage) ProtoMessage() {} func (x *UnSubscribeMessage_RequestMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[29] + mi := &file_VISSv3messages_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2088,7 +2030,7 @@ func (x *UnSubscribeMessage_RequestMessage) ProtoReflect() protoreflect.Message // Deprecated: Use UnSubscribeMessage_RequestMessage.ProtoReflect.Descriptor instead. func (*UnSubscribeMessage_RequestMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{6, 0} + return file_VISSv3messages_proto_rawDescGZIP(), []int{6, 0} } func (x *UnSubscribeMessage_RequestMessage) GetSubscriptionId() string { @@ -2120,7 +2062,7 @@ type UnSubscribeMessage_ResponseMessage struct { func (x *UnSubscribeMessage_ResponseMessage) Reset() { *x = UnSubscribeMessage_ResponseMessage{} if protoimpl.UnsafeEnabled { - mi := &file_VISSv2messages_proto_msgTypes[30] + mi := &file_VISSv3messages_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2133,7 +2075,7 @@ func (x *UnSubscribeMessage_ResponseMessage) String() string { func (*UnSubscribeMessage_ResponseMessage) ProtoMessage() {} func (x *UnSubscribeMessage_ResponseMessage) ProtoReflect() protoreflect.Message { - mi := &file_VISSv2messages_proto_msgTypes[30] + mi := &file_VISSv3messages_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2146,7 +2088,7 @@ func (x *UnSubscribeMessage_ResponseMessage) ProtoReflect() protoreflect.Message // Deprecated: Use UnSubscribeMessage_ResponseMessage.ProtoReflect.Descriptor instead. func (*UnSubscribeMessage_ResponseMessage) Descriptor() ([]byte, []int) { - return file_VISSv2messages_proto_rawDescGZIP(), []int{6, 1} + return file_VISSv3messages_proto_rawDescGZIP(), []int{6, 1} } func (x *UnSubscribeMessage_ResponseMessage) GetSubscriptionId() string { @@ -2184,10 +2126,10 @@ func (x *UnSubscribeMessage_ResponseMessage) GetTs() string { return "" } -var File_VISSv2messages_proto protoreflect.FileDescriptor +var File_VISSv3messages_proto protoreflect.FileDescriptor -var file_VISSv2messages_proto_rawDesc = []byte{ - 0x0a, 0x14, 0x56, 0x49, 0x53, 0x53, 0x76, 0x32, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, +var file_VISSv3messages_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x56, 0x49, 0x53, 0x53, 0x76, 0x33, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x14, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, @@ -2197,14 +2139,14 @@ var file_VISSv2messages_proto_rawDesc = []byte{ 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xfe, 0x0f, 0x0a, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xd7, 0x0d, 0x0a, 0x11, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x1a, 0x94, 0x0f, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x1a, 0xed, 0x0c, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x05, 0x46, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, @@ -2216,7 +2158,7 @@ var file_VISSv2messages_proto_rawDesc = []byte{ 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xca, 0x0c, 0x0a, 0x0b, 0x46, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xc1, 0x0a, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x70, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, @@ -2262,429 +2204,409 @@ var file_VISSv2messages_proto_rawDesc = []byte{ 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x04, 0x52, 0x0c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x8b, 0x01, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x54, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x48, 0x05, 0x52, 0x13, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x8e, 0x01, - 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x70, + 0x79, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x05, 0x52, 0x0d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x0a, 0x50, 0x61, + 0x74, 0x68, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x28, 0x0a, 0x0e, + 0x54, 0x69, 0x6d, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0x4e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x67, + 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x1a, 0x47, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, + 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x44, + 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x69, 0x66, 0x66, 0x1a, + 0x41, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x76, 0x65, 0x6c, 0x6f, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x4d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x75, 0x66, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, 0x75, 0x66, 0x53, 0x69, + 0x7a, 0x65, 0x1a, 0x2e, 0x0a, 0x0c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x1a, 0x23, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x72, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x54, 0x72, 0x65, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x43, 0x75, 0x72, 0x76, 0x65, 0x6c, 0x6f, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x66, + 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, + 0x50, 0x41, 0x54, 0x48, 0x53, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x42, + 0x41, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, + 0x08, 0x43, 0x55, 0x52, 0x56, 0x45, 0x4c, 0x4f, 0x47, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x48, + 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x45, 0x54, 0x41, + 0x44, 0x41, 0x54, 0x41, 0x10, 0x06, 0x22, 0xc9, 0x02, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xf8, 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x68, 0x43, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x05, 0x50, 0x61, 0x74, 0x68, 0x43, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x02, 0x44, + 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x02, 0x44, + 0x70, 0x1a, 0x5c, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, + 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x50, 0x61, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x50, 0x61, 0x74, + 0x68, 0x43, 0x22, 0x95, 0x08, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x33, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x01, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0xdf, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, + 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x1a, 0xbb, 0x04, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x72, 0x0a, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x00, 0x52, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x44, - 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x48, 0x06, 0x52, 0x14, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x1a, 0x30, - 0x0a, 0x0a, 0x50, 0x61, 0x74, 0x68, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x1a, 0x28, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0x4e, 0x0a, 0x0a, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, - 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x1a, 0x47, 0x0a, 0x0b, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, - 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, - 0x69, 0x66, 0x66, 0x1a, 0x41, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x76, 0x65, 0x6c, 0x6f, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4d, 0x61, 0x78, 0x45, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x42, 0x75, 0x66, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x42, - 0x75, 0x66, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x2e, 0x0a, 0x0c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x54, 0x69, 0x6d, 0x65, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0x29, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x72, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x72, 0x65, - 0x65, 0x1a, 0x3e, 0x0a, 0x14, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x62, 0x61, - 0x73, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x75, 0x72, - 0x76, 0x65, 0x6c, 0x6f, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x17, - 0x0a, 0x15, 0x5f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x83, 0x01, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x54, 0x48, 0x53, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x42, 0x41, 0x53, 0x45, 0x44, 0x10, 0x01, - 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, - 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x55, 0x52, 0x56, 0x45, - 0x4c, 0x4f, 0x47, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, - 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x4d, 0x45, 0x54, - 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x59, 0x4e, 0x41, 0x4d, - 0x49, 0x43, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x07, 0x22, 0xc9, 0x02, - 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x54, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, + 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x1a, 0x94, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, + 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, + 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, + 0x43, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x05, 0x0a, 0x0a, 0x53, + 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x4d, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, + 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x08, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xf8, - 0x01, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x17, - 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x68, 0x43, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x50, 0x61, 0x74, 0x68, 0x43, 0x88, - 0x01, 0x01, 0x12, 0x44, 0x0a, 0x02, 0x44, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x02, 0x44, 0x70, 0x1a, 0x5c, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x54, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x50, 0x61, 0x74, 0x68, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x50, 0x61, 0x74, 0x68, 0x43, 0x22, 0x95, 0x08, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, - 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x08, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x08, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xdf, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, - 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x40, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x1a, 0xbb, 0x04, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x72, 0x0a, 0x0f, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x43, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0d, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, - 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x1a, 0x94, - 0x01, 0x0a, 0x16, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x44, 0x61, 0x74, - 0x61, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x48, 0x00, 0x52, 0x08, 0x44, - 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x52, 0x65, 0x71, + 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x08, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xa8, 0x01, 0x0a, 0x0e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x1a, 0xf1, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x94, 0x05, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x33, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, - 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x48, 0x01, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0xa8, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, - 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x1a, 0xf1, 0x01, 0x0a, 0x0f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd3, 0x0a, 0x0a, 0x10, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, - 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, + 0x65, 0x22, 0xd3, 0x0a, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x08, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x00, 0x52, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, + 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x02, 0x52, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0xcc, 0x01, 0x0a, 0x0e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x40, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, - 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x86, 0x02, 0x0a, 0x0f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x48, 0x02, 0x52, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x1a, 0xcc, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x06, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x48, + 0x00, 0x52, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x86, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0xff, 0x03, 0x0a, 0x13, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7c, 0x0a, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x1a, 0xff, 0x03, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7c, 0x0a, 0x0f, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, - 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x02, 0x54, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, 0x73, 0x43, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x03, 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, 0x01, 0x01, 0x1a, 0x54, 0x0a, 0x16, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x54, 0x73, 0x43, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, - 0x05, 0x0a, 0x12, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, - 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x48, 0x00, 0x52, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, - 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, - 0x1a, 0x99, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x0f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x01, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x02, 0x54, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x54, + 0x73, 0x43, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x03, 0x54, 0x73, 0x43, 0x88, + 0x01, 0x01, 0x1a, 0x54, 0x0a, 0x16, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x08, + 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x08, + 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x54, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x54, 0x73, 0x43, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x05, 0x0a, 0x12, 0x55, 0x6e, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, + 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, - 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x54, 0x73, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf6, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x33, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, - 0x03, 0x47, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x48, 0x01, 0x52, 0x03, 0x53, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x02, 0x52, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x03, - 0x52, 0x0b, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x47, 0x65, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x53, 0x65, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2a, 0x41, - 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, - 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x10, 0x02, - 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x10, - 0x03, 0x2a, 0x3a, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, - 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x28, 0x0a, - 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x42, 0x04, 0x5a, 0x02, 0x2e, 0x2f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x4d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x01, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, + 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x1a, 0x99, 0x02, 0x0a, 0x0f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, + 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x51, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, + 0x52, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x54, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf6, + 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x52, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x33, 0x0a, 0x03, 0x47, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x03, 0x47, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x01, 0x52, 0x03, 0x53, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x02, 0x52, 0x09, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, + 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x03, 0x52, 0x0b, 0x55, 0x6e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x47, 0x65, + 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x53, 0x65, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x55, 0x6e, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x2a, 0x41, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, + 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, + 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x10, 0x03, 0x2a, 0x3a, 0x0a, 0x0b, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, + 0x55, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, + 0x53, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x28, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, + 0x42, 0x04, 0x5a, 0x02, 0x2e, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_VISSv2messages_proto_rawDescOnce sync.Once - file_VISSv2messages_proto_rawDescData = file_VISSv2messages_proto_rawDesc + file_VISSv3messages_proto_rawDescOnce sync.Once + file_VISSv3messages_proto_rawDescData = file_VISSv3messages_proto_rawDesc ) -func file_VISSv2messages_proto_rawDescGZIP() []byte { - file_VISSv2messages_proto_rawDescOnce.Do(func() { - file_VISSv2messages_proto_rawDescData = protoimpl.X.CompressGZIP(file_VISSv2messages_proto_rawDescData) +func file_VISSv3messages_proto_rawDescGZIP() []byte { + file_VISSv3messages_proto_rawDescOnce.Do(func() { + file_VISSv3messages_proto_rawDescData = protoimpl.X.CompressGZIP(file_VISSv3messages_proto_rawDescData) }) - return file_VISSv2messages_proto_rawDescData + return file_VISSv3messages_proto_rawDescData } -var file_VISSv2messages_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_VISSv2messages_proto_msgTypes = make([]protoimpl.MessageInfo, 31) -var file_VISSv2messages_proto_goTypes = []interface{}{ +var file_VISSv3messages_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_VISSv3messages_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_VISSv3messages_proto_goTypes = []interface{}{ (MessageMethod)(0), // 0: protobufMessages.MessageMethod (MessageType)(0), // 1: protobufMessages.MessageType (ResponseStatus)(0), // 2: protobufMessages.ResponseStatus - (FilterExpressions_FilterExpression_FilterType)(0), // 3: protobufMessages.FilterExpressions.FilterExpression.FilterType - (*ErrorResponseMessage)(nil), // 4: protobufMessages.ErrorResponseMessage - (*FilterExpressions)(nil), // 5: protobufMessages.FilterExpressions - (*DataPackages)(nil), // 6: protobufMessages.DataPackages - (*GetMessage)(nil), // 7: protobufMessages.GetMessage - (*SetMessage)(nil), // 8: protobufMessages.SetMessage - (*SubscribeMessage)(nil), // 9: protobufMessages.SubscribeMessage - (*UnSubscribeMessage)(nil), // 10: protobufMessages.UnSubscribeMessage - (*ProtobufMessage)(nil), // 11: protobufMessages.ProtobufMessage - (*FilterExpressions_FilterExpression)(nil), // 12: protobufMessages.FilterExpressions.FilterExpression - (*FilterExpressions_FilterExpression_FilterValue)(nil), // 13: protobufMessages.FilterExpressions.FilterExpression.FilterValue - (*FilterExpressions_FilterExpression_FilterValue_PathsValue)(nil), // 14: protobufMessages.FilterExpressions.FilterExpression.FilterValue.PathsValue - (*FilterExpressions_FilterExpression_FilterValue_TimebasedValue)(nil), // 15: protobufMessages.FilterExpressions.FilterExpression.FilterValue.TimebasedValue - (*FilterExpressions_FilterExpression_FilterValue_RangeValue)(nil), // 16: protobufMessages.FilterExpressions.FilterExpression.FilterValue.RangeValue - (*FilterExpressions_FilterExpression_FilterValue_ChangeValue)(nil), // 17: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ChangeValue - (*FilterExpressions_FilterExpression_FilterValue_CurvelogValue)(nil), // 18: protobufMessages.FilterExpressions.FilterExpression.FilterValue.CurvelogValue - (*FilterExpressions_FilterExpression_FilterValue_HistoryValue)(nil), // 19: protobufMessages.FilterExpressions.FilterExpression.FilterValue.HistoryValue - (*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue)(nil), // 20: protobufMessages.FilterExpressions.FilterExpression.FilterValue.StaticMetadataValue - (*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue)(nil), // 21: protobufMessages.FilterExpressions.FilterExpression.FilterValue.DynamicMetadataValue - (*DataPackages_DataPackage)(nil), // 22: protobufMessages.DataPackages.DataPackage - (*DataPackages_DataPackage_DataPoint)(nil), // 23: protobufMessages.DataPackages.DataPackage.DataPoint - (*GetMessage_RequestMessage)(nil), // 24: protobufMessages.GetMessage.RequestMessage - (*GetMessage_ResponseMessage)(nil), // 25: protobufMessages.GetMessage.ResponseMessage - (*GetMessage_ResponseMessage_SuccessResponseMessage)(nil), // 26: protobufMessages.GetMessage.ResponseMessage.SuccessResponseMessage - (*SetMessage_RequestMessage)(nil), // 27: protobufMessages.SetMessage.RequestMessage - (*SetMessage_ResponseMessage)(nil), // 28: protobufMessages.SetMessage.ResponseMessage - (*SubscribeMessage_RequestMessage)(nil), // 29: protobufMessages.SubscribeMessage.RequestMessage - (*SubscribeMessage_ResponseMessage)(nil), // 30: protobufMessages.SubscribeMessage.ResponseMessage - (*SubscribeMessage_NotificationMessage)(nil), // 31: protobufMessages.SubscribeMessage.NotificationMessage - (*SubscribeMessage_NotificationMessage_SuccessResponseMessage)(nil), // 32: protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponseMessage - (*UnSubscribeMessage_RequestMessage)(nil), // 33: protobufMessages.UnSubscribeMessage.RequestMessage - (*UnSubscribeMessage_ResponseMessage)(nil), // 34: protobufMessages.UnSubscribeMessage.ResponseMessage -} -var file_VISSv2messages_proto_depIdxs = []int32{ + (FilterExpressions_FilterExpression_FilterType)(0), // 3: protobufMessages.FilterExpressions.FilterExpression.FilterType + (*ErrorResponseMessage)(nil), // 4: protobufMessages.ErrorResponseMessage + (*FilterExpressions)(nil), // 5: protobufMessages.FilterExpressions + (*DataPackages)(nil), // 6: protobufMessages.DataPackages + (*GetMessage)(nil), // 7: protobufMessages.GetMessage + (*SetMessage)(nil), // 8: protobufMessages.SetMessage + (*SubscribeMessage)(nil), // 9: protobufMessages.SubscribeMessage + (*UnSubscribeMessage)(nil), // 10: protobufMessages.UnSubscribeMessage + (*ProtobufMessage)(nil), // 11: protobufMessages.ProtobufMessage + (*FilterExpressions_FilterExpression)(nil), // 12: protobufMessages.FilterExpressions.FilterExpression + (*FilterExpressions_FilterExpression_FilterValue)(nil), // 13: protobufMessages.FilterExpressions.FilterExpression.FilterValue + (*FilterExpressions_FilterExpression_FilterValue_PathsValue)(nil), // 14: protobufMessages.FilterExpressions.FilterExpression.FilterValue.PathsValue + (*FilterExpressions_FilterExpression_FilterValue_TimebasedValue)(nil), // 15: protobufMessages.FilterExpressions.FilterExpression.FilterValue.TimebasedValue + (*FilterExpressions_FilterExpression_FilterValue_RangeValue)(nil), // 16: protobufMessages.FilterExpressions.FilterExpression.FilterValue.RangeValue + (*FilterExpressions_FilterExpression_FilterValue_ChangeValue)(nil), // 17: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ChangeValue + (*FilterExpressions_FilterExpression_FilterValue_CurvelogValue)(nil), // 18: protobufMessages.FilterExpressions.FilterExpression.FilterValue.CurvelogValue + (*FilterExpressions_FilterExpression_FilterValue_HistoryValue)(nil), // 19: protobufMessages.FilterExpressions.FilterExpression.FilterValue.HistoryValue + (*FilterExpressions_FilterExpression_FilterValue_MetadataValue)(nil), // 20: protobufMessages.FilterExpressions.FilterExpression.FilterValue.MetadataValue + (*DataPackages_DataPackage)(nil), // 21: protobufMessages.DataPackages.DataPackage + (*DataPackages_DataPackage_DataPoint)(nil), // 22: protobufMessages.DataPackages.DataPackage.DataPoint + (*GetMessage_RequestMessage)(nil), // 23: protobufMessages.GetMessage.RequestMessage + (*GetMessage_ResponseMessage)(nil), // 24: protobufMessages.GetMessage.ResponseMessage + (*GetMessage_ResponseMessage_SuccessResponseMessage)(nil), // 25: protobufMessages.GetMessage.ResponseMessage.SuccessResponseMessage + (*SetMessage_RequestMessage)(nil), // 26: protobufMessages.SetMessage.RequestMessage + (*SetMessage_ResponseMessage)(nil), // 27: protobufMessages.SetMessage.ResponseMessage + (*SubscribeMessage_RequestMessage)(nil), // 28: protobufMessages.SubscribeMessage.RequestMessage + (*SubscribeMessage_ResponseMessage)(nil), // 29: protobufMessages.SubscribeMessage.ResponseMessage + (*SubscribeMessage_NotificationMessage)(nil), // 30: protobufMessages.SubscribeMessage.NotificationMessage + (*SubscribeMessage_NotificationMessage_SuccessResponseMessage)(nil), // 31: protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponseMessage + (*UnSubscribeMessage_RequestMessage)(nil), // 32: protobufMessages.UnSubscribeMessage.RequestMessage + (*UnSubscribeMessage_ResponseMessage)(nil), // 33: protobufMessages.UnSubscribeMessage.ResponseMessage +} +var file_VISSv3messages_proto_depIdxs = []int32{ 12, // 0: protobufMessages.FilterExpressions.FilterExp:type_name -> protobufMessages.FilterExpressions.FilterExpression - 22, // 1: protobufMessages.DataPackages.Data:type_name -> protobufMessages.DataPackages.DataPackage + 21, // 1: protobufMessages.DataPackages.Data:type_name -> protobufMessages.DataPackages.DataPackage 1, // 2: protobufMessages.GetMessage.MType:type_name -> protobufMessages.MessageType - 24, // 3: protobufMessages.GetMessage.Request:type_name -> protobufMessages.GetMessage.RequestMessage - 25, // 4: protobufMessages.GetMessage.Response:type_name -> protobufMessages.GetMessage.ResponseMessage + 23, // 3: protobufMessages.GetMessage.Request:type_name -> protobufMessages.GetMessage.RequestMessage + 24, // 4: protobufMessages.GetMessage.Response:type_name -> protobufMessages.GetMessage.ResponseMessage 1, // 5: protobufMessages.SetMessage.MType:type_name -> protobufMessages.MessageType - 27, // 6: protobufMessages.SetMessage.Request:type_name -> protobufMessages.SetMessage.RequestMessage - 28, // 7: protobufMessages.SetMessage.Response:type_name -> protobufMessages.SetMessage.ResponseMessage + 26, // 6: protobufMessages.SetMessage.Request:type_name -> protobufMessages.SetMessage.RequestMessage + 27, // 7: protobufMessages.SetMessage.Response:type_name -> protobufMessages.SetMessage.ResponseMessage 1, // 8: protobufMessages.SubscribeMessage.MType:type_name -> protobufMessages.MessageType - 29, // 9: protobufMessages.SubscribeMessage.Request:type_name -> protobufMessages.SubscribeMessage.RequestMessage - 30, // 10: protobufMessages.SubscribeMessage.Response:type_name -> protobufMessages.SubscribeMessage.ResponseMessage - 31, // 11: protobufMessages.SubscribeMessage.Notification:type_name -> protobufMessages.SubscribeMessage.NotificationMessage + 28, // 9: protobufMessages.SubscribeMessage.Request:type_name -> protobufMessages.SubscribeMessage.RequestMessage + 29, // 10: protobufMessages.SubscribeMessage.Response:type_name -> protobufMessages.SubscribeMessage.ResponseMessage + 30, // 11: protobufMessages.SubscribeMessage.Notification:type_name -> protobufMessages.SubscribeMessage.NotificationMessage 1, // 12: protobufMessages.UnSubscribeMessage.MType:type_name -> protobufMessages.MessageType - 33, // 13: protobufMessages.UnSubscribeMessage.Request:type_name -> protobufMessages.UnSubscribeMessage.RequestMessage - 34, // 14: protobufMessages.UnSubscribeMessage.Response:type_name -> protobufMessages.UnSubscribeMessage.ResponseMessage + 32, // 13: protobufMessages.UnSubscribeMessage.Request:type_name -> protobufMessages.UnSubscribeMessage.RequestMessage + 33, // 14: protobufMessages.UnSubscribeMessage.Response:type_name -> protobufMessages.UnSubscribeMessage.ResponseMessage 0, // 15: protobufMessages.ProtobufMessage.Method:type_name -> protobufMessages.MessageMethod 7, // 16: protobufMessages.ProtobufMessage.Get:type_name -> protobufMessages.GetMessage 8, // 17: protobufMessages.ProtobufMessage.Set:type_name -> protobufMessages.SetMessage @@ -2698,39 +2620,38 @@ var file_VISSv2messages_proto_depIdxs = []int32{ 17, // 25: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueChange:type_name -> protobufMessages.FilterExpressions.FilterExpression.FilterValue.ChangeValue 18, // 26: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueCurvelog:type_name -> protobufMessages.FilterExpressions.FilterExpression.FilterValue.CurvelogValue 19, // 27: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueHistory:type_name -> protobufMessages.FilterExpressions.FilterExpression.FilterValue.HistoryValue - 20, // 28: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueStaticMetadata:type_name -> protobufMessages.FilterExpressions.FilterExpression.FilterValue.StaticMetadataValue - 21, // 29: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueDynamicMetadata:type_name -> protobufMessages.FilterExpressions.FilterExpression.FilterValue.DynamicMetadataValue - 23, // 30: protobufMessages.DataPackages.DataPackage.Dp:type_name -> protobufMessages.DataPackages.DataPackage.DataPoint - 5, // 31: protobufMessages.GetMessage.RequestMessage.Filter:type_name -> protobufMessages.FilterExpressions - 2, // 32: protobufMessages.GetMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus - 26, // 33: protobufMessages.GetMessage.ResponseMessage.SuccessResponse:type_name -> protobufMessages.GetMessage.ResponseMessage.SuccessResponseMessage - 4, // 34: protobufMessages.GetMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage - 6, // 35: protobufMessages.GetMessage.ResponseMessage.SuccessResponseMessage.DataPack:type_name -> protobufMessages.DataPackages - 2, // 36: protobufMessages.SetMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus - 4, // 37: protobufMessages.SetMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage - 5, // 38: protobufMessages.SubscribeMessage.RequestMessage.Filter:type_name -> protobufMessages.FilterExpressions - 2, // 39: protobufMessages.SubscribeMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus - 4, // 40: protobufMessages.SubscribeMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage - 2, // 41: protobufMessages.SubscribeMessage.NotificationMessage.Status:type_name -> protobufMessages.ResponseStatus - 32, // 42: protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponse:type_name -> protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponseMessage - 4, // 43: protobufMessages.SubscribeMessage.NotificationMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage - 6, // 44: protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponseMessage.DataPack:type_name -> protobufMessages.DataPackages - 2, // 45: protobufMessages.UnSubscribeMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus - 4, // 46: protobufMessages.UnSubscribeMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage - 47, // [47:47] is the sub-list for method output_type - 47, // [47:47] is the sub-list for method input_type - 47, // [47:47] is the sub-list for extension type_name - 47, // [47:47] is the sub-list for extension extendee - 0, // [0:47] is the sub-list for field type_name -} - -func init() { file_VISSv2messages_proto_init() } -func file_VISSv2messages_proto_init() { - if File_VISSv2messages_proto != nil { + 20, // 28: protobufMessages.FilterExpressions.FilterExpression.FilterValue.ValueMetadata:type_name -> protobufMessages.FilterExpressions.FilterExpression.FilterValue.MetadataValue + 22, // 29: protobufMessages.DataPackages.DataPackage.Dp:type_name -> protobufMessages.DataPackages.DataPackage.DataPoint + 5, // 30: protobufMessages.GetMessage.RequestMessage.Filter:type_name -> protobufMessages.FilterExpressions + 2, // 31: protobufMessages.GetMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus + 25, // 32: protobufMessages.GetMessage.ResponseMessage.SuccessResponse:type_name -> protobufMessages.GetMessage.ResponseMessage.SuccessResponseMessage + 4, // 33: protobufMessages.GetMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage + 6, // 34: protobufMessages.GetMessage.ResponseMessage.SuccessResponseMessage.DataPack:type_name -> protobufMessages.DataPackages + 2, // 35: protobufMessages.SetMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus + 4, // 36: protobufMessages.SetMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage + 5, // 37: protobufMessages.SubscribeMessage.RequestMessage.Filter:type_name -> protobufMessages.FilterExpressions + 2, // 38: protobufMessages.SubscribeMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus + 4, // 39: protobufMessages.SubscribeMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage + 2, // 40: protobufMessages.SubscribeMessage.NotificationMessage.Status:type_name -> protobufMessages.ResponseStatus + 31, // 41: protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponse:type_name -> protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponseMessage + 4, // 42: protobufMessages.SubscribeMessage.NotificationMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage + 6, // 43: protobufMessages.SubscribeMessage.NotificationMessage.SuccessResponseMessage.DataPack:type_name -> protobufMessages.DataPackages + 2, // 44: protobufMessages.UnSubscribeMessage.ResponseMessage.Status:type_name -> protobufMessages.ResponseStatus + 4, // 45: protobufMessages.UnSubscribeMessage.ResponseMessage.ErrorResponse:type_name -> protobufMessages.ErrorResponseMessage + 46, // [46:46] is the sub-list for method output_type + 46, // [46:46] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name +} + +func init() { file_VISSv3messages_proto_init() } +func file_VISSv3messages_proto_init() { + if File_VISSv3messages_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_VISSv2messages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErrorResponseMessage); i { case 0: return &v.state @@ -2742,7 +2663,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions); i { case 0: return &v.state @@ -2754,7 +2675,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataPackages); i { case 0: return &v.state @@ -2766,7 +2687,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessage); i { case 0: return &v.state @@ -2778,7 +2699,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetMessage); i { case 0: return &v.state @@ -2790,7 +2711,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeMessage); i { case 0: return &v.state @@ -2802,7 +2723,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnSubscribeMessage); i { case 0: return &v.state @@ -2814,7 +2735,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProtobufMessage); i { case 0: return &v.state @@ -2826,7 +2747,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression); i { case 0: return &v.state @@ -2838,7 +2759,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue); i { case 0: return &v.state @@ -2850,7 +2771,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_PathsValue); i { case 0: return &v.state @@ -2862,7 +2783,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_TimebasedValue); i { case 0: return &v.state @@ -2874,7 +2795,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_RangeValue); i { case 0: return &v.state @@ -2886,7 +2807,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_ChangeValue); i { case 0: return &v.state @@ -2898,7 +2819,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_CurvelogValue); i { case 0: return &v.state @@ -2910,7 +2831,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FilterExpressions_FilterExpression_FilterValue_HistoryValue); i { case 0: return &v.state @@ -2922,20 +2843,8 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FilterExpressions_FilterExpression_FilterValue_StaticMetadataValue); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_VISSv2messages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue); i { + file_VISSv3messages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FilterExpressions_FilterExpression_FilterValue_MetadataValue); i { case 0: return &v.state case 1: @@ -2946,7 +2855,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataPackages_DataPackage); i { case 0: return &v.state @@ -2958,7 +2867,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataPackages_DataPackage_DataPoint); i { case 0: return &v.state @@ -2970,7 +2879,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessage_RequestMessage); i { case 0: return &v.state @@ -2982,7 +2891,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessage_ResponseMessage); i { case 0: return &v.state @@ -2994,7 +2903,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessage_ResponseMessage_SuccessResponseMessage); i { case 0: return &v.state @@ -3006,7 +2915,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetMessage_RequestMessage); i { case 0: return &v.state @@ -3018,7 +2927,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetMessage_ResponseMessage); i { case 0: return &v.state @@ -3030,7 +2939,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeMessage_RequestMessage); i { case 0: return &v.state @@ -3042,7 +2951,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeMessage_ResponseMessage); i { case 0: return &v.state @@ -3054,7 +2963,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeMessage_NotificationMessage); i { case 0: return &v.state @@ -3066,7 +2975,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeMessage_NotificationMessage_SuccessResponseMessage); i { case 0: return &v.state @@ -3078,7 +2987,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnSubscribeMessage_RequestMessage); i { case 0: return &v.state @@ -3090,7 +2999,7 @@ func file_VISSv2messages_proto_init() { return nil } } - file_VISSv2messages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_VISSv3messages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnSubscribeMessage_ResponseMessage); i { case 0: return &v.state @@ -3103,42 +3012,42 @@ func file_VISSv2messages_proto_init() { } } } - file_VISSv2messages_proto_msgTypes[0].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[3].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[4].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[5].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[6].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[7].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[9].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[18].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[19].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[20].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[21].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[22].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[23].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[24].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[25].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[26].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[27].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[29].OneofWrappers = []interface{}{} - file_VISSv2messages_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[25].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_VISSv3messages_proto_msgTypes[29].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_VISSv2messages_proto_rawDesc, + RawDescriptor: file_VISSv3messages_proto_rawDesc, NumEnums: 4, - NumMessages: 31, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_VISSv2messages_proto_goTypes, - DependencyIndexes: file_VISSv2messages_proto_depIdxs, - EnumInfos: file_VISSv2messages_proto_enumTypes, - MessageInfos: file_VISSv2messages_proto_msgTypes, + GoTypes: file_VISSv3messages_proto_goTypes, + DependencyIndexes: file_VISSv3messages_proto_depIdxs, + EnumInfos: file_VISSv3messages_proto_enumTypes, + MessageInfos: file_VISSv3messages_proto_msgTypes, }.Build() - File_VISSv2messages_proto = out.File - file_VISSv2messages_proto_rawDesc = nil - file_VISSv2messages_proto_goTypes = nil - file_VISSv2messages_proto_depIdxs = nil + File_VISSv3messages_proto = out.File + file_VISSv3messages_proto_rawDesc = nil + file_VISSv3messages_proto_goTypes = nil + file_VISSv3messages_proto_depIdxs = nil } diff --git a/server/ServerSignalSpecification.vspec b/server/ServerSignalSpecification.vspec new file mode 100644 index 00000000..249b7c14 --- /dev/null +++ b/server/ServerSignalSpecification.vspec @@ -0,0 +1,163 @@ +# Copyright (c) 2024 Contributors to COVESA +# +# This program and the accompanying materials are made available under the +# terms of the Mozilla Public License 2.0 which is available at +# https://www.mozilla.org/en-US/MPL/2.0/ +# +# SPDX-License-Identifier: MPL-2.0 + +# +# Server capabilities Signal Specification file +# +# +# The server capabilities declaration. +# +Server: + type: branch + description: Root for the server capabilities. + +Server.Support: + type: branch + description: Top branch declaring the server supported features. + +Server.Support.Protocol: + type: attribute + datatype: string[] + default: ["HTTPS", "WSS", "MQTTS", "gRPC"] + description: List of supported transport protocols. + +Server.Support.Security: + type: attribute + datatype: string[] + default: ["TLSv1.2", "access-control", "ecf"] + description: List of supported security related features. + +Server.Support.Filter: + type: attribute + datatype: string[] + default: ["timebased", "change", "range", "curvelog", "paths"] + description: List of supported filter features. + +Server.Config: + type: branch + description: Top branch declaring the configuration of server supported features. + +Server.Config.Protocol: + type: branch + description: Top branch declaring the configuration of server supported protocols. + +Server.Config.Protocol.Http: + type: branch + description: Top branch for the server supported HTTP protocol. + +Server.Config.Protocol.Http.Primary: + type: branch + description: HTTP configuration for the primary payload format. + +Server.Config.Protocol.Http.Primary.PortNum: + type: attribute + datatype: uint32 + default: 443 + description: HTTP port number for the primary payload format. + +Server.Config.Protocol.Websocket: + type: branch + description: Top branch for the server supported Websocket protocol. + +Server.Config.Protocol.Websocket.Primary: + type: branch + description: Websocket configuration for the primary payload format. + +Server.Config.Protocol.Websocket.Primary.PortNum: + type: attribute + datatype: uint32 + default: 6443 + description: Websocket protocol port number for the primary payload format. + +Server.Config.Protocol.Websocket.Protobuf: + type: branch + description: Websocket configuration for the protobuf encoded payload format. + +Server.Config.Protocol.Websocket.Protobuf.PortNum: + type: attribute + datatype: uint32 + description: Websocket protocol port number for the protobuf encoded payload format. + +Server.Config.Protocol.Mqtt: + type: branch + description: Top branch for the server supported MQTT protocol. + +Server.Config.Protocol.Mqtt.PortNum: + type: attribute + datatype: uint32 + default: 8883 + description: MQTT port number. + +Server.Config.Protocol.Mqtt.Primary: + type: branch + description: MQTT configuration for the primary payload format. + +Server.Config.Protocol.Mqtt.Primary.Topic: + type: attribute + datatype: string + description: MQTT topic name for the primary payload format. + +Server.Config.Protocol.Mqtt.Protobuf: + type: branch + description: MQTT configuration for the protobuf encoded payload format. + +Server.Config.Protocol.Mqtt.Protobuf.Topic: + type: attribute + datatype: string + description: Postfix "/protobuf" added to the MQTT topic name for the protobuf encoded payload format. + +Server.Config.Protocol.Grpc: + type: branch + description: Top branch for the server supported gRPC protocol. + +Server.Config.Protocol.Grpc.Protobuf: + type: branch + description: gRPC configuration with the protobuf encoded payload format. + +Server.Config.Protocol.Grpc.Protobuf.PortNum: + type: attribute + datatype: uint32 + description: gRPC port number for the protobuf encoded payload format. + +Server.Config.AccessControl: + type: branch + description: Access control configuration. + +Server.Config.AccessControl.AgtsUrl: + type: attribute + datatype: string + description: Access Grant Token Server URL including port number and path. + +Server.Config.AccessControl.AgtsPortNum: + type: attribute + datatype: uint32 + default: 7443 + description: Access Token Server port number. + +Server.Config.AccessControl.AtsPortNum: + type: attribute + datatype: uint32 + default: 8443 + description: Access Token Server port number. + +Server.Config.AccessControl.Flow: + type: attribute + datatype: string[] + default: ["short-term", "long-term"] + description: Supported access control flows. + +Server.Config.Consent: + type: branch + description: Consent configuration. + +Server.Config.Consent.Ecf: + type: attribute + datatype: string + description: External Consent Framework description. + + diff --git a/server/vissv2server/forest/server.binary b/server/vissv2server/forest/server.binary index a7cf6cee..ed28147f 100644 Binary files a/server/vissv2server/forest/server.binary and b/server/vissv2server/forest/server.binary differ diff --git a/server/vissv2server/forest/vss.binary b/server/vissv2server/forest/vss_v5.0.0.binary similarity index 100% rename from server/vissv2server/forest/vss.binary rename to server/vissv2server/forest/vss_v5.0.0.binary diff --git a/server/vissv2server/forest/vss_vissv2-full-access.binary b/server/vissv2server/forest/vss_vissv2-full-access.binary deleted file mode 100644 index 887b8bbe..00000000 Binary files a/server/vissv2server/forest/vss_vissv2-full-access.binary and /dev/null differ diff --git a/server/vissv2server/forest/vss_vissv2_vehicle.binary b/server/vissv2server/forest/vss_vissv2_vehicle.binary deleted file mode 100644 index 887b8bbe..00000000 Binary files a/server/vissv2server/forest/vss_vissv2_vehicle.binary and /dev/null differ diff --git a/server/vissv2server/serviceMgr/serviceMgr.go b/server/vissv2server/serviceMgr/serviceMgr.go index 59341342..d91866b0 100644 --- a/server/vissv2server/serviceMgr/serviceMgr.go +++ b/server/vissv2server/serviceMgr/serviceMgr.go @@ -894,11 +894,6 @@ func getDataPack(pathArray []string, filterList []utils.FilterObject) string { utils.Info.Printf("Historic data request, period=%s", period) getHistory = true break - } else if filterList[i].Type == "dynamic-metadata" { - domain = filterList[i].Parameter - utils.Info.Printf("Dynamic metadata request, domain=%s", domain) - getDomain = true - break } } } @@ -1402,11 +1397,6 @@ func ServiceMgrInit(mgrId int, serviceMgrChan chan string, stateStorageType stri dataChan <- utils.FinalizeMessage(errorResponseMap) break } - if filterList[0].Type == "dynamic-metadata" && filterList[0].Parameter == "server_capabilities" { - metadataPack := `{"filter":["paths","timebased","change","range","curvelog","history","dynamic-metadata","static-metadata"],"access_ctrl":["short_term","long_term","signalset_claim"],"transport_protocol":["https","wss","mqtts"]}` - dataChan <- addPackage(utils.FinalizeMessage(responseMap), "metadata", metadataPack) - break - } } dataPack := getDataPack(pathArray, filterList) if len(dataPack) == 0 { diff --git a/server/vissv2server/viss.him b/server/vissv2server/viss.him index c5b420e9..7cd0b618 100644 --- a/server/vissv2server/viss.him +++ b/server/vissv2server/viss.him @@ -6,18 +6,18 @@ HIM: HIM.Vehicle: type: direct domain: Vehicle.Car.ResourceData - version: 5.0 - local: forest/vss_vissv2.binary + version: 5.0.0 + local: forest/vss_v5.0.0.binary # public: https://himrepo.oem.com?instance=Vehicle.Car.ResourceData.X.Y.Z description: A VSS tree. -HIM.Vehicle2: - type: direct - domain: Vehicle.Car.ResourceData - version: 5.0 - local: forest/vss_vissv2.binary +#HIM.Vehicle2: +# type: direct +# domain: Vehicle.Car.ResourceData +# version: 5.0.0 +# local: forest/vss_v5.0.0.binary # public: https://himrepo.oem.com?instance=Vehicle.Car.ResourceData.X.Y.Z - description: Another VSS tree. +# description: Another VSS tree. HIM.Types: type: direct @@ -32,5 +32,5 @@ HIM.Server: domain: Server.Capabilities.ResourceData version: 0.1 local: forest/server.binary -# public: https://himrepo.oem.com?instance=Vehicle.Car.ResourceData.X.Y.Z +# public: https://himrepo.oem.com?instance=Server.Capabilities.ResourceData.X.Y.Z description: The server capabilities tree. diff --git a/server/vissv2server/vissv2server.go b/server/vissv2server/vissv2server.go index d102a98d..14f11063 100644 --- a/server/vissv2server/vissv2server.go +++ b/server/vissv2server/vissv2server.go @@ -478,7 +478,7 @@ func isValidGetParams(request string) bool { return true } -func isValidGetFilter(request string) bool { // paths, history,static-metadata, dynamic-metadata supported +func isValidGetFilter(request string) bool { // paths, history, metadata supported if strings.Contains(request, "paths") == true { if strings.Contains(request, "parameter") == true { return true @@ -489,12 +489,7 @@ func isValidGetFilter(request string) bool { // paths, history,static-metadata, return true } } - if strings.Contains(request, "static-metadata") == true { - if strings.Contains(request, "parameter") == true { - return true - } - } - if strings.Contains(request, "dynamic-metadata") == true { + if strings.Contains(request, "metadata") == true { if strings.Contains(request, "parameter") == true { return true } @@ -516,7 +511,7 @@ func isValidSubscribeParams(request string) bool { return true } -func isValidSubscribeFilter(request string) bool { // paths, history, timebased, range, change, curvelog, static-metadata, dynamic-metadata supported +func isValidSubscribeFilter(request string) bool { // paths, history, timebased, range, change, curvelog, metadata supported if isValidGetFilter(request) == true { return true } @@ -636,8 +631,8 @@ func issueServiceRequest(requestMap map[string]interface{}, tDChanIndex int, sDC break // only one paths object is allowed } - // STATIC METADATA FILTER - if filterList[i].Type == "static-metadata" { + // METADATA FILTER + if filterList[i].Type == "metadata" { tokenContext := getTokenContext(requestMap) // Gets the client context from the token in the request if len(tokenContext) == 0 { tokenContext = "Undefined+Undefined+Undefined" @@ -656,11 +651,6 @@ func issueServiceRequest(requestMap map[string]interface{}, tDChanIndex int, sDC backendChan[tDChanIndex] <- utils.FinalizeMessage(errorResponseMap) return } - // DYNAMIC METADATA FILTER - if filterList[i].Type == "dynamic-metadata" && filterList[i].Parameter == "server_capabilities" { - serviceDataChan[sDChanIndex] <- utils.FinalizeMessage(requestMap) // no further verification - return - } } } if requestMap["filter"] == nil || len(searchPath) == 0 { @@ -753,7 +743,7 @@ func issueServiceRequest(requestMap map[string]interface{}, tDChanIndex int, sDC func main() { // Create new parser object - parser := argparse.NewParser("print", "Server Core") + parser := argparse.NewParser("print", "VISS v3.0 Server") // Create string flag logFile := parser.Flag("", "logfile", &argparse.Options{Required: false, Help: "outputs to logfile in ./logs folder"}) logLevel := parser.Selector("", "loglevel", []string{"trace", "debug", "info", "warn", "error", "fatal", "panic"}, &argparse.Options{ diff --git a/tutorial/content/_index.md b/tutorial/content/_index.md index ae3d2f35..d4e11444 100644 --- a/tutorial/content/_index.md +++ b/tutorial/content/_index.md @@ -18,6 +18,11 @@ It is with a few small exceptions backwards compatible with VISSv2.0. The except * gRPC support. This wa already available on an experimental level in VISSR @v2.0. * Any further new features added to the VISSv3.0 specification will become implemented. +### Non-backwards compatible changes from VISSv2.0 +* The filter keyname "type" is changed to "variant". +* The filter variants "static-metadata" and "dynamic-metadata" are replaced by the variant "metadata". +* The "subscriptionId" parameter in unsubscribe response messages is deleted. + Also found on this repo are implementations of other components that are needed to realize a communication tech stack that reaches from clients through the server and to the underlying vehicle system interface. ![VISSv2 communication tech stack](/vissr/images/WAII-tech-stack.jpg?width=40pc) @@ -32,16 +37,3 @@ These software components (SwCs) can be categorized as follows: The tutorial describes each SwC category in a separate chapter. It also contains a few Proof of concept (POC) examples, and information about installing, building and running Golang based SwCs, a Docker containerization, and about some peripheral components. - -### Client deployment options -As is shown in the figure above the VISS interface is well suited to serve clients deployed in different environments: -* Cloud deployment. Typically connected via Internet connectivity. -* Proximity deployment. Typcially in a mobile phone connected via any short range connectivity such as Bluetooth or WiFi. -* In-vehicle deployment. Typically as an app in the infotainment environment. - -The payloads handled by the clients at any of these deployments are identical. - -The MQTT transport protocol option, with the broker deployed in the cloud, -is well suited for the client cloud deployment as the communication can traverse across subnets. -The thin application layer protocol on top of MQTT that VISS defines makes it possible -to keep the client-server communication, and payload compatibility. diff --git a/tutorial/content/build-system/_index.md b/tutorial/content/build-system/_index.md index 8526854c..8244749f 100644 --- a/tutorial/content/build-system/_index.md +++ b/tutorial/content/build-system/_index.md @@ -53,7 +53,8 @@ If it says "package main" it is a separate executable and shall then be built an Logging can be command line configured at startup. * logging level can be set to either of [trace, debug, info, warn, error, fatal, panic]. * logging output destination. It can either be written to file, or directed to standard output. -The levels currently used are mainly info, warn, error. Info is appropriate during testing and debugging, while error is appropriate when performance is important. + +The levels currently used are mainly info, warning, error. Info is appropriate during testing and debugging, while error is appropriate when performance is important. ### Transport protocols Besides the transport protocols diff --git a/tutorial/content/client/_index.md b/tutorial/content/client/_index.md index 455273d8..7be20528 100644 --- a/tutorial/content/client/_index.md +++ b/tutorial/content/client/_index.md @@ -2,9 +2,38 @@ title: "VISSv2 Clients" --- -There are a number of different clients avaliable on this repo in the client/client-1.0 directory. +## Client deployment options +As is shown in the figure above the VISS interface is well suited to serve clients deployed in different environments: +* Cloud deployment. Typically connected via Internet connectivity. +* Proximity deployment. Typcially in a mobile phone connected via any short range connectivity such as Bluetooth or WiFi. +* In-vehicle deployment. Typically as an app in the infotainment environment. -## Compression client +The payloads handled by the clients at any of these deployments are identical. + +The MQTT transport protocol option, with the broker deployed in the cloud, +is well suited for the client cloud deployment as the communication can traverse across subnets. +The thin application layer protocol on top of MQTT that VISS defines makes it possible +to keep the client-server communication, and payload compatibility. + +## Client implementations +There are a number of different clients avaliable on this repo, mainly in the client/client-1.0 directory. + +### gRPC client +The gRPC implementation uses the protobuf encoding in the VISSv2messages.proto file found [here](https://github.com/covesa/vissr/tree/master/grpc_pb). +The server currently only supports the protobuf level 1 encoding. + +### MQTT client +The [MQTT client](https://github.com/UlfBj/vissr/tree/master/client/client-1.0/mqtt_client) implements the application level protocol described in the +[specification](https://raw.githack.com/COVESA/vehicle-information-service-specification/main/spec/VISSv2_Transport.html#application-level-protocol). + +### CSV client +The [CSV client]() is developed for testing the [curve logging algorithm](https://www.geotab.com/blog/gps-logging-curve-algorithm/) that Geotab has opened for public cuse. +A client can equest it to be aplied to data by using a [filter](https://raw.githack.com/COVESA/vehicle-information-service-specification/main/spec/VISSv2_Core.html#curvelog-filter-operation) option. + +It generates a comma separated (CSV) file in which it saves the curve logged data that it has reuested from the server. +The CSV format makes it easy to import it into an Excel sheet and visualize it as a graph which allows it e. g. to be compared with the original, non-curved data. + +### Compression client The [compression client](https://github.com/covesa/vissr/blob/master/client/client-1.0/compress_client/compress_client.go) can be used for testing three payload compression variants. * Proprietary compression algorithm * Protobuf encoding, level 1 @@ -31,21 +60,6 @@ Going the other way, the array is simply indexed by the integer value from the p The string based timestamps are replaced by an int32 as shown in the CompressTS() procedure found in [computils.go](https://github.com/covesa/vissr/blob/master/utils/computils.go). Level 2 achieves compression rates of around 5 or better. -## gRPC client -The gRPC implementation uses the protobuf encoding in the VISSv2messages.proto file found [here](https://github.com/covesa/vissr/tree/master/grpc_pb). -The server currently only supports the protobuf level 1 encoding. - -## MQTT client -The [MQTT client](https://github.com/UlfBj/vissr/tree/master/client/client-1.0/mqtt_client) implements the application level protocol described in the -[specification](https://raw.githack.com/COVESA/vehicle-information-service-specification/main/spec/VISSv2_Transport.html#application-level-protocol). - -## CSV client -The [CSV client]() is developed for testing the [curve logging algorithm](https://www.geotab.com/blog/gps-logging-curve-algorithm/) that Geotab has opened for public cuse. -A client can equest it to be aplied to data by using a [filter](https://raw.githack.com/COVESA/vehicle-information-service-specification/main/spec/VISSv2_Core.html#curvelog-filter-operation) option. - -It generates a comma separated (CSV) file in which it saves the curve logged data that it has reuested from the server. -The CSV format makes it easy to import it into an Excel sheet and visualize it as a graph which allows it e. g. to be compared with the original, non-curved data. - ## Java script clients There are a few clients that are written in Javascript, and thus when started opens in a browser. Thes clients can be quite handy for quick testing of the server functionality. @@ -89,6 +103,12 @@ In the leftmost field below "atserver" (no quotes) must be written, then in the A payload example can be found in the [appclient_commands.txt](https://github.com/covesa/vissr/blob/master/client/client-1.0/Javascript/appclient_commands.txt) file. The token that is provided in the request must include an Access Grant token from the response of a successful reuquest to the AGT server. +## Android app client +The client/android/covesa-vissr-app-demo directory contains an Android app that realizes a VISSv2.0 client. +This was demoed at the COVESA spring 2024 AMM in Gothenburg. +[Presentation](https://wiki.covesa.global/download/attachments/98271360/Empowering%20digital%20services%20-%20COVESA%20AMM%20Gbg%202024.pdf?version=1&modificationDate=1714401997052&api=v2), +[Demo recording](https://wiki.covesa.global/download/attachments/98271360/Empowering%20digital%20services%20-%20COVESA%20AMM%20Gbg%202024_Demo.mp4?version=1&modificationDate=1714634868645&api=v2) + ## Clients on other repos ### VISS Web Client diff --git a/tutorial/content/datastore/_index.md b/tutorial/content/datastore/_index.md index 898dc832..a3a5029a 100644 --- a/tutorial/content/datastore/_index.md +++ b/tutorial/content/datastore/_index.md @@ -2,13 +2,25 @@ title: "VISSR Data Storage" --- -Two realizations of data storage are available on the [COVESA/CCS-components Github](https://github.com/COVESA/ccs-components), -one using an SQLite database, and the other a Redis database. In addition WAII also supports connection to an Apache IoTDB server. +The VISSR tech stack architecture contains a data storage component located between the server and the feeder(s). +This data store provides a decoupling between the server data access operations and the data access operations of a feeder. +Feeders are expected to keep the data store updated with the latest available value of the signals defined in the VSS tree, +and for client read/subscribe requests the server reads from what is available in the data store. +This leads to that for all client read/subscribe requests the underlying vehicle system does not get involved by instantaneously +having to provide a signal value when asked for by a client. +Client write requests are not passed through the data store (except for the soon to be deprecated version 1 client template type), +but are instead communicated over an Unix Domain Socket IPC channel directly to the feeder by the server. -The server implements the APIs to these databases, which to use is selected by its command line configuration. +There are currently four plugin compatible data stores available, based on the following data base solutions. +* SQLite +* Redis +* Memcached +* Apache IotDB -The same support should be available on the other SwC that accesses the data storage, -however the current feeder implementation only implements Redis support, hence it is not merged into the master branch but resides on the feeder branch. +The server is at startup configured via a CLI parameter which DB solution to use, default is Redis. +A feeder must be configured to use the same DB, and implement the common interface for that DB. +An example of this is e. g. found in the feeder/feeder-template/feederv3/feederv3.go in the method +statestorageSet(path, val, ts) which implements SQLite, Redis and Memcached. It may be a bit confusing that sometimes this is referred to as "data store/storage" and sometimes "state storage". The latter name is legacy from a previous COVESA project, the Cloud & Connected Services project, while the former has emerged later in the COVESA architecture group work. @@ -16,4 +28,4 @@ An argument for keeping both could be to say that the state storage refers to a while the data store refers to a more general database that can also keep time series of values of a signal. There are two scenarios where the VISSv2 server operates on time series data, [curve logging](https://raw.githack.com/covesa/vehicle-information-service-specification/main/spec/VISSv2_Core.html#curvelog-filter-operation), and [historic data](https://raw.githack.com/covesa/vehicle-information-service-specification/main/spec/VISSv2_Core.html#history-filter-operation), -but in this server implementation these data series is temporarily stored within the server, so a "state storage" functionality is sufficient for its needs. +but in this server implementation these data series are temporarily stored within the server, so a "state storage" functionality is sufficient for its needs. diff --git a/tutorial/content/feeder/_index.md b/tutorial/content/feeder/_index.md index 0285068a..e21d6ebd 100644 --- a/tutorial/content/feeder/_index.md +++ b/tutorial/content/feeder/_index.md @@ -2,13 +2,28 @@ title: "VISSR Feeders" --- -A feeder is a Sw component that needs to implement three tasks: -* Implement an interface to the data storage -* Implement an interface to the underlying vehicle interface -* Translate data from the format used in the "VSS domain" to te format used in the "Vehicle domain". +A feeder is a Sw component that needs to implement the following tasks, depending on which template version they implement: -The SW architecture shown in figure 1 reflects the division of the three tasks in that the translation (map & scale) is done in the min process, -which spawns two threads that implement the respective interface task. +The soon to be deprecated template version 1: +* Use an interface to the data storage for writing and reading data. +* Use an interface to the underlying vehicle interface for reading and writing data. +* Translate data from the format used in the "VSS domain" to the format used in the "Vehicle domain", and vice versa. + +Template version 2: +* Use an interface to the data storage for writing data. +* Use an interface to the underlying vehicle interface for reading and writing data. +* Translate data from the format used in the "VSS domain" to the format used in the "Vehicle domain", and vice versa. +* Use an Unix domain socket interface for receiving "client set data" from the server. + +Template version 3: +* Use an interface to the data storage for writing data. +* Use an interface to the underlying vehicle interface for reading and writing data. +* Translate data from the format used in the "VSS domain" to the format used in the "Vehicle domain", and vice versa. +* Use an Unix domain socket interface for receiving "client set data" from the server. +* Use the UDS interface to receive instructions from the server on which signals to begin/stop issuing events after writing to the data store. +* Use the UDS interface to issue events when instructed by he server to do so. + +The SW architecture shown in figure 1 shows a logical partition into the three main tasks of template version 1. The architecture shown handle all its communication with the server via the state storage. This leads to a polling paradigm and thus a potential latency and performance weakness. This architecture is therefore not found on the master branch, but available on the datastore-poll branch. @@ -25,7 +40,7 @@ the state storage to find new write requests. A feeder implementing this solution can be found in the feeder-template/feederv2 directory. This feeder can be configured to either use an SQLite, or a Redis state storage interface, please see the Datastore chapter for details. -However, the solution implementd in the feederv2 template does not support that the server also can replace the polling with a more effective event based solution. +However, the solution implemented in the feederv2 template does not support that the server also can replace the polling with a more effective event based solution. For this the feeder implementation in the feeder-template/feederv3 directory needs to be used. The server is able via the interface to detect whether a feeder implements version 2 or 3 of the interface. @@ -50,6 +65,12 @@ where the Vehicle interface is implemented to connect to a RemotiveLabs broker. There is also an External Vehicle Interface Client [EVIC](https://github.com/covesa/vissr/tree/master/feeder/feeder-evic) feeder that enables the interface client to be implemented in a separate executable. +## Data storage interface +If the feeder is implemented to support multiple data base solutions, see the Data store chapter for which are currently supported, +then to configure which to use could be done at startup via a CLI parameter, +see e. g. how it is done in the feeder/feeder-template/feederv3/feederv3.go. +There also the interface implementations to some DB solutions can be seen in the method statestorageSet(path, val, ts). + ## Simulated vehicle data sources The feederv2 template contains two different simulation mechanisms that are selected via the command line configuration parameters. diff --git a/tutorial/content/server/_index.md b/tutorial/content/server/_index.md index f7b2956a..1f8252cc 100644 --- a/tutorial/content/server/_index.md +++ b/tutorial/content/server/_index.md @@ -50,14 +50,40 @@ The AT server uses the purposelist.json file to validate that a client request t It therefore necessary to ensure that this file contains purpose(s) that includes the data that is access controlled tagged in the tree. #### Command line configuration -The server has the following command line configurations: -* Data storage implementation. Select one of the following options: SQLite (-s sqlite), Redis (-s redis) or Apache IoTDB (-s apache-iotdb). Default is SQLite. -* Data storage file name (--dbfile 'file-name'). Only relevant for SQLite configuration. Default is "serviceMgr/statestorage.db". -* Request the server to generate a pathlist file, then terminate (--dryrun). Default is not to terminate after generating it. -* Pathlist file name (--vssjson 'file-name'. Default is "../vsspathlist.json". -* UDS path for history control (--uds 'file-name'). Name of the Unix domain socket file. Default is "/var/tmp/vissv2/histctrlserver.sock". -* Level of logging (--loglevel levelx). Levelx is one of [trace, debug, info, warn, error, fatal, panic]. Default is "info". -* Whether logging should end up in standard output (false) or in a log file (true) (--logfile false/true). The default is 'false'. +Starting the server with the command line option -h will show the screen below. +``` +usage: print [-h|--help] [--logfile] [--loglevel + (trace|debug|info|warn|error|fatal|panic)] [-d|--dpop] + [-p|--pathlist] [--pListPath ""] [-s|--statestorage + (sqlite|redis|memcache|apache-iotdb|none)] [-j|--history] + [--dbfile ""] [-c|--consentsupport] + + VISS v3.0 Server + +Arguments: + + -h --help Print help information + --logfile outputs to logfile in ./logs folder + --loglevel changes log output level. Default: info + -d --dpop Populate tree defaults. Default: false + -p --pathlist Generate pathlist file. Default: false + --pListPath path to pathlist file. Default: ../ + -s --statestorage Statestorage must be either sqlite, redis, memcache, + apache-iotdb, or none. Default: redis + -j --history Support for historic data requests. Default: false + --dbfile statestorage database filename. Default: + serviceMgr/statestorage.db + -c --consentsupport try to connect to ECF. Default: false +``` +More information for some of the options: +* -p: Whether pathlist files should be generated or not at startup. True if is set, false if not set. +* --pListPath 'path: Path to where "pathlistX.json" file(s) are stored. X=[1..] Default is "../". +* -d: Whether default values defined in the tree(s) should be copied to the data store or not at startup. True if is set, false if not set. +* --loglevel levelx: Levelx is one of [trace, debug, info, warn, error, fatal, panic]. Default is "info". +* --logfile: Whether logging should end up in standard output (false) or in a log file (true). True if is set, false if not set. +* --dbfile filepath: Only relevant if SQLite is configured via "-s sqlite". +* -j: Starts up an internal server thread if true. Currently not supported even if set to true. True if is set, false if not set. +* -c: If set to true an ECF SwC must be available to connect to the server. True if is set, false if not set. #### Data storage configuration Currently the server supports two different databases, SQLite and Redis, which one to use is selected in the command line configuration. diff --git a/utils/grcputils.go b/utils/grcputils.go index 87ded220..e7431545 100644 --- a/utils/grcputils.go +++ b/utils/grcputils.go @@ -363,11 +363,8 @@ func createPbFilter(index int, filterExpression map[string]interface{}, filter * case pb.FilterExpressions_FilterExpression_HISTORY: filter.FilterExp[index].Value.ValueHistory = &pb.FilterExpressions_FilterExpression_FilterValue_HistoryValue{} filter.FilterExp[index].Value.ValueHistory.TimePeriod = filterExpression["parameter"].(string) - case pb.FilterExpressions_FilterExpression_STATIC_METADATA: + case pb.FilterExpressions_FilterExpression_METADATA: Warning.Printf("Filter type is not supported by protobuf compression.") - case pb.FilterExpressions_FilterExpression_DYNAMIC_METADATA: - filter.FilterExp[index].Value.ValueDynamicMetadata = &pb.FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue{} - filter.FilterExp[index].Value.ValueDynamicMetadata.MetadataDomain = filterExpression["parameter"].(string) default: Error.Printf("Filter type is unknown.") } @@ -451,12 +448,10 @@ func getFilterType(filterType string) pb.FilterExpressions_FilterExpression_Filt return pb.FilterExpressions_FilterExpression_CURVELOG case "history": return pb.FilterExpressions_FilterExpression_HISTORY - case "static-metadata": - return pb.FilterExpressions_FilterExpression_STATIC_METADATA - case "dynamic-metadata": - return pb.FilterExpressions_FilterExpression_DYNAMIC_METADATA + case "metadata": + return pb.FilterExpressions_FilterExpression_METADATA } - return pb.FilterExpressions_FilterExpression_DYNAMIC_METADATA + 100 //undefined filter type + return pb.FilterExpressions_FilterExpression_METADATA + 100 //undefined filter type } func createSubscribeRequestPb(protoMessage *pb.SubscribeRequestMessage, messageMap map[string]interface{}) { @@ -740,11 +735,8 @@ func synthesizeFilter(filterExp *pb.FilterExpressions_FilterExpression) string { fType = "history" value = getJsonFilterValueHistory(filterExp) case 6: - fType = "static-metadata" - value = getJsonFilterValueStaticMetadata(filterExp) - case 7: - fType = "dynamic-metadata" - value = getJsonFilterValueDynamicMetadata(filterExp) + fType = "metadata" + value = getJsonFilterValueMetadata(filterExp) } return `{"type":"` + fType + `","parameter":` + value + `}` } @@ -805,16 +797,11 @@ func getJsonFilterValueHistory(filterExp *pb.FilterExpressions_FilterExpression) return `"` + timePeriod + `"` } -func getJsonFilterValueStaticMetadata(filterExp *pb.FilterExpressions_FilterExpression) string { - tree := filterExp.GetValue().GetValueStaticMetadata().GetTree() +func getJsonFilterValueMetadata(filterExp *pb.FilterExpressions_FilterExpression) string { + tree := filterExp.GetValue().GetValueMetadata().GetTree() return tree } -func getJsonFilterValueDynamicMetadata(filterExp *pb.FilterExpressions_FilterExpression) string { - metadataDomain := filterExp.GetValue().GetValueDynamicMetadata().GetMetadataDomain() - return metadataDomain -} - func createJSON(value string, key string) string { if len(value) > 0 { return `,"` + key + `":"` + value + `"` diff --git a/utils/pbutils.go b/utils/pbutils.go index af41fe27..97a08231 100644 --- a/utils/pbutils.go +++ b/utils/pbutils.go @@ -289,8 +289,7 @@ func createPbFilter_pb(index int, filterExpression map[string]interface{}, proto } if protoMessage.Method == pb.MessageMethod_SUBSCRIBE && (filterType == pb.FilterExpressions_FilterExpression_HISTORY || - filterType == pb.FilterExpressions_FilterExpression_STATIC_METADATA || - filterType == pb.FilterExpressions_FilterExpression_DYNAMIC_METADATA) { + filterType == pb.FilterExpressions_FilterExpression_METADATA) { Error.Printf("Filter function is not supported for SUBSCRIBE requests.") return } @@ -337,12 +336,8 @@ func createPbFilter_pb(index int, filterExpression map[string]interface{}, proto protoMessage.Get.Request.Filter.FilterExp[index].Value.ValueHistory = &pb.FilterExpressions_FilterExpression_FilterValue_HistoryValue{} protoMessage.Get.Request.Filter.FilterExp[index].Value.ValueHistory.TimePeriod = filterExpression["parameter"].(string) - case pb.FilterExpressions_FilterExpression_STATIC_METADATA: + case pb.FilterExpressions_FilterExpression_METADATA: Warning.Printf("Filter type is not supported by protobuf compression.") - case pb.FilterExpressions_FilterExpression_DYNAMIC_METADATA: - protoMessage.Get.Request.Filter.FilterExp[index].Value.ValueDynamicMetadata = - &pb.FilterExpressions_FilterExpression_FilterValue_DynamicMetadataValue{} - protoMessage.Get.Request.Filter.FilterExp[index].Value.ValueDynamicMetadata.MetadataDomain = filterExpression["parameter"].(string) default: Error.Printf("Filter type is unknown.") } @@ -426,12 +421,10 @@ func getFilterType_pb(filterType string) pb.FilterExpressions_FilterExpression_F return pb.FilterExpressions_FilterExpression_CURVELOG case "history": return pb.FilterExpressions_FilterExpression_HISTORY - case "static-metadata": - return pb.FilterExpressions_FilterExpression_STATIC_METADATA - case "dynamic-metadata": - return pb.FilterExpressions_FilterExpression_DYNAMIC_METADATA + case "metadata": + return pb.FilterExpressions_FilterExpression_METADATA } - return pb.FilterExpressions_FilterExpression_DYNAMIC_METADATA + 100 //undefined filter type + return pb.FilterExpressions_FilterExpression_METADATA + 100 //undefined filter type } func createSubscribePb(protoMessage *pb.ProtobufMessage, messageMap map[string]interface{}, mType pb.MessageType) { @@ -716,11 +709,8 @@ func getJsonFilter_pb(protoMessage *pb.ProtobufMessage, mMethod pb.MessageMethod fType = "history" value = getJsonFilterValueHistory_pb(filterExp[0]) case 6: - fType = "static-metadata" - value = getJsonFilterValueStaticMetadata_pb(filterExp[0]) - case 7: - fType = "dynamic-metadata" - value = getJsonFilterValueDynamicMetadata_pb(filterExp[0]) + fType = "metadata" + value = getJsonFilterValueMetadata_pb(filterExp[0]) } return `,"filter":{"type":"` + fType + `","parameter":` + value + `}` } @@ -781,16 +771,11 @@ func getJsonFilterValueHistory_pb(filterExp *pb.FilterExpressions_FilterExpressi return `"` + timePeriod + `"` } -func getJsonFilterValueStaticMetadata_pb(filterExp *pb.FilterExpressions_FilterExpression) string { - tree := filterExp.GetValue().GetValueStaticMetadata().GetTree() +func getJsonFilterValueMetadata_pb(filterExp *pb.FilterExpressions_FilterExpression) string { + tree := filterExp.GetValue().GetValueMetadata().GetTree() return tree } -func getJsonFilterValueDynamicMetadata_pb(filterExp *pb.FilterExpressions_FilterExpression) string { - metadataDomain := filterExp.GetValue().GetValueDynamicMetadata().GetMetadataDomain() - return metadataDomain -} - func getJsonAuthorization(protoMessage *pb.ProtobufMessage, mMethod pb.MessageMethod, mType pb.MessageType) string { authorization := "" value := ""