diff --git a/protobuf/video/sfu/event/events.pb.go b/protobuf/video/sfu/event/events.pb.go index 1f518295..3deae564 100644 --- a/protobuf/video/sfu/event/events.pb.go +++ b/protobuf/video/sfu/event/events.pb.go @@ -71,7 +71,7 @@ func (x VideoLayerSetting_Priority) Number() protoreflect.EnumNumber { // Deprecated: Use VideoLayerSetting_Priority.Descriptor instead. func (VideoLayerSetting_Priority) EnumDescriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{26, 0} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{27, 0} } // SFUEvent is a message that is sent from the SFU to the client. @@ -667,6 +667,7 @@ type SfuRequest struct { // // *SfuRequest_JoinRequest // *SfuRequest_HealthCheckRequest + // *SfuRequest_LeaveCallRequest RequestPayload isSfuRequest_RequestPayload `protobuf_oneof:"request_payload"` } @@ -723,6 +724,13 @@ func (x *SfuRequest) GetHealthCheckRequest() *HealthCheckRequest { return nil } +func (x *SfuRequest) GetLeaveCallRequest() *LeaveCallRequest { + if x, ok := x.GetRequestPayload().(*SfuRequest_LeaveCallRequest); ok { + return x.LeaveCallRequest + } + return nil +} + type isSfuRequest_RequestPayload interface { isSfuRequest_RequestPayload() } @@ -735,10 +743,71 @@ type SfuRequest_HealthCheckRequest struct { HealthCheckRequest *HealthCheckRequest `protobuf:"bytes,2,opt,name=health_check_request,json=healthCheckRequest,proto3,oneof"` } +type SfuRequest_LeaveCallRequest struct { + LeaveCallRequest *LeaveCallRequest `protobuf:"bytes,3,opt,name=leave_call_request,json=leaveCallRequest,proto3,oneof"` +} + func (*SfuRequest_JoinRequest) isSfuRequest_RequestPayload() {} func (*SfuRequest_HealthCheckRequest) isSfuRequest_RequestPayload() {} +func (*SfuRequest_LeaveCallRequest) isSfuRequest_RequestPayload() {} + +type LeaveCallRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *LeaveCallRequest) Reset() { + *x = LeaveCallRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_event_events_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveCallRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveCallRequest) ProtoMessage() {} + +func (x *LeaveCallRequest) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_event_events_proto_msgTypes[6] + 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 LeaveCallRequest.ProtoReflect.Descriptor instead. +func (*LeaveCallRequest) Descriptor() ([]byte, []int) { + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{6} +} + +func (x *LeaveCallRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *LeaveCallRequest) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + type HealthCheckRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -748,7 +817,7 @@ type HealthCheckRequest struct { func (x *HealthCheckRequest) Reset() { *x = HealthCheckRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[6] + mi := &file_video_sfu_event_events_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -761,7 +830,7 @@ func (x *HealthCheckRequest) String() string { func (*HealthCheckRequest) ProtoMessage() {} func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[6] + mi := &file_video_sfu_event_events_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -774,7 +843,7 @@ func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HealthCheckRequest.ProtoReflect.Descriptor instead. func (*HealthCheckRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{6} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{7} } type HealthCheckResponse struct { @@ -788,7 +857,7 @@ type HealthCheckResponse struct { func (x *HealthCheckResponse) Reset() { *x = HealthCheckResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[7] + mi := &file_video_sfu_event_events_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -801,7 +870,7 @@ func (x *HealthCheckResponse) String() string { func (*HealthCheckResponse) ProtoMessage() {} func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[7] + mi := &file_video_sfu_event_events_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -814,7 +883,7 @@ func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HealthCheckResponse.ProtoReflect.Descriptor instead. func (*HealthCheckResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{7} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{8} } func (x *HealthCheckResponse) GetParticipantCount() *models.ParticipantCount { @@ -843,7 +912,7 @@ type TrackPublished struct { func (x *TrackPublished) Reset() { *x = TrackPublished{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[8] + mi := &file_video_sfu_event_events_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -856,7 +925,7 @@ func (x *TrackPublished) String() string { func (*TrackPublished) ProtoMessage() {} func (x *TrackPublished) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[8] + mi := &file_video_sfu_event_events_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -869,7 +938,7 @@ func (x *TrackPublished) ProtoReflect() protoreflect.Message { // Deprecated: Use TrackPublished.ProtoReflect.Descriptor instead. func (*TrackPublished) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{8} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{9} } func (x *TrackPublished) GetUserId() string { @@ -920,7 +989,7 @@ type TrackUnpublished struct { func (x *TrackUnpublished) Reset() { *x = TrackUnpublished{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[9] + mi := &file_video_sfu_event_events_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -933,7 +1002,7 @@ func (x *TrackUnpublished) String() string { func (*TrackUnpublished) ProtoMessage() {} func (x *TrackUnpublished) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[9] + mi := &file_video_sfu_event_events_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -946,7 +1015,7 @@ func (x *TrackUnpublished) ProtoReflect() protoreflect.Message { // Deprecated: Use TrackUnpublished.ProtoReflect.Descriptor instead. func (*TrackUnpublished) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{9} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{10} } func (x *TrackUnpublished) GetUserId() string { @@ -1012,7 +1081,7 @@ type JoinRequest struct { func (x *JoinRequest) Reset() { *x = JoinRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[10] + mi := &file_video_sfu_event_events_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1025,7 +1094,7 @@ func (x *JoinRequest) String() string { func (*JoinRequest) ProtoMessage() {} func (x *JoinRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[10] + mi := &file_video_sfu_event_events_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1038,7 +1107,7 @@ func (x *JoinRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use JoinRequest.ProtoReflect.Descriptor instead. func (*JoinRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{10} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{11} } func (x *JoinRequest) GetToken() string { @@ -1096,7 +1165,7 @@ type Migration struct { func (x *Migration) Reset() { *x = Migration{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[11] + mi := &file_video_sfu_event_events_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1109,7 +1178,7 @@ func (x *Migration) String() string { func (*Migration) ProtoMessage() {} func (x *Migration) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[11] + mi := &file_video_sfu_event_events_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1122,7 +1191,7 @@ func (x *Migration) ProtoReflect() protoreflect.Message { // Deprecated: Use Migration.ProtoReflect.Descriptor instead. func (*Migration) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{11} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{12} } func (x *Migration) GetFromSfuId() string { @@ -1158,7 +1227,7 @@ type JoinResponse struct { func (x *JoinResponse) Reset() { *x = JoinResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[12] + mi := &file_video_sfu_event_events_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1171,7 +1240,7 @@ func (x *JoinResponse) String() string { func (*JoinResponse) ProtoMessage() {} func (x *JoinResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[12] + mi := &file_video_sfu_event_events_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1184,7 +1253,7 @@ func (x *JoinResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use JoinResponse.ProtoReflect.Descriptor instead. func (*JoinResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{12} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{13} } func (x *JoinResponse) GetCallState() *models.CallState { @@ -1214,7 +1283,7 @@ type ParticipantJoined struct { func (x *ParticipantJoined) Reset() { *x = ParticipantJoined{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[13] + mi := &file_video_sfu_event_events_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1227,7 +1296,7 @@ func (x *ParticipantJoined) String() string { func (*ParticipantJoined) ProtoMessage() {} func (x *ParticipantJoined) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[13] + mi := &file_video_sfu_event_events_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1240,7 +1309,7 @@ func (x *ParticipantJoined) ProtoReflect() protoreflect.Message { // Deprecated: Use ParticipantJoined.ProtoReflect.Descriptor instead. func (*ParticipantJoined) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{13} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{14} } func (x *ParticipantJoined) GetCallCid() string { @@ -1270,7 +1339,7 @@ type ParticipantLeft struct { func (x *ParticipantLeft) Reset() { *x = ParticipantLeft{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[14] + mi := &file_video_sfu_event_events_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1283,7 +1352,7 @@ func (x *ParticipantLeft) String() string { func (*ParticipantLeft) ProtoMessage() {} func (x *ParticipantLeft) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[14] + mi := &file_video_sfu_event_events_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1296,7 +1365,7 @@ func (x *ParticipantLeft) ProtoReflect() protoreflect.Message { // Deprecated: Use ParticipantLeft.ProtoReflect.Descriptor instead. func (*ParticipantLeft) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{14} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{15} } func (x *ParticipantLeft) GetCallCid() string { @@ -1326,7 +1395,7 @@ type ParticipantUpdated struct { func (x *ParticipantUpdated) Reset() { *x = ParticipantUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[15] + mi := &file_video_sfu_event_events_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1339,7 +1408,7 @@ func (x *ParticipantUpdated) String() string { func (*ParticipantUpdated) ProtoMessage() {} func (x *ParticipantUpdated) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[15] + mi := &file_video_sfu_event_events_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1352,7 +1421,7 @@ func (x *ParticipantUpdated) ProtoReflect() protoreflect.Message { // Deprecated: Use ParticipantUpdated.ProtoReflect.Descriptor instead. func (*ParticipantUpdated) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{15} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{16} } func (x *ParticipantUpdated) GetCallCid() string { @@ -1382,7 +1451,7 @@ type SubscriberOffer struct { func (x *SubscriberOffer) Reset() { *x = SubscriberOffer{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[16] + mi := &file_video_sfu_event_events_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1395,7 +1464,7 @@ func (x *SubscriberOffer) String() string { func (*SubscriberOffer) ProtoMessage() {} func (x *SubscriberOffer) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[16] + mi := &file_video_sfu_event_events_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1408,7 +1477,7 @@ func (x *SubscriberOffer) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscriberOffer.ProtoReflect.Descriptor instead. func (*SubscriberOffer) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{16} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{17} } func (x *SubscriberOffer) GetIceRestart() bool { @@ -1436,7 +1505,7 @@ type PublisherAnswer struct { func (x *PublisherAnswer) Reset() { *x = PublisherAnswer{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[17] + mi := &file_video_sfu_event_events_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1449,7 +1518,7 @@ func (x *PublisherAnswer) String() string { func (*PublisherAnswer) ProtoMessage() {} func (x *PublisherAnswer) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[17] + mi := &file_video_sfu_event_events_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1462,7 +1531,7 @@ func (x *PublisherAnswer) ProtoReflect() protoreflect.Message { // Deprecated: Use PublisherAnswer.ProtoReflect.Descriptor instead. func (*PublisherAnswer) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{17} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{18} } func (x *PublisherAnswer) GetSdp() string { @@ -1485,7 +1554,7 @@ type ConnectionQualityChanged struct { func (x *ConnectionQualityChanged) Reset() { *x = ConnectionQualityChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[18] + mi := &file_video_sfu_event_events_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1498,7 +1567,7 @@ func (x *ConnectionQualityChanged) String() string { func (*ConnectionQualityChanged) ProtoMessage() {} func (x *ConnectionQualityChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[18] + mi := &file_video_sfu_event_events_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1511,7 +1580,7 @@ func (x *ConnectionQualityChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectionQualityChanged.ProtoReflect.Descriptor instead. func (*ConnectionQualityChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{18} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{19} } func (x *ConnectionQualityChanged) GetConnectionQualityUpdates() []*ConnectionQualityInfo { @@ -1534,7 +1603,7 @@ type ConnectionQualityInfo struct { func (x *ConnectionQualityInfo) Reset() { *x = ConnectionQualityInfo{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[19] + mi := &file_video_sfu_event_events_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1547,7 +1616,7 @@ func (x *ConnectionQualityInfo) String() string { func (*ConnectionQualityInfo) ProtoMessage() {} func (x *ConnectionQualityInfo) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[19] + mi := &file_video_sfu_event_events_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1560,7 +1629,7 @@ func (x *ConnectionQualityInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectionQualityInfo.ProtoReflect.Descriptor instead. func (*ConnectionQualityInfo) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{19} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{20} } func (x *ConnectionQualityInfo) GetUserId() string { @@ -1597,7 +1666,7 @@ type DominantSpeakerChanged struct { func (x *DominantSpeakerChanged) Reset() { *x = DominantSpeakerChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[20] + mi := &file_video_sfu_event_events_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1610,7 +1679,7 @@ func (x *DominantSpeakerChanged) String() string { func (*DominantSpeakerChanged) ProtoMessage() {} func (x *DominantSpeakerChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[20] + mi := &file_video_sfu_event_events_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1623,7 +1692,7 @@ func (x *DominantSpeakerChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use DominantSpeakerChanged.ProtoReflect.Descriptor instead. func (*DominantSpeakerChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{20} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{21} } func (x *DominantSpeakerChanged) GetUserId() string { @@ -1655,7 +1724,7 @@ type AudioLevel struct { func (x *AudioLevel) Reset() { *x = AudioLevel{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[21] + mi := &file_video_sfu_event_events_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1668,7 +1737,7 @@ func (x *AudioLevel) String() string { func (*AudioLevel) ProtoMessage() {} func (x *AudioLevel) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[21] + mi := &file_video_sfu_event_events_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1681,7 +1750,7 @@ func (x *AudioLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioLevel.ProtoReflect.Descriptor instead. func (*AudioLevel) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{21} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{22} } func (x *AudioLevel) GetUserId() string { @@ -1724,7 +1793,7 @@ type AudioLevelChanged struct { func (x *AudioLevelChanged) Reset() { *x = AudioLevelChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[22] + mi := &file_video_sfu_event_events_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1737,7 +1806,7 @@ func (x *AudioLevelChanged) String() string { func (*AudioLevelChanged) ProtoMessage() {} func (x *AudioLevelChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[22] + mi := &file_video_sfu_event_events_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1750,7 +1819,7 @@ func (x *AudioLevelChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioLevelChanged.ProtoReflect.Descriptor instead. func (*AudioLevelChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{22} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{23} } func (x *AudioLevelChanged) GetAudioLevels() []*AudioLevel { @@ -1771,7 +1840,7 @@ type AudioMediaRequest struct { func (x *AudioMediaRequest) Reset() { *x = AudioMediaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[23] + mi := &file_video_sfu_event_events_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1784,7 +1853,7 @@ func (x *AudioMediaRequest) String() string { func (*AudioMediaRequest) ProtoMessage() {} func (x *AudioMediaRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[23] + mi := &file_video_sfu_event_events_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1797,7 +1866,7 @@ func (x *AudioMediaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioMediaRequest.ProtoReflect.Descriptor instead. func (*AudioMediaRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{23} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{24} } func (x *AudioMediaRequest) GetChannelCount() int32 { @@ -1819,7 +1888,7 @@ type AudioSender struct { func (x *AudioSender) Reset() { *x = AudioSender{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[24] + mi := &file_video_sfu_event_events_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1832,7 +1901,7 @@ func (x *AudioSender) String() string { func (*AudioSender) ProtoMessage() {} func (x *AudioSender) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[24] + mi := &file_video_sfu_event_events_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1845,7 +1914,7 @@ func (x *AudioSender) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSender.ProtoReflect.Descriptor instead. func (*AudioSender) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{24} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{25} } func (x *AudioSender) GetMediaRequest() *AudioMediaRequest { @@ -1875,7 +1944,7 @@ type VideoMediaRequest struct { func (x *VideoMediaRequest) Reset() { *x = VideoMediaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[25] + mi := &file_video_sfu_event_events_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1888,7 +1957,7 @@ func (x *VideoMediaRequest) String() string { func (*VideoMediaRequest) ProtoMessage() {} func (x *VideoMediaRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[25] + mi := &file_video_sfu_event_events_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1901,7 +1970,7 @@ func (x *VideoMediaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoMediaRequest.ProtoReflect.Descriptor instead. func (*VideoMediaRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{25} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{26} } func (x *VideoMediaRequest) GetIdealHeight() int32 { @@ -1945,7 +2014,7 @@ type VideoLayerSetting struct { func (x *VideoLayerSetting) Reset() { *x = VideoLayerSetting{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[26] + mi := &file_video_sfu_event_events_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1958,7 +2027,7 @@ func (x *VideoLayerSetting) String() string { func (*VideoLayerSetting) ProtoMessage() {} func (x *VideoLayerSetting) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[26] + mi := &file_video_sfu_event_events_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1971,7 +2040,7 @@ func (x *VideoLayerSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoLayerSetting.ProtoReflect.Descriptor instead. func (*VideoLayerSetting) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{26} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{27} } func (x *VideoLayerSetting) GetName() string { @@ -2036,7 +2105,7 @@ type VideoSender struct { func (x *VideoSender) Reset() { *x = VideoSender{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[27] + mi := &file_video_sfu_event_events_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2049,7 +2118,7 @@ func (x *VideoSender) String() string { func (*VideoSender) ProtoMessage() {} func (x *VideoSender) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[27] + mi := &file_video_sfu_event_events_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2062,7 +2131,7 @@ func (x *VideoSender) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoSender.ProtoReflect.Descriptor instead. func (*VideoSender) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{27} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{28} } func (x *VideoSender) GetMediaRequest() *VideoMediaRequest { @@ -2099,7 +2168,7 @@ type ChangePublishQuality struct { func (x *ChangePublishQuality) Reset() { *x = ChangePublishQuality{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[28] + mi := &file_video_sfu_event_events_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2112,7 +2181,7 @@ func (x *ChangePublishQuality) String() string { func (*ChangePublishQuality) ProtoMessage() {} func (x *ChangePublishQuality) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[28] + mi := &file_video_sfu_event_events_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2125,7 +2194,7 @@ func (x *ChangePublishQuality) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangePublishQuality.ProtoReflect.Descriptor instead. func (*ChangePublishQuality) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{28} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{29} } func (x *ChangePublishQuality) GetAudioSenders() []*AudioSender { @@ -2170,7 +2239,7 @@ type CallGrantsUpdated struct { func (x *CallGrantsUpdated) Reset() { *x = CallGrantsUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[29] + mi := &file_video_sfu_event_events_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2183,7 +2252,7 @@ func (x *CallGrantsUpdated) String() string { func (*CallGrantsUpdated) ProtoMessage() {} func (x *CallGrantsUpdated) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[29] + mi := &file_video_sfu_event_events_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2196,7 +2265,7 @@ func (x *CallGrantsUpdated) ProtoReflect() protoreflect.Message { // Deprecated: Use CallGrantsUpdated.ProtoReflect.Descriptor instead. func (*CallGrantsUpdated) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{29} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{30} } func (x *CallGrantsUpdated) GetCurrentGrants() *models.CallGrants { @@ -2226,7 +2295,7 @@ type GoAway struct { func (x *GoAway) Reset() { *x = GoAway{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[30] + mi := &file_video_sfu_event_events_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2239,7 +2308,7 @@ func (x *GoAway) String() string { func (*GoAway) ProtoMessage() {} func (x *GoAway) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[30] + mi := &file_video_sfu_event_events_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2252,7 +2321,7 @@ func (x *GoAway) ProtoReflect() protoreflect.Message { // Deprecated: Use GoAway.ProtoReflect.Descriptor instead. func (*GoAway) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{30} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{31} } func (x *GoAway) GetReason() models.GoAwayReason { @@ -2275,7 +2344,7 @@ type CallEnded struct { func (x *CallEnded) Reset() { *x = CallEnded{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[31] + mi := &file_video_sfu_event_events_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2288,7 +2357,7 @@ func (x *CallEnded) String() string { func (*CallEnded) ProtoMessage() {} func (x *CallEnded) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[31] + mi := &file_video_sfu_event_events_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2301,7 +2370,7 @@ func (x *CallEnded) ProtoReflect() protoreflect.Message { // Deprecated: Use CallEnded.ProtoReflect.Descriptor instead. func (*CallEnded) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{31} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{32} } func (x *CallEnded) GetReason() models.CallEndedReason { @@ -2456,7 +2525,7 @@ var file_video_sfu_event_events_proto_rawDesc = []byte{ 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0a, 0x53, 0x66, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x70, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x0a, 0x53, 0x66, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, @@ -2467,249 +2536,260 @@ var file_video_sfu_event_events_proto_rawDesc = []byte{ 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x14, - 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x11, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xc8, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x12, 0x6c, + 0x65, 0x61, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x49, 0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76, + 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x13, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x56, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x8f, - 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x22, 0xa0, 0x02, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x72, 0x5f, 0x73, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x53, 0x64, 0x70, 0x12, 0x4d, 0x0a, 0x0e, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x6d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc8, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, + 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, - 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, - 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x66, 0x75, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x66, 0x75, 0x49, - 0x64, 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, - 0x12, 0x57, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x73, 0x0a, 0x0c, 0x4a, 0x6f, 0x69, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x61, 0x6c, - 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x76, - 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4a, 0x6f, 0x69, - 0x6e, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, - 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, - 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, - 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x12, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, - 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x12, 0x46, 0x0a, + 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x63, 0x65, 0x5f, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x22, 0x23, 0x0a, 0x0f, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, - 0x22, 0x87, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x6b, 0x0a, - 0x1a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x15, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x12, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0xa0, 0x02, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x53, 0x64, + 0x70, 0x12, 0x4d, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x3f, 0x0a, 0x09, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x52, + 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, + 0x66, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x6f, + 0x6d, 0x53, 0x66, 0x75, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, + 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x57, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, + 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x73, + 0x0a, 0x0c, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, + 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x22, 0x76, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, + 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x50, 0x0a, 0x16, 0x44, 0x6f, 0x6d, 0x69, 0x6e, - 0x61, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x0a, 0x41, 0x75, 0x64, - 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x70, - 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x5a, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0c, 0x61, - 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x73, 0x22, 0x38, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, - 0x0b, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0d, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, - 0x69, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, - 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, - 0x65, 0x63, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x61, - 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x69, 0x64, 0x65, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, - 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, - 0x69, 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x46, 0x72, 0x61, - 0x6d, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, - 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, - 0x61, 0x78, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, - 0x77, 0x6e, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x73, 0x63, 0x61, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x77, 0x6e, - 0x42, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, - 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, - 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0x67, 0x0a, - 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x49, 0x4f, - 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, - 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, - 0x15, 0x0a, 0x11, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x59, - 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x22, 0xd6, 0x01, 0x0a, 0x0b, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x0f, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, + 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x22, 0x77, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x5f, + 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x43, + 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x0f, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x1f, 0x0a, + 0x0b, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, + 0x22, 0x23, 0x0a, 0x0f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x73, 0x64, 0x70, 0x22, 0x87, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x12, 0x6b, 0x0a, 0x1a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, + 0xaa, 0x01, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x59, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x06, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, - 0xaa, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0d, 0x61, 0x75, 0x64, 0x69, - 0x6f, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x50, 0x0a, 0x16, + 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x7b, + 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, + 0x5f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x69, 0x73, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x5a, 0x0a, 0x11, 0x41, + 0x75, 0x64, 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x45, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x22, 0x38, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, + 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, + 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x64, 0x65, + 0x61, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x11, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x37, + 0x0a, 0x18, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x15, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x42, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, - 0x43, 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x0d, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x06, 0x47, 0x6f, 0x41, 0x77, 0x61, - 0x79, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x47, 0x6f, 0x41, 0x77, - 0x61, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x22, 0x4d, 0x0a, 0x09, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x40, 0x0a, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, - 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, - 0x64, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x31, 0x50, 0x01, - 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, - 0x66, 0x75, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0xaa, 0x02, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x66, 0x75, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x23, 0x0a, + 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x22, 0x67, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, + 0x0a, 0x19, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, + 0x13, 0x0a, 0x0f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, + 0x55, 0x4d, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, + 0x5f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x22, 0xd6, 0x01, 0x0a, 0x0b, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x63, + 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, + 0x63, 0x12, 0x41, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x48, 0x0a, + 0x0d, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, + 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x73, 0x22, 0x79, 0x0a, 0x11, 0x43, 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, + 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x73, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x06, + 0x47, 0x6f, 0x41, 0x77, 0x61, 0x79, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2e, 0x47, 0x6f, 0x41, 0x77, 0x61, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x09, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, + 0x65, 0x64, 0x12, 0x40, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, + 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x64, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0xaa, 0x02, 0x1a, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x66, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -2725,7 +2805,7 @@ func file_video_sfu_event_events_proto_rawDescGZIP() []byte { } var file_video_sfu_event_events_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_video_sfu_event_events_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_video_sfu_event_events_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_video_sfu_event_events_proto_goTypes = []interface{}{ (VideoLayerSetting_Priority)(0), // 0: stream.video.sfu.event.VideoLayerSetting.Priority (*SfuEvent)(nil), // 1: stream.video.sfu.event.SfuEvent @@ -2734,113 +2814,115 @@ var file_video_sfu_event_events_proto_goTypes = []interface{}{ (*ICETrickle)(nil), // 4: stream.video.sfu.event.ICETrickle (*ICERestart)(nil), // 5: stream.video.sfu.event.ICERestart (*SfuRequest)(nil), // 6: stream.video.sfu.event.SfuRequest - (*HealthCheckRequest)(nil), // 7: stream.video.sfu.event.HealthCheckRequest - (*HealthCheckResponse)(nil), // 8: stream.video.sfu.event.HealthCheckResponse - (*TrackPublished)(nil), // 9: stream.video.sfu.event.TrackPublished - (*TrackUnpublished)(nil), // 10: stream.video.sfu.event.TrackUnpublished - (*JoinRequest)(nil), // 11: stream.video.sfu.event.JoinRequest - (*Migration)(nil), // 12: stream.video.sfu.event.Migration - (*JoinResponse)(nil), // 13: stream.video.sfu.event.JoinResponse - (*ParticipantJoined)(nil), // 14: stream.video.sfu.event.ParticipantJoined - (*ParticipantLeft)(nil), // 15: stream.video.sfu.event.ParticipantLeft - (*ParticipantUpdated)(nil), // 16: stream.video.sfu.event.ParticipantUpdated - (*SubscriberOffer)(nil), // 17: stream.video.sfu.event.SubscriberOffer - (*PublisherAnswer)(nil), // 18: stream.video.sfu.event.PublisherAnswer - (*ConnectionQualityChanged)(nil), // 19: stream.video.sfu.event.ConnectionQualityChanged - (*ConnectionQualityInfo)(nil), // 20: stream.video.sfu.event.ConnectionQualityInfo - (*DominantSpeakerChanged)(nil), // 21: stream.video.sfu.event.DominantSpeakerChanged - (*AudioLevel)(nil), // 22: stream.video.sfu.event.AudioLevel - (*AudioLevelChanged)(nil), // 23: stream.video.sfu.event.AudioLevelChanged - (*AudioMediaRequest)(nil), // 24: stream.video.sfu.event.AudioMediaRequest - (*AudioSender)(nil), // 25: stream.video.sfu.event.AudioSender - (*VideoMediaRequest)(nil), // 26: stream.video.sfu.event.VideoMediaRequest - (*VideoLayerSetting)(nil), // 27: stream.video.sfu.event.VideoLayerSetting - (*VideoSender)(nil), // 28: stream.video.sfu.event.VideoSender - (*ChangePublishQuality)(nil), // 29: stream.video.sfu.event.ChangePublishQuality - (*CallGrantsUpdated)(nil), // 30: stream.video.sfu.event.CallGrantsUpdated - (*GoAway)(nil), // 31: stream.video.sfu.event.GoAway - (*CallEnded)(nil), // 32: stream.video.sfu.event.CallEnded - (*models.ICETrickle)(nil), // 33: stream.video.sfu.models.ICETrickle - (*models.Pin)(nil), // 34: stream.video.sfu.models.Pin - (*models.Error)(nil), // 35: stream.video.sfu.models.Error - (models.WebsocketReconnectStrategy)(0), // 36: stream.video.sfu.models.WebsocketReconnectStrategy - (models.PeerType)(0), // 37: stream.video.sfu.models.PeerType - (*models.ParticipantCount)(nil), // 38: stream.video.sfu.models.ParticipantCount - (models.TrackType)(0), // 39: stream.video.sfu.models.TrackType - (*models.Participant)(nil), // 40: stream.video.sfu.models.Participant - (models.TrackUnpublishReason)(0), // 41: stream.video.sfu.models.TrackUnpublishReason - (*models.ClientDetails)(nil), // 42: stream.video.sfu.models.ClientDetails - (*models.TrackInfo)(nil), // 43: stream.video.sfu.models.TrackInfo - (*signal_rpc.TrackSubscriptionDetails)(nil), // 44: stream.video.sfu.signal.TrackSubscriptionDetails - (*models.CallState)(nil), // 45: stream.video.sfu.models.CallState - (models.ConnectionQuality)(0), // 46: stream.video.sfu.models.ConnectionQuality - (*models.Codec)(nil), // 47: stream.video.sfu.models.Codec - (*models.CallGrants)(nil), // 48: stream.video.sfu.models.CallGrants - (models.GoAwayReason)(0), // 49: stream.video.sfu.models.GoAwayReason - (models.CallEndedReason)(0), // 50: stream.video.sfu.models.CallEndedReason + (*LeaveCallRequest)(nil), // 7: stream.video.sfu.event.LeaveCallRequest + (*HealthCheckRequest)(nil), // 8: stream.video.sfu.event.HealthCheckRequest + (*HealthCheckResponse)(nil), // 9: stream.video.sfu.event.HealthCheckResponse + (*TrackPublished)(nil), // 10: stream.video.sfu.event.TrackPublished + (*TrackUnpublished)(nil), // 11: stream.video.sfu.event.TrackUnpublished + (*JoinRequest)(nil), // 12: stream.video.sfu.event.JoinRequest + (*Migration)(nil), // 13: stream.video.sfu.event.Migration + (*JoinResponse)(nil), // 14: stream.video.sfu.event.JoinResponse + (*ParticipantJoined)(nil), // 15: stream.video.sfu.event.ParticipantJoined + (*ParticipantLeft)(nil), // 16: stream.video.sfu.event.ParticipantLeft + (*ParticipantUpdated)(nil), // 17: stream.video.sfu.event.ParticipantUpdated + (*SubscriberOffer)(nil), // 18: stream.video.sfu.event.SubscriberOffer + (*PublisherAnswer)(nil), // 19: stream.video.sfu.event.PublisherAnswer + (*ConnectionQualityChanged)(nil), // 20: stream.video.sfu.event.ConnectionQualityChanged + (*ConnectionQualityInfo)(nil), // 21: stream.video.sfu.event.ConnectionQualityInfo + (*DominantSpeakerChanged)(nil), // 22: stream.video.sfu.event.DominantSpeakerChanged + (*AudioLevel)(nil), // 23: stream.video.sfu.event.AudioLevel + (*AudioLevelChanged)(nil), // 24: stream.video.sfu.event.AudioLevelChanged + (*AudioMediaRequest)(nil), // 25: stream.video.sfu.event.AudioMediaRequest + (*AudioSender)(nil), // 26: stream.video.sfu.event.AudioSender + (*VideoMediaRequest)(nil), // 27: stream.video.sfu.event.VideoMediaRequest + (*VideoLayerSetting)(nil), // 28: stream.video.sfu.event.VideoLayerSetting + (*VideoSender)(nil), // 29: stream.video.sfu.event.VideoSender + (*ChangePublishQuality)(nil), // 30: stream.video.sfu.event.ChangePublishQuality + (*CallGrantsUpdated)(nil), // 31: stream.video.sfu.event.CallGrantsUpdated + (*GoAway)(nil), // 32: stream.video.sfu.event.GoAway + (*CallEnded)(nil), // 33: stream.video.sfu.event.CallEnded + (*models.ICETrickle)(nil), // 34: stream.video.sfu.models.ICETrickle + (*models.Pin)(nil), // 35: stream.video.sfu.models.Pin + (*models.Error)(nil), // 36: stream.video.sfu.models.Error + (models.WebsocketReconnectStrategy)(0), // 37: stream.video.sfu.models.WebsocketReconnectStrategy + (models.PeerType)(0), // 38: stream.video.sfu.models.PeerType + (*models.ParticipantCount)(nil), // 39: stream.video.sfu.models.ParticipantCount + (models.TrackType)(0), // 40: stream.video.sfu.models.TrackType + (*models.Participant)(nil), // 41: stream.video.sfu.models.Participant + (models.TrackUnpublishReason)(0), // 42: stream.video.sfu.models.TrackUnpublishReason + (*models.ClientDetails)(nil), // 43: stream.video.sfu.models.ClientDetails + (*models.TrackInfo)(nil), // 44: stream.video.sfu.models.TrackInfo + (*signal_rpc.TrackSubscriptionDetails)(nil), // 45: stream.video.sfu.signal.TrackSubscriptionDetails + (*models.CallState)(nil), // 46: stream.video.sfu.models.CallState + (models.ConnectionQuality)(0), // 47: stream.video.sfu.models.ConnectionQuality + (*models.Codec)(nil), // 48: stream.video.sfu.models.Codec + (*models.CallGrants)(nil), // 49: stream.video.sfu.models.CallGrants + (models.GoAwayReason)(0), // 50: stream.video.sfu.models.GoAwayReason + (models.CallEndedReason)(0), // 51: stream.video.sfu.models.CallEndedReason } var file_video_sfu_event_events_proto_depIdxs = []int32{ - 17, // 0: stream.video.sfu.event.SfuEvent.subscriber_offer:type_name -> stream.video.sfu.event.SubscriberOffer - 18, // 1: stream.video.sfu.event.SfuEvent.publisher_answer:type_name -> stream.video.sfu.event.PublisherAnswer - 19, // 2: stream.video.sfu.event.SfuEvent.connection_quality_changed:type_name -> stream.video.sfu.event.ConnectionQualityChanged - 23, // 3: stream.video.sfu.event.SfuEvent.audio_level_changed:type_name -> stream.video.sfu.event.AudioLevelChanged - 33, // 4: stream.video.sfu.event.SfuEvent.ice_trickle:type_name -> stream.video.sfu.models.ICETrickle - 29, // 5: stream.video.sfu.event.SfuEvent.change_publish_quality:type_name -> stream.video.sfu.event.ChangePublishQuality - 14, // 6: stream.video.sfu.event.SfuEvent.participant_joined:type_name -> stream.video.sfu.event.ParticipantJoined - 15, // 7: stream.video.sfu.event.SfuEvent.participant_left:type_name -> stream.video.sfu.event.ParticipantLeft - 21, // 8: stream.video.sfu.event.SfuEvent.dominant_speaker_changed:type_name -> stream.video.sfu.event.DominantSpeakerChanged - 13, // 9: stream.video.sfu.event.SfuEvent.join_response:type_name -> stream.video.sfu.event.JoinResponse - 8, // 10: stream.video.sfu.event.SfuEvent.health_check_response:type_name -> stream.video.sfu.event.HealthCheckResponse - 9, // 11: stream.video.sfu.event.SfuEvent.track_published:type_name -> stream.video.sfu.event.TrackPublished - 10, // 12: stream.video.sfu.event.SfuEvent.track_unpublished:type_name -> stream.video.sfu.event.TrackUnpublished + 18, // 0: stream.video.sfu.event.SfuEvent.subscriber_offer:type_name -> stream.video.sfu.event.SubscriberOffer + 19, // 1: stream.video.sfu.event.SfuEvent.publisher_answer:type_name -> stream.video.sfu.event.PublisherAnswer + 20, // 2: stream.video.sfu.event.SfuEvent.connection_quality_changed:type_name -> stream.video.sfu.event.ConnectionQualityChanged + 24, // 3: stream.video.sfu.event.SfuEvent.audio_level_changed:type_name -> stream.video.sfu.event.AudioLevelChanged + 34, // 4: stream.video.sfu.event.SfuEvent.ice_trickle:type_name -> stream.video.sfu.models.ICETrickle + 30, // 5: stream.video.sfu.event.SfuEvent.change_publish_quality:type_name -> stream.video.sfu.event.ChangePublishQuality + 15, // 6: stream.video.sfu.event.SfuEvent.participant_joined:type_name -> stream.video.sfu.event.ParticipantJoined + 16, // 7: stream.video.sfu.event.SfuEvent.participant_left:type_name -> stream.video.sfu.event.ParticipantLeft + 22, // 8: stream.video.sfu.event.SfuEvent.dominant_speaker_changed:type_name -> stream.video.sfu.event.DominantSpeakerChanged + 14, // 9: stream.video.sfu.event.SfuEvent.join_response:type_name -> stream.video.sfu.event.JoinResponse + 9, // 10: stream.video.sfu.event.SfuEvent.health_check_response:type_name -> stream.video.sfu.event.HealthCheckResponse + 10, // 11: stream.video.sfu.event.SfuEvent.track_published:type_name -> stream.video.sfu.event.TrackPublished + 11, // 12: stream.video.sfu.event.SfuEvent.track_unpublished:type_name -> stream.video.sfu.event.TrackUnpublished 3, // 13: stream.video.sfu.event.SfuEvent.error:type_name -> stream.video.sfu.event.Error - 30, // 14: stream.video.sfu.event.SfuEvent.call_grants_updated:type_name -> stream.video.sfu.event.CallGrantsUpdated - 31, // 15: stream.video.sfu.event.SfuEvent.go_away:type_name -> stream.video.sfu.event.GoAway + 31, // 14: stream.video.sfu.event.SfuEvent.call_grants_updated:type_name -> stream.video.sfu.event.CallGrantsUpdated + 32, // 15: stream.video.sfu.event.SfuEvent.go_away:type_name -> stream.video.sfu.event.GoAway 5, // 16: stream.video.sfu.event.SfuEvent.ice_restart:type_name -> stream.video.sfu.event.ICERestart 2, // 17: stream.video.sfu.event.SfuEvent.pins_updated:type_name -> stream.video.sfu.event.PinsChanged - 32, // 18: stream.video.sfu.event.SfuEvent.call_ended:type_name -> stream.video.sfu.event.CallEnded - 16, // 19: stream.video.sfu.event.SfuEvent.participant_updated:type_name -> stream.video.sfu.event.ParticipantUpdated - 34, // 20: stream.video.sfu.event.PinsChanged.pins:type_name -> stream.video.sfu.models.Pin - 35, // 21: stream.video.sfu.event.Error.error:type_name -> stream.video.sfu.models.Error - 36, // 22: stream.video.sfu.event.Error.reconnect_strategy:type_name -> stream.video.sfu.models.WebsocketReconnectStrategy - 37, // 23: stream.video.sfu.event.ICETrickle.peer_type:type_name -> stream.video.sfu.models.PeerType - 37, // 24: stream.video.sfu.event.ICERestart.peer_type:type_name -> stream.video.sfu.models.PeerType - 11, // 25: stream.video.sfu.event.SfuRequest.join_request:type_name -> stream.video.sfu.event.JoinRequest - 7, // 26: stream.video.sfu.event.SfuRequest.health_check_request:type_name -> stream.video.sfu.event.HealthCheckRequest - 38, // 27: stream.video.sfu.event.HealthCheckResponse.participant_count:type_name -> stream.video.sfu.models.ParticipantCount - 39, // 28: stream.video.sfu.event.TrackPublished.type:type_name -> stream.video.sfu.models.TrackType - 40, // 29: stream.video.sfu.event.TrackPublished.participant:type_name -> stream.video.sfu.models.Participant - 39, // 30: stream.video.sfu.event.TrackUnpublished.type:type_name -> stream.video.sfu.models.TrackType - 41, // 31: stream.video.sfu.event.TrackUnpublished.cause:type_name -> stream.video.sfu.models.TrackUnpublishReason - 40, // 32: stream.video.sfu.event.TrackUnpublished.participant:type_name -> stream.video.sfu.models.Participant - 42, // 33: stream.video.sfu.event.JoinRequest.client_details:type_name -> stream.video.sfu.models.ClientDetails - 12, // 34: stream.video.sfu.event.JoinRequest.migration:type_name -> stream.video.sfu.event.Migration - 43, // 35: stream.video.sfu.event.Migration.announced_tracks:type_name -> stream.video.sfu.models.TrackInfo - 44, // 36: stream.video.sfu.event.Migration.subscriptions:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails - 45, // 37: stream.video.sfu.event.JoinResponse.call_state:type_name -> stream.video.sfu.models.CallState - 40, // 38: stream.video.sfu.event.ParticipantJoined.participant:type_name -> stream.video.sfu.models.Participant - 40, // 39: stream.video.sfu.event.ParticipantLeft.participant:type_name -> stream.video.sfu.models.Participant - 40, // 40: stream.video.sfu.event.ParticipantUpdated.participant:type_name -> stream.video.sfu.models.Participant - 20, // 41: stream.video.sfu.event.ConnectionQualityChanged.connection_quality_updates:type_name -> stream.video.sfu.event.ConnectionQualityInfo - 46, // 42: stream.video.sfu.event.ConnectionQualityInfo.connection_quality:type_name -> stream.video.sfu.models.ConnectionQuality - 22, // 43: stream.video.sfu.event.AudioLevelChanged.audio_levels:type_name -> stream.video.sfu.event.AudioLevel - 24, // 44: stream.video.sfu.event.AudioSender.media_request:type_name -> stream.video.sfu.event.AudioMediaRequest - 47, // 45: stream.video.sfu.event.AudioSender.codec:type_name -> stream.video.sfu.models.Codec - 0, // 46: stream.video.sfu.event.VideoLayerSetting.priority:type_name -> stream.video.sfu.event.VideoLayerSetting.Priority - 47, // 47: stream.video.sfu.event.VideoLayerSetting.codec:type_name -> stream.video.sfu.models.Codec - 26, // 48: stream.video.sfu.event.VideoSender.media_request:type_name -> stream.video.sfu.event.VideoMediaRequest - 47, // 49: stream.video.sfu.event.VideoSender.codec:type_name -> stream.video.sfu.models.Codec - 27, // 50: stream.video.sfu.event.VideoSender.layers:type_name -> stream.video.sfu.event.VideoLayerSetting - 25, // 51: stream.video.sfu.event.ChangePublishQuality.audio_senders:type_name -> stream.video.sfu.event.AudioSender - 28, // 52: stream.video.sfu.event.ChangePublishQuality.video_senders:type_name -> stream.video.sfu.event.VideoSender - 48, // 53: stream.video.sfu.event.CallGrantsUpdated.current_grants:type_name -> stream.video.sfu.models.CallGrants - 49, // 54: stream.video.sfu.event.GoAway.reason:type_name -> stream.video.sfu.models.GoAwayReason - 50, // 55: stream.video.sfu.event.CallEnded.reason:type_name -> stream.video.sfu.models.CallEndedReason - 56, // [56:56] is the sub-list for method output_type - 56, // [56:56] is the sub-list for method input_type - 56, // [56:56] is the sub-list for extension type_name - 56, // [56:56] is the sub-list for extension extendee - 0, // [0:56] is the sub-list for field type_name + 33, // 18: stream.video.sfu.event.SfuEvent.call_ended:type_name -> stream.video.sfu.event.CallEnded + 17, // 19: stream.video.sfu.event.SfuEvent.participant_updated:type_name -> stream.video.sfu.event.ParticipantUpdated + 35, // 20: stream.video.sfu.event.PinsChanged.pins:type_name -> stream.video.sfu.models.Pin + 36, // 21: stream.video.sfu.event.Error.error:type_name -> stream.video.sfu.models.Error + 37, // 22: stream.video.sfu.event.Error.reconnect_strategy:type_name -> stream.video.sfu.models.WebsocketReconnectStrategy + 38, // 23: stream.video.sfu.event.ICETrickle.peer_type:type_name -> stream.video.sfu.models.PeerType + 38, // 24: stream.video.sfu.event.ICERestart.peer_type:type_name -> stream.video.sfu.models.PeerType + 12, // 25: stream.video.sfu.event.SfuRequest.join_request:type_name -> stream.video.sfu.event.JoinRequest + 8, // 26: stream.video.sfu.event.SfuRequest.health_check_request:type_name -> stream.video.sfu.event.HealthCheckRequest + 7, // 27: stream.video.sfu.event.SfuRequest.leave_call_request:type_name -> stream.video.sfu.event.LeaveCallRequest + 39, // 28: stream.video.sfu.event.HealthCheckResponse.participant_count:type_name -> stream.video.sfu.models.ParticipantCount + 40, // 29: stream.video.sfu.event.TrackPublished.type:type_name -> stream.video.sfu.models.TrackType + 41, // 30: stream.video.sfu.event.TrackPublished.participant:type_name -> stream.video.sfu.models.Participant + 40, // 31: stream.video.sfu.event.TrackUnpublished.type:type_name -> stream.video.sfu.models.TrackType + 42, // 32: stream.video.sfu.event.TrackUnpublished.cause:type_name -> stream.video.sfu.models.TrackUnpublishReason + 41, // 33: stream.video.sfu.event.TrackUnpublished.participant:type_name -> stream.video.sfu.models.Participant + 43, // 34: stream.video.sfu.event.JoinRequest.client_details:type_name -> stream.video.sfu.models.ClientDetails + 13, // 35: stream.video.sfu.event.JoinRequest.migration:type_name -> stream.video.sfu.event.Migration + 44, // 36: stream.video.sfu.event.Migration.announced_tracks:type_name -> stream.video.sfu.models.TrackInfo + 45, // 37: stream.video.sfu.event.Migration.subscriptions:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails + 46, // 38: stream.video.sfu.event.JoinResponse.call_state:type_name -> stream.video.sfu.models.CallState + 41, // 39: stream.video.sfu.event.ParticipantJoined.participant:type_name -> stream.video.sfu.models.Participant + 41, // 40: stream.video.sfu.event.ParticipantLeft.participant:type_name -> stream.video.sfu.models.Participant + 41, // 41: stream.video.sfu.event.ParticipantUpdated.participant:type_name -> stream.video.sfu.models.Participant + 21, // 42: stream.video.sfu.event.ConnectionQualityChanged.connection_quality_updates:type_name -> stream.video.sfu.event.ConnectionQualityInfo + 47, // 43: stream.video.sfu.event.ConnectionQualityInfo.connection_quality:type_name -> stream.video.sfu.models.ConnectionQuality + 23, // 44: stream.video.sfu.event.AudioLevelChanged.audio_levels:type_name -> stream.video.sfu.event.AudioLevel + 25, // 45: stream.video.sfu.event.AudioSender.media_request:type_name -> stream.video.sfu.event.AudioMediaRequest + 48, // 46: stream.video.sfu.event.AudioSender.codec:type_name -> stream.video.sfu.models.Codec + 0, // 47: stream.video.sfu.event.VideoLayerSetting.priority:type_name -> stream.video.sfu.event.VideoLayerSetting.Priority + 48, // 48: stream.video.sfu.event.VideoLayerSetting.codec:type_name -> stream.video.sfu.models.Codec + 27, // 49: stream.video.sfu.event.VideoSender.media_request:type_name -> stream.video.sfu.event.VideoMediaRequest + 48, // 50: stream.video.sfu.event.VideoSender.codec:type_name -> stream.video.sfu.models.Codec + 28, // 51: stream.video.sfu.event.VideoSender.layers:type_name -> stream.video.sfu.event.VideoLayerSetting + 26, // 52: stream.video.sfu.event.ChangePublishQuality.audio_senders:type_name -> stream.video.sfu.event.AudioSender + 29, // 53: stream.video.sfu.event.ChangePublishQuality.video_senders:type_name -> stream.video.sfu.event.VideoSender + 49, // 54: stream.video.sfu.event.CallGrantsUpdated.current_grants:type_name -> stream.video.sfu.models.CallGrants + 50, // 55: stream.video.sfu.event.GoAway.reason:type_name -> stream.video.sfu.models.GoAwayReason + 51, // 56: stream.video.sfu.event.CallEnded.reason:type_name -> stream.video.sfu.models.CallEndedReason + 57, // [57:57] is the sub-list for method output_type + 57, // [57:57] is the sub-list for method input_type + 57, // [57:57] is the sub-list for extension type_name + 57, // [57:57] is the sub-list for extension extendee + 0, // [0:57] is the sub-list for field type_name } func init() { file_video_sfu_event_events_proto_init() } @@ -2922,7 +3004,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckRequest); i { + switch v := v.(*LeaveCallRequest); i { case 0: return &v.state case 1: @@ -2934,7 +3016,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckResponse); i { + switch v := v.(*HealthCheckRequest); i { case 0: return &v.state case 1: @@ -2946,7 +3028,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrackPublished); i { + switch v := v.(*HealthCheckResponse); i { case 0: return &v.state case 1: @@ -2958,7 +3040,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrackUnpublished); i { + switch v := v.(*TrackPublished); i { case 0: return &v.state case 1: @@ -2970,7 +3052,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinRequest); i { + switch v := v.(*TrackUnpublished); i { case 0: return &v.state case 1: @@ -2982,7 +3064,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Migration); i { + switch v := v.(*JoinRequest); i { case 0: return &v.state case 1: @@ -2994,7 +3076,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinResponse); i { + switch v := v.(*Migration); i { case 0: return &v.state case 1: @@ -3006,7 +3088,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParticipantJoined); i { + switch v := v.(*JoinResponse); i { case 0: return &v.state case 1: @@ -3018,7 +3100,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParticipantLeft); i { + switch v := v.(*ParticipantJoined); i { case 0: return &v.state case 1: @@ -3030,7 +3112,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParticipantUpdated); i { + switch v := v.(*ParticipantLeft); i { case 0: return &v.state case 1: @@ -3042,7 +3124,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscriberOffer); i { + switch v := v.(*ParticipantUpdated); i { case 0: return &v.state case 1: @@ -3054,7 +3136,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublisherAnswer); i { + switch v := v.(*SubscriberOffer); i { case 0: return &v.state case 1: @@ -3066,7 +3148,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConnectionQualityChanged); i { + switch v := v.(*PublisherAnswer); i { case 0: return &v.state case 1: @@ -3078,7 +3160,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConnectionQualityInfo); i { + switch v := v.(*ConnectionQualityChanged); i { case 0: return &v.state case 1: @@ -3090,7 +3172,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DominantSpeakerChanged); i { + switch v := v.(*ConnectionQualityInfo); i { case 0: return &v.state case 1: @@ -3102,7 +3184,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioLevel); i { + switch v := v.(*DominantSpeakerChanged); i { case 0: return &v.state case 1: @@ -3114,7 +3196,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioLevelChanged); i { + switch v := v.(*AudioLevel); i { case 0: return &v.state case 1: @@ -3126,7 +3208,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioMediaRequest); i { + switch v := v.(*AudioLevelChanged); i { case 0: return &v.state case 1: @@ -3138,7 +3220,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSender); i { + switch v := v.(*AudioMediaRequest); i { case 0: return &v.state case 1: @@ -3150,7 +3232,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoMediaRequest); i { + switch v := v.(*AudioSender); i { case 0: return &v.state case 1: @@ -3162,7 +3244,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoLayerSetting); i { + switch v := v.(*VideoMediaRequest); i { case 0: return &v.state case 1: @@ -3174,7 +3256,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoSender); i { + switch v := v.(*VideoLayerSetting); i { case 0: return &v.state case 1: @@ -3186,7 +3268,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePublishQuality); i { + switch v := v.(*VideoSender); i { case 0: return &v.state case 1: @@ -3198,7 +3280,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CallGrantsUpdated); i { + switch v := v.(*ChangePublishQuality); i { case 0: return &v.state case 1: @@ -3210,7 +3292,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GoAway); i { + switch v := v.(*CallGrantsUpdated); i { case 0: return &v.state case 1: @@ -3222,6 +3304,18 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GoAway); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_event_events_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CallEnded); i { case 0: return &v.state @@ -3259,6 +3353,7 @@ func file_video_sfu_event_events_proto_init() { file_video_sfu_event_events_proto_msgTypes[5].OneofWrappers = []interface{}{ (*SfuRequest_JoinRequest)(nil), (*SfuRequest_HealthCheckRequest)(nil), + (*SfuRequest_LeaveCallRequest)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -3266,7 +3361,7 @@ func file_video_sfu_event_events_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_video_sfu_event_events_proto_rawDesc, NumEnums: 1, - NumMessages: 32, + NumMessages: 33, NumExtensions: 0, NumServices: 0, }, diff --git a/protobuf/video/sfu/event/events.proto b/protobuf/video/sfu/event/events.proto index 8542b562..992be282 100644 --- a/protobuf/video/sfu/event/events.proto +++ b/protobuf/video/sfu/event/events.proto @@ -104,9 +104,15 @@ message SfuRequest { oneof request_payload { JoinRequest join_request = 1; HealthCheckRequest health_check_request = 2; + LeaveCallRequest leave_call_request = 3; } } +message LeaveCallRequest { + string session_id = 1; + string reason = 2; +} + message HealthCheckRequest { } diff --git a/protobuf/video/sfu/event/events_vtproto.pb.go b/protobuf/video/sfu/event/events_vtproto.pb.go index 387f0fd3..3c6310ef 100644 --- a/protobuf/video/sfu/event/events_vtproto.pb.go +++ b/protobuf/video/sfu/event/events_vtproto.pb.go @@ -761,6 +761,72 @@ func (m *SfuRequest_HealthCheckRequest) MarshalToSizedBufferVT(dAtA []byte) (int } return len(dAtA) - i, nil } +func (m *SfuRequest_LeaveCallRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SfuRequest_LeaveCallRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.LeaveCallRequest != nil { + size, err := m.LeaveCallRequest.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *LeaveCallRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LeaveCallRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *LeaveCallRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Reason) > 0 { + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarint(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x12 + } + if len(m.SessionId) > 0 { + i -= len(m.SessionId) + copy(dAtA[i:], m.SessionId) + i = encodeVarint(dAtA, i, uint64(len(m.SessionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *HealthCheckRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -2689,6 +2755,38 @@ func (m *SfuRequest_HealthCheckRequest) SizeVT() (n int) { } return n } +func (m *SfuRequest_LeaveCallRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LeaveCallRequest != nil { + l = m.LeaveCallRequest.SizeVT() + n += 1 + l + sov(uint64(l)) + } + return n +} +func (m *LeaveCallRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SessionId) + if l > 0 { + n += 1 + l + sov(uint64(l)) + } + l = len(m.Reason) + if l > 0 { + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + func (m *HealthCheckRequest) SizeVT() (n int) { if m == nil { return 0 @@ -4714,6 +4812,162 @@ func (m *SfuRequest) UnmarshalVT(dAtA []byte) error { m.RequestPayload = &SfuRequest_HealthCheckRequest{v} } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LeaveCallRequest", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.RequestPayload.(*SfuRequest_LeaveCallRequest); ok { + if err := oneof.LeaveCallRequest.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &LeaveCallRequest{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.RequestPayload = &SfuRequest_LeaveCallRequest{v} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LeaveCallRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LeaveCallRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LeaveCallRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SessionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SessionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skip(dAtA[iNdEx:]) diff --git a/protobuf/video/sfu/models/models.pb.go b/protobuf/video/sfu/models/models.pb.go index 9c35234d..3cc3e60e 100644 --- a/protobuf/video/sfu/models/models.pb.go +++ b/protobuf/video/sfu/models/models.pb.go @@ -577,8 +577,11 @@ const ( // SDK should obtain new credentials from the coordinator, drops existing pc instances, and initializes // a completely new WebSocket connection, ensuring a comprehensive reset. WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_FULL WebsocketReconnectStrategy = 4 + // SDK should obtain new credentials from the coordinator,excluding current SFU, drops existing pc instances, and initializes + // a completely new WebSocket connection, ensuring a comprehensive reset. + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_FULL_NEW_SFU WebsocketReconnectStrategy = 5 // SDK should migrate to a new SFU instance - WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_MIGRATE WebsocketReconnectStrategy = 5 + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_MIGRATE WebsocketReconnectStrategy = 6 ) // Enum value maps for WebsocketReconnectStrategy. @@ -589,15 +592,17 @@ var ( 2: "WEBSOCKET_RECONNECT_STRATEGY_FAST", 3: "WEBSOCKET_RECONNECT_STRATEGY_CLEAN", 4: "WEBSOCKET_RECONNECT_STRATEGY_FULL", - 5: "WEBSOCKET_RECONNECT_STRATEGY_MIGRATE", + 5: "WEBSOCKET_RECONNECT_STRATEGY_FULL_NEW_SFU", + 6: "WEBSOCKET_RECONNECT_STRATEGY_MIGRATE", } WebsocketReconnectStrategy_value = map[string]int32{ - "WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED": 0, - "WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT": 1, - "WEBSOCKET_RECONNECT_STRATEGY_FAST": 2, - "WEBSOCKET_RECONNECT_STRATEGY_CLEAN": 3, - "WEBSOCKET_RECONNECT_STRATEGY_FULL": 4, - "WEBSOCKET_RECONNECT_STRATEGY_MIGRATE": 5, + "WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED": 0, + "WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT": 1, + "WEBSOCKET_RECONNECT_STRATEGY_FAST": 2, + "WEBSOCKET_RECONNECT_STRATEGY_CLEAN": 3, + "WEBSOCKET_RECONNECT_STRATEGY_FULL": 4, + "WEBSOCKET_RECONNECT_STRATEGY_FULL_NEW_SFU": 5, + "WEBSOCKET_RECONNECT_STRATEGY_MIGRATE": 6, } ) @@ -2277,7 +2282,7 @@ var file_video_sfu_models_models_proto_rawDesc = []byte{ 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x97, 0x02, 0x0a, 0x1a, 0x57, + 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xc6, 0x02, 0x0a, 0x1a, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x2c, 0x0a, 0x28, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, @@ -2292,17 +2297,20 @@ var file_video_sfu_models_models_proto_rawDesc = []byte{ 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, - 0x45, 0x47, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x57, 0x45, + 0x45, 0x47, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, - 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, - 0x54, 0x45, 0x10, 0x05, 0x42, 0x65, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0xaa, 0x02, - 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x66, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, + 0x4e, 0x45, 0x57, 0x5f, 0x53, 0x46, 0x55, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x57, 0x45, 0x42, + 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, + 0x45, 0x10, 0x06, 0x42, 0x65, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x56, 0x31, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0xaa, 0x02, 0x1a, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x66, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/protobuf/video/sfu/models/models.proto b/protobuf/video/sfu/models/models.proto index a772402c..c7eaa0c1 100644 --- a/protobuf/video/sfu/models/models.proto +++ b/protobuf/video/sfu/models/models.proto @@ -284,6 +284,9 @@ enum WebsocketReconnectStrategy { // SDK should obtain new credentials from the coordinator, drops existing pc instances, and initializes // a completely new WebSocket connection, ensuring a comprehensive reset. WEBSOCKET_RECONNECT_STRATEGY_FULL = 4; + // SDK should obtain new credentials from the coordinator,excluding current SFU, drops existing pc instances, and initializes + // a completely new WebSocket connection, ensuring a comprehensive reset. + WEBSOCKET_RECONNECT_STRATEGY_FULL_NEW_SFU = 5; // SDK should migrate to a new SFU instance - WEBSOCKET_RECONNECT_STRATEGY_MIGRATE = 5; + WEBSOCKET_RECONNECT_STRATEGY_MIGRATE = 6; }; \ No newline at end of file