diff --git a/pbx/model.pb.go b/pbx/model.pb.go index ff8355b9..cfdd6410 100644 --- a/pbx/model.pb.go +++ b/pbx/model.pb.go @@ -50,7 +50,7 @@ func (x AuthLevel) String() string { return proto.EnumName(AuthLevel_name, int32(x)) } func (AuthLevel) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{0} + return fileDescriptor_model_92588c8639c67d56, []int{0} } type InfoNote int32 @@ -76,7 +76,7 @@ func (x InfoNote) String() string { return proto.EnumName(InfoNote_name, int32(x)) } func (InfoNote) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{1} + return fileDescriptor_model_92588c8639c67d56, []int{1} } // Plugin response codes @@ -111,7 +111,7 @@ func (x RespCode) String() string { return proto.EnumName(RespCode_name, int32(x)) } func (RespCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{2} + return fileDescriptor_model_92588c8639c67d56, []int{2} } type Crud int32 @@ -137,7 +137,7 @@ func (x Crud) String() string { return proto.EnumName(Crud_name, int32(x)) } func (Crud) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{3} + return fileDescriptor_model_92588c8639c67d56, []int{3} } // What to delete, either "msg" to delete messages (default) or "topic" to delete the topic or "sub" @@ -171,7 +171,7 @@ func (x ClientDel_What) String() string { return proto.EnumName(ClientDel_What_name, int32(x)) } func (ClientDel_What) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{18, 0} + return fileDescriptor_model_92588c8639c67d56, []int{18, 0} } type ServerPres_What int32 @@ -224,7 +224,7 @@ func (x ServerPres_What) String() string { return proto.EnumName(ServerPres_What_name, int32(x)) } func (ServerPres_What) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{27, 0} + return fileDescriptor_model_92588c8639c67d56, []int{27, 0} } // Dummy placeholder message. @@ -238,7 +238,7 @@ func (m *Unused) Reset() { *m = Unused{} } func (m *Unused) String() string { return proto.CompactTextString(m) } func (*Unused) ProtoMessage() {} func (*Unused) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{0} + return fileDescriptor_model_92588c8639c67d56, []int{0} } func (m *Unused) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Unused.Unmarshal(m, b) @@ -271,7 +271,7 @@ func (m *DefaultAcsMode) Reset() { *m = DefaultAcsMode{} } func (m *DefaultAcsMode) String() string { return proto.CompactTextString(m) } func (*DefaultAcsMode) ProtoMessage() {} func (*DefaultAcsMode) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{1} + return fileDescriptor_model_92588c8639c67d56, []int{1} } func (m *DefaultAcsMode) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DefaultAcsMode.Unmarshal(m, b) @@ -320,7 +320,7 @@ func (m *AccessMode) Reset() { *m = AccessMode{} } func (m *AccessMode) String() string { return proto.CompactTextString(m) } func (*AccessMode) ProtoMessage() {} func (*AccessMode) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{2} + return fileDescriptor_model_92588c8639c67d56, []int{2} } func (m *AccessMode) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccessMode.Unmarshal(m, b) @@ -369,7 +369,7 @@ func (m *SetSub) Reset() { *m = SetSub{} } func (m *SetSub) String() string { return proto.CompactTextString(m) } func (*SetSub) ProtoMessage() {} func (*SetSub) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{3} + return fileDescriptor_model_92588c8639c67d56, []int{3} } func (m *SetSub) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetSub.Unmarshal(m, b) @@ -411,18 +411,18 @@ type ClientCred struct { Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` // Verification response Response string `protobuf:"bytes,3,opt,name=response" json:"response,omitempty"` - // Request parameters, such as preferences. - Params []byte `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Request parameters, such as preferences or country code. + Params map[string][]byte `protobuf:"bytes,4,rep,name=params" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ClientCred) Reset() { *m = ClientCred{} } func (m *ClientCred) String() string { return proto.CompactTextString(m) } func (*ClientCred) ProtoMessage() {} func (*ClientCred) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{4} + return fileDescriptor_model_92588c8639c67d56, []int{4} } func (m *ClientCred) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientCred.Unmarshal(m, b) @@ -463,7 +463,7 @@ func (m *ClientCred) GetResponse() string { return "" } -func (m *ClientCred) GetParams() []byte { +func (m *ClientCred) GetParams() map[string][]byte { if m != nil { return m.Params } @@ -484,7 +484,7 @@ func (m *SetDesc) Reset() { *m = SetDesc{} } func (m *SetDesc) String() string { return proto.CompactTextString(m) } func (*SetDesc) ProtoMessage() {} func (*SetDesc) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{5} + return fileDescriptor_model_92588c8639c67d56, []int{5} } func (m *SetDesc) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetDesc.Unmarshal(m, b) @@ -547,7 +547,7 @@ func (m *GetOpts) Reset() { *m = GetOpts{} } func (m *GetOpts) String() string { return proto.CompactTextString(m) } func (*GetOpts) ProtoMessage() {} func (*GetOpts) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{6} + return fileDescriptor_model_92588c8639c67d56, []int{6} } func (m *GetOpts) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetOpts.Unmarshal(m, b) @@ -626,7 +626,7 @@ func (m *GetQuery) Reset() { *m = GetQuery{} } func (m *GetQuery) String() string { return proto.CompactTextString(m) } func (*GetQuery) ProtoMessage() {} func (*GetQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{7} + return fileDescriptor_model_92588c8639c67d56, []int{7} } func (m *GetQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetQuery.Unmarshal(m, b) @@ -692,7 +692,7 @@ func (m *SetQuery) Reset() { *m = SetQuery{} } func (m *SetQuery) String() string { return proto.CompactTextString(m) } func (*SetQuery) ProtoMessage() {} func (*SetQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{8} + return fileDescriptor_model_92588c8639c67d56, []int{8} } func (m *SetQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetQuery.Unmarshal(m, b) @@ -752,7 +752,7 @@ func (m *SeqRange) Reset() { *m = SeqRange{} } func (m *SeqRange) String() string { return proto.CompactTextString(m) } func (*SeqRange) ProtoMessage() {} func (*SeqRange) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{9} + return fileDescriptor_model_92588c8639c67d56, []int{9} } func (m *SeqRange) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqRange.Unmarshal(m, b) @@ -804,7 +804,7 @@ func (m *ClientHi) Reset() { *m = ClientHi{} } func (m *ClientHi) String() string { return proto.CompactTextString(m) } func (*ClientHi) ProtoMessage() {} func (*ClientHi) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{10} + return fileDescriptor_model_92588c8639c67d56, []int{10} } func (m *ClientHi) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientHi.Unmarshal(m, b) @@ -903,7 +903,7 @@ func (m *ClientAcc) Reset() { *m = ClientAcc{} } func (m *ClientAcc) String() string { return proto.CompactTextString(m) } func (*ClientAcc) ProtoMessage() {} func (*ClientAcc) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{11} + return fileDescriptor_model_92588c8639c67d56, []int{11} } func (m *ClientAcc) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientAcc.Unmarshal(m, b) @@ -1011,7 +1011,7 @@ func (m *ClientLogin) Reset() { *m = ClientLogin{} } func (m *ClientLogin) String() string { return proto.CompactTextString(m) } func (*ClientLogin) ProtoMessage() {} func (*ClientLogin) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{12} + return fileDescriptor_model_92588c8639c67d56, []int{12} } func (m *ClientLogin) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientLogin.Unmarshal(m, b) @@ -1076,7 +1076,7 @@ func (m *ClientSub) Reset() { *m = ClientSub{} } func (m *ClientSub) String() string { return proto.CompactTextString(m) } func (*ClientSub) ProtoMessage() {} func (*ClientSub) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{13} + return fileDescriptor_model_92588c8639c67d56, []int{13} } func (m *ClientSub) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientSub.Unmarshal(m, b) @@ -1138,7 +1138,7 @@ func (m *ClientLeave) Reset() { *m = ClientLeave{} } func (m *ClientLeave) String() string { return proto.CompactTextString(m) } func (*ClientLeave) ProtoMessage() {} func (*ClientLeave) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{14} + return fileDescriptor_model_92588c8639c67d56, []int{14} } func (m *ClientLeave) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientLeave.Unmarshal(m, b) @@ -1195,7 +1195,7 @@ func (m *ClientPub) Reset() { *m = ClientPub{} } func (m *ClientPub) String() string { return proto.CompactTextString(m) } func (*ClientPub) ProtoMessage() {} func (*ClientPub) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{15} + return fileDescriptor_model_92588c8639c67d56, []int{15} } func (m *ClientPub) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientPub.Unmarshal(m, b) @@ -1264,7 +1264,7 @@ func (m *ClientGet) Reset() { *m = ClientGet{} } func (m *ClientGet) String() string { return proto.CompactTextString(m) } func (*ClientGet) ProtoMessage() {} func (*ClientGet) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{16} + return fileDescriptor_model_92588c8639c67d56, []int{16} } func (m *ClientGet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientGet.Unmarshal(m, b) @@ -1319,7 +1319,7 @@ func (m *ClientSet) Reset() { *m = ClientSet{} } func (m *ClientSet) String() string { return proto.CompactTextString(m) } func (*ClientSet) ProtoMessage() {} func (*ClientSet) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{17} + return fileDescriptor_model_92588c8639c67d56, []int{17} } func (m *ClientSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientSet.Unmarshal(m, b) @@ -1382,7 +1382,7 @@ func (m *ClientDel) Reset() { *m = ClientDel{} } func (m *ClientDel) String() string { return proto.CompactTextString(m) } func (*ClientDel) ProtoMessage() {} func (*ClientDel) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{18} + return fileDescriptor_model_92588c8639c67d56, []int{18} } func (m *ClientDel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientDel.Unmarshal(m, b) @@ -1467,7 +1467,7 @@ func (m *ClientNote) Reset() { *m = ClientNote{} } func (m *ClientNote) String() string { return proto.CompactTextString(m) } func (*ClientNote) ProtoMessage() {} func (*ClientNote) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{19} + return fileDescriptor_model_92588c8639c67d56, []int{19} } func (m *ClientNote) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientNote.Unmarshal(m, b) @@ -1533,7 +1533,7 @@ func (m *ClientMsg) Reset() { *m = ClientMsg{} } func (m *ClientMsg) String() string { return proto.CompactTextString(m) } func (*ClientMsg) ProtoMessage() {} func (*ClientMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{20} + return fileDescriptor_model_92588c8639c67d56, []int{20} } func (m *ClientMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientMsg.Unmarshal(m, b) @@ -1933,7 +1933,7 @@ func (m *ServerCred) Reset() { *m = ServerCred{} } func (m *ServerCred) String() string { return proto.CompactTextString(m) } func (*ServerCred) ProtoMessage() {} func (*ServerCred) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{21} + return fileDescriptor_model_92588c8639c67d56, []int{21} } func (m *ServerCred) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerCred.Unmarshal(m, b) @@ -1998,7 +1998,7 @@ func (m *TopicDesc) Reset() { *m = TopicDesc{} } func (m *TopicDesc) String() string { return proto.CompactTextString(m) } func (*TopicDesc) ProtoMessage() {} func (*TopicDesc) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{22} + return fileDescriptor_model_92588c8639c67d56, []int{22} } func (m *TopicDesc) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TopicDesc.Unmarshal(m, b) @@ -2140,7 +2140,7 @@ func (m *TopicSub) Reset() { *m = TopicSub{} } func (m *TopicSub) String() string { return proto.CompactTextString(m) } func (*TopicSub) ProtoMessage() {} func (*TopicSub) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{23} + return fileDescriptor_model_92588c8639c67d56, []int{23} } func (m *TopicSub) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TopicSub.Unmarshal(m, b) @@ -2277,7 +2277,7 @@ func (m *DelValues) Reset() { *m = DelValues{} } func (m *DelValues) String() string { return proto.CompactTextString(m) } func (*DelValues) ProtoMessage() {} func (*DelValues) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{24} + return fileDescriptor_model_92588c8639c67d56, []int{24} } func (m *DelValues) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelValues.Unmarshal(m, b) @@ -2327,7 +2327,7 @@ func (m *ServerCtrl) Reset() { *m = ServerCtrl{} } func (m *ServerCtrl) String() string { return proto.CompactTextString(m) } func (*ServerCtrl) ProtoMessage() {} func (*ServerCtrl) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{25} + return fileDescriptor_model_92588c8639c67d56, []int{25} } func (m *ServerCtrl) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerCtrl.Unmarshal(m, b) @@ -2403,7 +2403,7 @@ func (m *ServerData) Reset() { *m = ServerData{} } func (m *ServerData) String() string { return proto.CompactTextString(m) } func (*ServerData) ProtoMessage() {} func (*ServerData) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{26} + return fileDescriptor_model_92588c8639c67d56, []int{26} } func (m *ServerData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerData.Unmarshal(m, b) @@ -2493,7 +2493,7 @@ func (m *ServerPres) Reset() { *m = ServerPres{} } func (m *ServerPres) String() string { return proto.CompactTextString(m) } func (*ServerPres) ProtoMessage() {} func (*ServerPres) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{27} + return fileDescriptor_model_92588c8639c67d56, []int{27} } func (m *ServerPres) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerPres.Unmarshal(m, b) @@ -2601,7 +2601,7 @@ func (m *ServerMeta) Reset() { *m = ServerMeta{} } func (m *ServerMeta) String() string { return proto.CompactTextString(m) } func (*ServerMeta) ProtoMessage() {} func (*ServerMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{28} + return fileDescriptor_model_92588c8639c67d56, []int{28} } func (m *ServerMeta) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerMeta.Unmarshal(m, b) @@ -2685,7 +2685,7 @@ func (m *ServerInfo) Reset() { *m = ServerInfo{} } func (m *ServerInfo) String() string { return proto.CompactTextString(m) } func (*ServerInfo) ProtoMessage() {} func (*ServerInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{29} + return fileDescriptor_model_92588c8639c67d56, []int{29} } func (m *ServerInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerInfo.Unmarshal(m, b) @@ -2753,7 +2753,7 @@ func (m *ServerMsg) Reset() { *m = ServerMsg{} } func (m *ServerMsg) String() string { return proto.CompactTextString(m) } func (*ServerMsg) ProtoMessage() {} func (*ServerMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{30} + return fileDescriptor_model_92588c8639c67d56, []int{30} } func (m *ServerMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerMsg.Unmarshal(m, b) @@ -2992,7 +2992,7 @@ func (m *ServerResp) Reset() { *m = ServerResp{} } func (m *ServerResp) String() string { return proto.CompactTextString(m) } func (*ServerResp) ProtoMessage() {} func (*ServerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{31} + return fileDescriptor_model_92588c8639c67d56, []int{31} } func (m *ServerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerResp.Unmarshal(m, b) @@ -3051,7 +3051,7 @@ func (m *Session) Reset() { *m = Session{} } func (m *Session) String() string { return proto.CompactTextString(m) } func (*Session) ProtoMessage() {} func (*Session) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{32} + return fileDescriptor_model_92588c8639c67d56, []int{32} } func (m *Session) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Session.Unmarshal(m, b) @@ -3132,7 +3132,7 @@ func (m *ClientReq) Reset() { *m = ClientReq{} } func (m *ClientReq) String() string { return proto.CompactTextString(m) } func (*ClientReq) ProtoMessage() {} func (*ClientReq) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{33} + return fileDescriptor_model_92588c8639c67d56, []int{33} } func (m *ClientReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientReq.Unmarshal(m, b) @@ -3178,7 +3178,7 @@ func (m *SearchQuery) Reset() { *m = SearchQuery{} } func (m *SearchQuery) String() string { return proto.CompactTextString(m) } func (*SearchQuery) ProtoMessage() {} func (*SearchQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{34} + return fileDescriptor_model_92588c8639c67d56, []int{34} } func (m *SearchQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchQuery.Unmarshal(m, b) @@ -3227,7 +3227,7 @@ func (m *SearchFound) Reset() { *m = SearchFound{} } func (m *SearchFound) String() string { return proto.CompactTextString(m) } func (*SearchFound) ProtoMessage() {} func (*SearchFound) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{35} + return fileDescriptor_model_92588c8639c67d56, []int{35} } func (m *SearchFound) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchFound.Unmarshal(m, b) @@ -3281,7 +3281,7 @@ func (m *TopicEvent) Reset() { *m = TopicEvent{} } func (m *TopicEvent) String() string { return proto.CompactTextString(m) } func (*TopicEvent) ProtoMessage() {} func (*TopicEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{36} + return fileDescriptor_model_92588c8639c67d56, []int{36} } func (m *TopicEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TopicEvent.Unmarshal(m, b) @@ -3338,7 +3338,7 @@ func (m *AccountEvent) Reset() { *m = AccountEvent{} } func (m *AccountEvent) String() string { return proto.CompactTextString(m) } func (*AccountEvent) ProtoMessage() {} func (*AccountEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{37} + return fileDescriptor_model_92588c8639c67d56, []int{37} } func (m *AccountEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountEvent.Unmarshal(m, b) @@ -3411,7 +3411,7 @@ func (m *SubscriptionEvent) Reset() { *m = SubscriptionEvent{} } func (m *SubscriptionEvent) String() string { return proto.CompactTextString(m) } func (*SubscriptionEvent) ProtoMessage() {} func (*SubscriptionEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{38} + return fileDescriptor_model_92588c8639c67d56, []int{38} } func (m *SubscriptionEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SubscriptionEvent.Unmarshal(m, b) @@ -3499,7 +3499,7 @@ func (m *MessageEvent) Reset() { *m = MessageEvent{} } func (m *MessageEvent) String() string { return proto.CompactTextString(m) } func (*MessageEvent) ProtoMessage() {} func (*MessageEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_model_45d32aef7fcc5f78, []int{39} + return fileDescriptor_model_92588c8639c67d56, []int{39} } func (m *MessageEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MessageEvent.Unmarshal(m, b) @@ -3539,6 +3539,7 @@ func init() { proto.RegisterType((*AccessMode)(nil), "pbx.AccessMode") proto.RegisterType((*SetSub)(nil), "pbx.SetSub") proto.RegisterType((*ClientCred)(nil), "pbx.ClientCred") + proto.RegisterMapType((map[string][]byte)(nil), "pbx.ClientCred.ParamsEntry") proto.RegisterType((*SetDesc)(nil), "pbx.SetDesc") proto.RegisterType((*GetOpts)(nil), "pbx.GetOpts") proto.RegisterType((*GetQuery)(nil), "pbx.GetQuery") @@ -3942,172 +3943,172 @@ var _Plugin_serviceDesc = grpc.ServiceDesc{ Metadata: "model.proto", } -func init() { proto.RegisterFile("model.proto", fileDescriptor_model_45d32aef7fcc5f78) } +func init() { proto.RegisterFile("model.proto", fileDescriptor_model_92588c8639c67d56) } -var fileDescriptor_model_45d32aef7fcc5f78 = []byte{ - // 2614 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0x4f, 0x93, 0xe3, 0x56, - 0x11, 0x1f, 0x59, 0xb2, 0x2c, 0xb5, 0xbd, 0xb3, 0xda, 0xc7, 0x92, 0x38, 0x13, 0x92, 0xcc, 0x2a, - 0xff, 0xb6, 0x26, 0xc9, 0x42, 0xed, 0x12, 0x12, 0x20, 0x17, 0x67, 0xec, 0x9d, 0x19, 0xd8, 0x19, - 0x0f, 0xf2, 0x4c, 0xb8, 0x50, 0xe5, 0x92, 0xa5, 0x67, 0x5b, 0x15, 0x59, 0xf2, 0x48, 0x4f, 0x4e, - 0x72, 0xa1, 0x2a, 0x14, 0x17, 0x0e, 0x7c, 0x01, 0x2e, 0x7c, 0x01, 0x38, 0x43, 0xf1, 0x11, 0xe0, - 0xc6, 0x95, 0x4f, 0xc0, 0x81, 0xe2, 0x03, 0x70, 0xa1, 0xfa, 0xfd, 0x91, 0x25, 0xcf, 0x78, 0x33, - 0x09, 0xdc, 0xde, 0xeb, 0xee, 0xd7, 0xaf, 0x5f, 0xf7, 0xeb, 0xee, 0x9f, 0x9e, 0xa0, 0xbd, 0x48, - 0x43, 0x1a, 0x3f, 0x5a, 0x66, 0x29, 0x4b, 0x89, 0xbe, 0x9c, 0x7c, 0xee, 0x5a, 0x60, 0x5e, 0x26, - 0x45, 0x4e, 0x43, 0xf7, 0x43, 0xd8, 0xed, 0xd3, 0xa9, 0x5f, 0xc4, 0xac, 0x17, 0xe4, 0xa7, 0x69, - 0x48, 0x09, 0x01, 0xc3, 0x2f, 0xd8, 0xbc, 0xab, 0xed, 0x6b, 0x0f, 0x6d, 0x8f, 0x8f, 0x39, 0x2d, - 0x49, 0x93, 0x6e, 0x43, 0xd2, 0x92, 0x34, 0x71, 0x7f, 0x00, 0xd0, 0x0b, 0x02, 0x9a, 0x97, 0xab, - 0x3e, 0xf3, 0x13, 0xa6, 0x56, 0xe1, 0x98, 0xdc, 0x87, 0xe6, 0x2c, 0x5a, 0x51, 0xb5, 0x4c, 0x4c, - 0xdc, 0xf7, 0xc1, 0x1c, 0x51, 0x36, 0x2a, 0x26, 0xe4, 0x45, 0x68, 0x15, 0x39, 0xcd, 0xc6, 0x51, - 0x28, 0x97, 0x99, 0x38, 0x3d, 0x09, 0x51, 0x19, 0x9a, 0xac, 0xb6, 0xc3, 0xb1, 0x9b, 0x00, 0x1c, - 0xc6, 0x11, 0x4d, 0xd8, 0x61, 0x46, 0x43, 0xf2, 0x02, 0x98, 0x0b, 0xca, 0xe6, 0x69, 0xb9, 0x52, - 0xcc, 0x70, 0xcb, 0x95, 0x1f, 0x17, 0x6a, 0xa9, 0x98, 0x90, 0x3d, 0xb0, 0x32, 0x9a, 0x2f, 0xd3, - 0x24, 0xa7, 0x5d, 0x9d, 0x33, 0xca, 0x39, 0x6a, 0x5a, 0xfa, 0x99, 0xbf, 0xc8, 0xbb, 0xc6, 0xbe, - 0xf6, 0xb0, 0xe3, 0xc9, 0x99, 0x7b, 0x05, 0xad, 0x11, 0x65, 0x7d, 0x9a, 0x07, 0xe4, 0xfb, 0xd0, - 0x0e, 0x85, 0x8f, 0xc6, 0x7e, 0x90, 0xf3, 0x1d, 0xdb, 0x8f, 0xbf, 0xf5, 0x68, 0x39, 0xf9, 0xfc, - 0x51, 0xdd, 0x77, 0x1e, 0x84, 0xe5, 0x9c, 0x2b, 0x2e, 0x26, 0x71, 0x14, 0x70, 0x5b, 0x50, 0x31, - 0x9f, 0x91, 0x2e, 0xb4, 0x96, 0x59, 0xb4, 0xf2, 0x99, 0xb0, 0xa5, 0xe3, 0xa9, 0xa9, 0xfb, 0x47, - 0x0d, 0x5a, 0x47, 0x94, 0x0d, 0x97, 0x2c, 0x27, 0x07, 0x70, 0x2f, 0x9a, 0x8e, 0x17, 0x69, 0x18, - 0x4d, 0x23, 0x1a, 0x8e, 0xf3, 0x28, 0x09, 0x28, 0xdf, 0x59, 0xf7, 0xee, 0x46, 0xd3, 0x53, 0x49, - 0x1f, 0x21, 0x19, 0xdd, 0x85, 0x8e, 0x53, 0xee, 0xc2, 0x31, 0x3a, 0x82, 0xa5, 0xcb, 0x28, 0x90, - 0xe7, 0x15, 0x13, 0xf2, 0x12, 0x58, 0x5c, 0x13, 0xba, 0x1c, 0x8f, 0xdb, 0xf4, 0x5a, 0x7c, 0x7e, - 0x12, 0x92, 0x97, 0xc1, 0x9e, 0xd0, 0x69, 0x9a, 0x71, 0x5e, 0x93, 0xf3, 0x2c, 0x41, 0x38, 0xe1, - 0x6e, 0x8d, 0xa3, 0x45, 0xc4, 0xba, 0x26, 0x67, 0x88, 0x89, 0xfb, 0x2b, 0x0d, 0xac, 0x23, 0xca, - 0x7e, 0x56, 0xd0, 0xec, 0x0b, 0x7e, 0x01, 0xe6, 0xfe, 0xfa, 0x02, 0xcc, 0x7d, 0x46, 0xf6, 0xc1, - 0x08, 0x69, 0x2e, 0x1c, 0xd0, 0x7e, 0xdc, 0xe1, 0x1e, 0x93, 0x07, 0xf4, 0x38, 0x87, 0xbc, 0x0a, - 0x7a, 0x5e, 0x4c, 0xb8, 0x91, 0x9b, 0x02, 0xc8, 0xe0, 0x1a, 0x7c, 0xe6, 0x73, 0x63, 0xaf, 0x6b, - 0xf0, 0x99, 0xef, 0xfe, 0x5a, 0x03, 0x6b, 0xa4, 0x8c, 0x50, 0x1b, 0x6a, 0x15, 0x71, 0x19, 0x45, - 0xb9, 0xe1, 0x2b, 0x62, 0x43, 0x61, 0x51, 0x5b, 0x09, 0x8c, 0x8a, 0x89, 0xd8, 0x8f, 0x80, 0xc1, - 0xfc, 0x59, 0xde, 0xd5, 0xf7, 0x75, 0x3c, 0x05, 0x8e, 0xc9, 0xeb, 0x60, 0x04, 0x19, 0x0d, 0xa5, - 0x0d, 0x77, 0xf9, 0x9a, 0xf5, 0x55, 0xf4, 0x38, 0xd3, 0x7d, 0x17, 0xad, 0xb8, 0xf2, 0xfc, 0x64, - 0x46, 0x89, 0x03, 0x7a, 0x9c, 0x7e, 0xc6, 0x8d, 0x68, 0x7a, 0x38, 0x24, 0xbb, 0xd0, 0x98, 0x47, - 0x7c, 0xd3, 0xa6, 0xd7, 0x98, 0x47, 0xee, 0x9f, 0x35, 0xb0, 0x84, 0x8a, 0xe3, 0x08, 0x99, 0x65, - 0x06, 0x34, 0xa2, 0x90, 0xbc, 0x02, 0xc0, 0xd3, 0xc2, 0x9f, 0xd1, 0x84, 0xc9, 0xa0, 0xda, 0x48, - 0xe9, 0x21, 0x01, 0xb5, 0xaf, 0x68, 0x26, 0xe3, 0x8a, 0x43, 0x0c, 0x5d, 0x48, 0x57, 0xd1, 0x3a, - 0xac, 0xb6, 0x67, 0x09, 0x82, 0xc8, 0xa5, 0xd8, 0x4f, 0x66, 0x3c, 0xa4, 0xb6, 0xc7, 0xc7, 0x98, - 0x0f, 0xcb, 0xd8, 0x67, 0xd3, 0x34, 0x5b, 0xf0, 0x88, 0xda, 0x5e, 0x39, 0x27, 0xaf, 0x02, 0x4c, - 0xfc, 0xe0, 0xd3, 0x59, 0x96, 0x16, 0x49, 0xd8, 0x6d, 0xed, 0x6b, 0x0f, 0x2d, 0xaf, 0x42, 0x71, - 0xbf, 0x6c, 0x80, 0x2d, 0x4c, 0xef, 0x05, 0xc1, 0x35, 0xdb, 0x2b, 0x29, 0xdd, 0xa8, 0xa5, 0xf4, - 0x0b, 0x60, 0xe6, 0xc1, 0x9c, 0x2e, 0x54, 0x02, 0xca, 0x19, 0xa7, 0xd3, 0x20, 0xa3, 0x4c, 0xa5, - 0x9f, 0x98, 0xf1, 0x1b, 0x97, 0xce, 0xa2, 0x84, 0xdb, 0x6d, 0x79, 0x62, 0x52, 0x86, 0xc7, 0xac, - 0x84, 0x47, 0xc5, 0xbc, 0xb5, 0x35, 0xe6, 0x2a, 0x80, 0xd6, 0xbe, 0xbe, 0x35, 0x80, 0x22, 0x61, - 0x3e, 0xa5, 0x49, 0xd7, 0xe6, 0x76, 0x88, 0x09, 0x52, 0x73, 0x86, 0xa9, 0x0a, 0x22, 0x8d, 0xf8, - 0xc4, 0xcd, 0xa0, 0x2d, 0xd6, 0x3f, 0xe3, 0x56, 0x6d, 0x3a, 0x61, 0x7d, 0xd6, 0xc6, 0x96, 0xb3, - 0xea, 0xb5, 0xb3, 0xae, 0x2f, 0xd8, 0x76, 0xfb, 0xdc, 0xdf, 0x68, 0xca, 0xef, 0x58, 0x3a, 0x37, - 0xb7, 0x2c, 0xd3, 0xbd, 0x51, 0x4d, 0xf7, 0x03, 0xb0, 0x73, 0xca, 0xc6, 0x57, 0x98, 0x1b, 0x32, - 0xc7, 0xee, 0x28, 0xff, 0xf0, 0x84, 0xf1, 0xac, 0x5c, 0xa5, 0xce, 0x01, 0xd8, 0xb3, 0x52, 0xd6, - 0xa8, 0xc8, 0x1e, 0x95, 0xb2, 0x33, 0x39, 0x72, 0x4f, 0xca, 0xf3, 0x53, 0x7f, 0x45, 0x6f, 0x69, - 0xcc, 0x7d, 0x68, 0x16, 0x89, 0x4a, 0x76, 0xcb, 0x13, 0x13, 0xf7, 0x6f, 0xe5, 0xb1, 0xce, 0x6f, - 0x7d, 0xac, 0x17, 0xa1, 0x95, 0xa4, 0x63, 0x1a, 0xcc, 0x53, 0xa9, 0xcb, 0x4c, 0xd2, 0x41, 0x30, - 0x4f, 0xc9, 0xbb, 0x60, 0xcc, 0xa9, 0xaf, 0x1c, 0xd9, 0xad, 0x38, 0xf2, 0xbc, 0x98, 0x3c, 0x3a, - 0xa6, 0x7e, 0x38, 0x48, 0x58, 0xf6, 0x85, 0xc7, 0xa5, 0xb0, 0x10, 0x07, 0x69, 0xc2, 0x30, 0xc9, - 0x9a, 0xa2, 0x10, 0xcb, 0xe9, 0xde, 0x07, 0x60, 0x97, 0xc2, 0x98, 0x6f, 0x9f, 0xd2, 0x2f, 0xa4, - 0x51, 0x38, 0xac, 0x37, 0x99, 0x8e, 0x6c, 0x32, 0x3f, 0x6a, 0x7c, 0xa8, 0xb9, 0x9f, 0xa8, 0xc3, - 0x1c, 0x51, 0x76, 0xcb, 0xc3, 0xbc, 0x0e, 0xcd, 0xeb, 0xf1, 0x29, 0x7d, 0x2e, 0x78, 0x6b, 0xbd, - 0xa3, 0xff, 0x4d, 0xef, 0x68, 0x43, 0xef, 0x6f, 0xcb, 0x64, 0xee, 0xd3, 0xf8, 0x96, 0x8a, 0xdf, - 0x96, 0x85, 0x1e, 0xf5, 0xee, 0xca, 0x36, 0x58, 0xea, 0x78, 0xf4, 0xf3, 0xb9, 0xcf, 0x64, 0xf5, - 0x7f, 0x0b, 0x5a, 0x21, 0x8d, 0xc7, 0x39, 0xbd, 0x92, 0x01, 0x51, 0x36, 0x88, 0x32, 0xe9, 0x99, - 0x21, 0x8d, 0x47, 0xf4, 0xaa, 0x5a, 0x33, 0x9a, 0xb5, 0x9a, 0xa1, 0xf2, 0xc2, 0x7c, 0x4e, 0xe1, - 0xc5, 0x92, 0x30, 0xf7, 0x33, 0x55, 0xa9, 0xf8, 0xd8, 0xfd, 0x00, 0x0c, 0xb4, 0x83, 0xb4, 0x40, - 0x3f, 0x1d, 0x1d, 0x39, 0x3b, 0xc4, 0x86, 0xe6, 0xc5, 0xf0, 0xfc, 0xe4, 0xd0, 0xd1, 0x90, 0x36, - 0xba, 0xfc, 0xd8, 0x69, 0x10, 0x0b, 0x8c, 0xcb, 0xd1, 0xc0, 0x73, 0x74, 0x1c, 0x1d, 0x7a, 0x83, - 0xbe, 0x63, 0xb8, 0xbf, 0x50, 0x20, 0xe3, 0x2c, 0x65, 0x74, 0x7d, 0x7e, 0xad, 0x7a, 0xfe, 0x07, - 0xf2, 0xfc, 0x0d, 0x7e, 0x7e, 0x71, 0xa6, 0x93, 0x64, 0x9a, 0xe2, 0x12, 0x79, 0xf2, 0x6f, 0x63, - 0xa2, 0x5f, 0xe1, 0x81, 0x74, 0xd1, 0x2f, 0x73, 0x7a, 0x75, 0x12, 0xba, 0xff, 0xd0, 0x95, 0xb7, - 0x4f, 0xf3, 0x19, 0x79, 0x8d, 0xf7, 0x04, 0xad, 0x12, 0x1d, 0xd5, 0x11, 0x8e, 0x77, 0xb0, 0x49, - 0x10, 0x17, 0x74, 0x3f, 0x50, 0xcd, 0x73, 0xb7, 0x22, 0xd1, 0x0b, 0x82, 0xe3, 0x1d, 0x0f, 0x99, - 0xe4, 0xa1, 0x2a, 0x93, 0x22, 0xca, 0x4e, 0x45, 0x8a, 0xd7, 0xa6, 0xe3, 0x1d, 0x55, 0x3a, 0x5d, - 0xd1, 0xf8, 0x8c, 0x6b, 0xda, 0x46, 0xc5, 0x04, 0xb5, 0x61, 0xf7, 0x43, 0x6d, 0x98, 0xd1, 0x3c, - 0x0e, 0x1b, 0xda, 0x90, 0xce, 0xb5, 0xf1, 0x94, 0x77, 0x41, 0x5f, 0x16, 0x13, 0x19, 0x99, 0xdd, - 0x7a, 0xa2, 0xa1, 0xb6, 0x65, 0x31, 0x41, 0x99, 0x19, 0x65, 0xb2, 0x2e, 0x57, 0x65, 0x8e, 0x28, - 0x43, 0x99, 0x19, 0x65, 0xdc, 0x2a, 0xca, 0xba, 0xd6, 0x75, 0xab, 0x84, 0x4c, 0x2e, 0x64, 0x42, - 0x1a, 0xf3, 0xba, 0x5c, 0x97, 0xe9, 0xd3, 0x18, 0x65, 0x42, 0x1a, 0x93, 0x37, 0xc1, 0x48, 0x52, - 0x59, 0xa6, 0xeb, 0x57, 0x05, 0xc3, 0x72, 0xbc, 0xe3, 0x71, 0x36, 0xd9, 0x87, 0x4e, 0x9a, 0x8c, - 0x27, 0x74, 0xee, 0xc7, 0xd3, 0x71, 0x3a, 0xed, 0xb6, 0x79, 0x60, 0x21, 0x4d, 0x3e, 0xe6, 0xa4, - 0xe1, 0x94, 0xbc, 0x07, 0x80, 0x88, 0x77, 0x1c, 0xd3, 0x15, 0x8d, 0xbb, 0x1d, 0x1e, 0x63, 0xb1, - 0x67, 0xaf, 0x60, 0xf3, 0x67, 0x48, 0xf5, 0x6c, 0x5f, 0x0d, 0x3f, 0xb6, 0xa1, 0x75, 0x4a, 0xf3, - 0xdc, 0x9f, 0x51, 0xf7, 0x0c, 0x60, 0x44, 0xb3, 0x15, 0xcd, 0xbe, 0x01, 0x40, 0x25, 0x60, 0x84, - 0x69, 0x42, 0x65, 0x39, 0xe3, 0x63, 0xf7, 0x3f, 0x0d, 0xb0, 0x2f, 0xf0, 0xc6, 0xf5, 0x05, 0x6e, - 0x81, 0x20, 0xa3, 0x3e, 0xa3, 0xe1, 0x58, 0x82, 0x2c, 0xdd, 0xb3, 0x25, 0xa5, 0xc7, 0x38, 0x66, - 0x58, 0x86, 0x8a, 0xdd, 0x10, 0x6c, 0x49, 0x11, 0x6c, 0x96, 0x16, 0xc1, 0x5c, 0xb0, 0x75, 0xc1, - 0x96, 0x94, 0x1e, 0x23, 0xef, 0x80, 0x89, 0xc0, 0x35, 0xc8, 0xe5, 0xf5, 0xb8, 0x11, 0xdb, 0x4a, - 0x11, 0xf2, 0x00, 0xaf, 0x65, 0x2e, 0xaf, 0x88, 0xf0, 0xf4, 0xfa, 0x3b, 0x00, 0x6f, 0x65, 0x5e, - 0xb9, 0xff, 0x66, 0xe5, 0xfe, 0x63, 0xa2, 0x67, 0xd4, 0x0f, 0x91, 0xde, 0xe2, 0x74, 0x13, 0xa7, - 0x8a, 0x11, 0xac, 0x90, 0x61, 0x29, 0x46, 0xb0, 0x3a, 0x09, 0x51, 0x11, 0x96, 0x90, 0x28, 0xe4, - 0xd1, 0x6f, 0x7a, 0xcd, 0x90, 0xc6, 0x02, 0x4c, 0x48, 0x68, 0x0d, 0xdb, 0xa0, 0x75, 0xbb, 0x06, - 0xad, 0xd7, 0x7d, 0xbc, 0x53, 0xe9, 0xe3, 0x1c, 0x0e, 0xe3, 0x00, 0x9d, 0x72, 0x87, 0x3b, 0xa5, - 0xc5, 0xe7, 0x3d, 0xe6, 0xfe, 0x45, 0x07, 0x8b, 0x7b, 0x1f, 0xbb, 0x6d, 0xdd, 0xbb, 0xda, 0x0d, - 0xde, 0x0d, 0x69, 0x4c, 0xeb, 0xce, 0x97, 0x94, 0x1e, 0x43, 0x6b, 0xd3, 0x24, 0x8e, 0xca, 0xf0, - 0xca, 0x99, 0x72, 0xa4, 0xf1, 0x1c, 0x47, 0x56, 0x3c, 0xd6, 0xdc, 0xe6, 0x31, 0xb3, 0xe6, 0xb1, - 0xb5, 0x6b, 0x5a, 0xdb, 0x5c, 0x63, 0xd5, 0x5d, 0x53, 0x29, 0xbf, 0x76, 0xad, 0xfc, 0x96, 0xe5, - 0x0f, 0xaa, 0xe5, 0xaf, 0x7e, 0x95, 0xda, 0x9b, 0x57, 0x69, 0x1d, 0xfa, 0x4e, 0x35, 0xf4, 0xeb, - 0x40, 0xde, 0xa9, 0x06, 0xf2, 0x0d, 0xd8, 0x8d, 0xfd, 0x9c, 0x8d, 0x73, 0x4a, 0x93, 0x31, 0x8b, - 0x16, 0xb4, 0xbb, 0xcb, 0x15, 0x76, 0x90, 0x3a, 0xa2, 0x34, 0xb9, 0x88, 0x16, 0x94, 0x7c, 0x17, - 0xee, 0xaf, 0xa5, 0x2a, 0xd0, 0xf8, 0x2e, 0xb7, 0xeb, 0x9e, 0x92, 0xbd, 0x54, 0x10, 0xd9, 0xfd, - 0x09, 0xd8, 0x7d, 0x1a, 0x7f, 0x82, 0xa9, 0x95, 0x57, 0xb6, 0xd6, 0xaa, 0x5b, 0x57, 0xba, 0x53, - 0xe3, 0x39, 0xdd, 0xc9, 0xfd, 0xab, 0x56, 0xe6, 0x35, 0xcb, 0x6e, 0xdb, 0x23, 0x09, 0x18, 0x01, - 0x7e, 0xc0, 0x8a, 0xf2, 0xcf, 0xc7, 0x1c, 0xbb, 0xd2, 0xcf, 0x99, 0x04, 0xe8, 0x7c, 0x4c, 0x9e, - 0x94, 0x1f, 0x9f, 0x4d, 0x6e, 0xc3, 0xcb, 0xd2, 0x06, 0xb5, 0xdd, 0xa3, 0x73, 0xce, 0x15, 0xa8, - 0x45, 0x8a, 0xee, 0xfd, 0x10, 0xda, 0x15, 0xf2, 0xd7, 0xc2, 0x27, 0xbf, 0x6b, 0xa8, 0xc3, 0xf4, - 0x7d, 0xe6, 0x6f, 0x69, 0x70, 0xfb, 0xd0, 0x99, 0x66, 0xe9, 0x62, 0x5c, 0x07, 0xf2, 0x80, 0xb4, - 0x4b, 0x71, 0x33, 0xbe, 0x03, 0x36, 0x06, 0x2b, 0x67, 0xfe, 0x62, 0xc9, 0xef, 0x19, 0x5e, 0x01, - 0x45, 0xd8, 0x48, 0x07, 0x7d, 0x33, 0x1d, 0xd6, 0x37, 0xc4, 0xa8, 0xde, 0x90, 0xf7, 0x24, 0x76, - 0x13, 0x8e, 0x78, 0xa9, 0xe2, 0x08, 0x34, 0xf5, 0x79, 0xe0, 0xcd, 0xfc, 0x3f, 0x81, 0xb7, 0x3f, - 0xe9, 0xca, 0x39, 0xe7, 0x19, 0xcd, 0xb7, 0x38, 0xc7, 0x01, 0x3d, 0xcf, 0x54, 0xb4, 0x71, 0x48, - 0x1e, 0xd6, 0xf0, 0xd0, 0xfd, 0x8a, 0xe1, 0xa8, 0xa6, 0x0a, 0x88, 0xea, 0x1f, 0x76, 0xc6, 0xe6, - 0x87, 0xdd, 0xda, 0x31, 0xcd, 0x9b, 0x53, 0xc7, 0xdc, 0x72, 0x7f, 0x5b, 0xcf, 0x43, 0x57, 0x6f, - 0xc0, 0x2e, 0xf3, 0x33, 0x84, 0xf6, 0x2a, 0x9e, 0x16, 0xdf, 0xb8, 0x23, 0xa8, 0x32, 0xa2, 0x2e, - 0xdc, 0xf1, 0x03, 0x96, 0x66, 0xe3, 0x7a, 0x29, 0x68, 0x73, 0xa2, 0x94, 0x91, 0xf5, 0x0a, 0xb6, - 0xd7, 0x2b, 0xb7, 0x90, 0xc0, 0xcb, 0x84, 0xc6, 0xf0, 0xcc, 0xd9, 0x41, 0xb0, 0x35, 0x7c, 0xfa, - 0xd4, 0xd1, 0x90, 0x70, 0xd9, 0x73, 0x74, 0x24, 0x5c, 0x9e, 0xf7, 0x1d, 0x03, 0x31, 0xd7, 0xd1, - 0xf0, 0x6c, 0xe0, 0x34, 0x91, 0xd4, 0x3b, 0x1c, 0x39, 0x26, 0x92, 0x2e, 0x06, 0xde, 0xa9, 0xd3, - 0x52, 0xb8, 0xcd, 0x42, 0x92, 0x37, 0xe8, 0xf5, 0x1d, 0x5b, 0x8c, 0x0e, 0x3f, 0x71, 0x00, 0x99, - 0xfd, 0xc1, 0x33, 0xa7, 0xcd, 0xe5, 0x7b, 0x47, 0x23, 0xa7, 0xe3, 0xfe, 0xbd, 0xcc, 0xd1, 0x53, - 0xca, 0xfc, 0x5b, 0xe6, 0xa8, 0x2b, 0xbf, 0x1b, 0xf5, 0x0a, 0xae, 0x28, 0xfb, 0xad, 0xfc, 0x72, - 0x7c, 0x4d, 0x81, 0xa6, 0xb5, 0x83, 0x55, 0x53, 0x50, 0xef, 0x13, 0x1c, 0x9b, 0x34, 0x2b, 0x3a, - 0xca, 0xca, 0x23, 0x90, 0xc9, 0x4d, 0x9f, 0xac, 0x0a, 0xd8, 0xb6, 0x2a, 0x1f, 0x7c, 0x6b, 0xec, - 0x20, 0x3f, 0xf8, 0x7e, 0xa9, 0xce, 0x84, 0xe0, 0xf2, 0x1b, 0xa7, 0xea, 0x83, 0xda, 0xed, 0xfc, - 0x0a, 0xb4, 0x5a, 0x4d, 0x48, 0xf7, 0xdf, 0x1a, 0xd8, 0xd2, 0xa9, 0xf9, 0x0c, 0x01, 0x56, 0xc0, - 0xb2, 0x58, 0xe2, 0xd5, 0xbb, 0x1b, 0x75, 0x0a, 0x01, 0x16, 0xb2, 0x51, 0x8c, 0xbf, 0xd7, 0x34, - 0xae, 0x89, 0x61, 0x16, 0xa3, 0x18, 0xb2, 0x51, 0x6c, 0x99, 0xd1, 0x5c, 0xfa, 0xfe, 0xee, 0x46, - 0xce, 0xa0, 0x18, 0xb2, 0x51, 0x6c, 0x41, 0xcb, 0xd7, 0x9f, 0xaa, 0x18, 0xc6, 0x19, 0xc5, 0x90, - 0x8d, 0x62, 0x51, 0x32, 0x4d, 0x6b, 0x90, 0x64, 0xed, 0x3a, 0x14, 0x8b, 0x6a, 0x2e, 0x34, 0x2b, - 0x2e, 0xac, 0x22, 0xb8, 0x2f, 0xcb, 0x6b, 0xe4, 0xd1, 0x7c, 0x49, 0xde, 0x04, 0x13, 0xd1, 0x40, - 0x21, 0x5e, 0xfc, 0x94, 0xf3, 0x90, 0x75, 0xc8, 0xf1, 0x90, 0x60, 0x92, 0xb7, 0xc0, 0xcc, 0xb3, - 0xd5, 0x22, 0x9f, 0xd5, 0x90, 0x7a, 0xe9, 0x39, 0x4f, 0x72, 0xc9, 0x1b, 0xd0, 0x0c, 0x62, 0x14, - 0xd3, 0xaf, 0x01, 0x59, 0x14, 0x13, 0x4c, 0xf7, 0x9f, 0x1a, 0xb4, 0x46, 0x34, 0xcf, 0xa3, 0x34, - 0xc1, 0x7a, 0x91, 0x8b, 0xe1, 0xfa, 0x89, 0xd4, 0x96, 0x94, 0x93, 0xe7, 0xbc, 0xb5, 0xd4, 0x31, - 0xac, 0xfe, 0x15, 0x18, 0x96, 0xbc, 0x06, 0xed, 0x8c, 0x2e, 0x52, 0x84, 0x41, 0x61, 0x98, 0xc9, - 0xba, 0x04, 0x82, 0xd4, 0x0b, 0xc3, 0x6c, 0xa3, 0x6e, 0x35, 0x37, 0xeb, 0x56, 0xed, 0xf9, 0xc9, - 0xdc, 0x78, 0x7e, 0xda, 0x03, 0x2b, 0xf6, 0x93, 0x59, 0xe1, 0xcf, 0x28, 0xef, 0x14, 0xb6, 0x57, - 0xce, 0xdd, 0xa1, 0xfa, 0x1c, 0xf2, 0xe8, 0x15, 0x66, 0x12, 0x3a, 0x47, 0xbb, 0xd1, 0x39, 0xc8, - 0x22, 0xfb, 0x60, 0xe0, 0xe1, 0x6b, 0xaf, 0x89, 0xd2, 0x55, 0x1e, 0xe7, 0xb8, 0x1f, 0x41, 0x7b, - 0x44, 0xfd, 0x2c, 0x98, 0x8b, 0x27, 0x8d, 0xad, 0xef, 0xcb, 0xf7, 0xd5, 0xb7, 0xb1, 0x2c, 0x08, - 0xe2, 0x63, 0xf8, 0x4a, 0xad, 0x7e, 0x9a, 0x16, 0x49, 0x78, 0xdb, 0xf0, 0xdf, 0xa8, 0x0b, 0x17, - 0x67, 0x34, 0x2f, 0x62, 0xc6, 0x5f, 0x12, 0xaf, 0xd5, 0x0e, 0xc9, 0x74, 0x67, 0x00, 0x9c, 0x36, - 0x58, 0xa1, 0x23, 0x1f, 0x80, 0xe9, 0x07, 0x2c, 0x4a, 0x13, 0xb9, 0xa3, 0x2d, 0xbc, 0x90, 0x15, - 0xa1, 0x27, 0x19, 0x58, 0x4d, 0x12, 0xbf, 0x7c, 0x58, 0xe2, 0xe3, 0xdb, 0x14, 0x32, 0xf7, 0x0f, - 0x1a, 0x74, 0x7a, 0x41, 0x90, 0x16, 0x09, 0xbb, 0xf5, 0x5e, 0x5b, 0xef, 0xd7, 0xc6, 0x7b, 0xb8, - 0xfe, 0x75, 0xdf, 0xc3, 0x8d, 0x1a, 0x32, 0x55, 0x05, 0xd2, 0x5a, 0x17, 0x48, 0xf7, 0x5f, 0x1a, - 0xdc, 0x1b, 0x15, 0x93, 0x3c, 0xc8, 0xa2, 0x25, 0xda, 0x72, 0x6b, 0x9b, 0xb7, 0x3e, 0x18, 0xa9, - 0x93, 0xe8, 0xb5, 0x93, 0xac, 0x7b, 0xab, 0x51, 0xed, 0xad, 0x5f, 0x1f, 0x76, 0xbf, 0x2e, 0xff, - 0x58, 0xb4, 0x6e, 0x6e, 0x8e, 0x9c, 0xb9, 0x1d, 0x83, 0xbb, 0x17, 0xd0, 0x91, 0x45, 0xe8, 0xd6, - 0x27, 0x7d, 0x20, 0xf2, 0xe5, 0xe6, 0x42, 0xcb, 0x13, 0xe6, 0xe0, 0x09, 0xd8, 0x65, 0xc2, 0x63, - 0xb7, 0x3c, 0xc3, 0x86, 0xbb, 0x83, 0xa3, 0xde, 0xd9, 0xf0, 0xcc, 0x01, 0x3e, 0xba, 0xbc, 0x38, - 0x76, 0xee, 0xf3, 0xf6, 0x3a, 0x1c, 0x5e, 0x38, 0xaf, 0x1e, 0xbc, 0x05, 0x96, 0xea, 0x0f, 0x65, - 0xfb, 0xdd, 0x29, 0xdb, 0x2f, 0xef, 0xe4, 0x3f, 0x3d, 0x77, 0x1a, 0x07, 0x1f, 0x81, 0xa5, 0x72, - 0x81, 0x74, 0xc0, 0x3a, 0x1c, 0x9e, 0x5d, 0x9c, 0x9c, 0x5d, 0x4a, 0xfd, 0x7d, 0x6f, 0x78, 0xee, - 0x68, 0xa4, 0x0d, 0x2d, 0x6f, 0x30, 0x3a, 0x1f, 0x9e, 0xf5, 0x9d, 0x86, 0x98, 0x9c, 0x3f, 0xeb, - 0x1d, 0x0e, 0x1c, 0xfd, 0xe0, 0x00, 0x0c, 0x3c, 0x0d, 0x01, 0x30, 0x0f, 0xbd, 0x41, 0xef, 0x02, - 0xd7, 0x01, 0x98, 0x97, 0xe7, 0x7d, 0x1c, 0x6b, 0x38, 0xee, 0x0f, 0x9e, 0x0d, 0x2e, 0x06, 0x4e, - 0xe3, 0xf1, 0x8f, 0xc1, 0x38, 0xc3, 0x5d, 0x9e, 0x40, 0x5b, 0x3a, 0xe9, 0x59, 0x9a, 0x2e, 0xc9, - 0x46, 0x8d, 0xd8, 0xdb, 0xa8, 0xbb, 0xee, 0xce, 0x43, 0xed, 0x7b, 0xda, 0xe3, 0xdf, 0x37, 0xc0, - 0x3c, 0x8f, 0x8b, 0x59, 0x94, 0x90, 0xf7, 0xc0, 0x7a, 0x1a, 0x65, 0xf4, 0x38, 0xcd, 0x69, 0x6d, - 0xb1, 0x47, 0xaf, 0xf6, 0xaa, 0x0e, 0xc4, 0x63, 0xb9, 0x3b, 0xe4, 0x5d, 0x30, 0x9e, 0x46, 0x49, - 0x48, 0x1c, 0xc9, 0x2a, 0xeb, 0xca, 0x5e, 0x95, 0xc2, 0x6b, 0x85, 0xbb, 0x43, 0xde, 0x81, 0x96, - 0xcc, 0x2f, 0x72, 0x4f, 0x45, 0xbf, 0xcc, 0xb6, 0x3d, 0xf1, 0xa3, 0x41, 0xfe, 0x72, 0xdb, 0x21, - 0x6f, 0x43, 0x93, 0x27, 0x28, 0xb9, 0xbb, 0x4e, 0xd6, 0x1b, 0x05, 0xdf, 0x87, 0x4e, 0x35, 0x0d, - 0xc8, 0x0b, 0x62, 0xe7, 0xcd, 0xcc, 0xd8, 0x5c, 0xf6, 0x4e, 0xd9, 0xd3, 0xa4, 0x31, 0xd5, 0xcb, - 0xb5, 0x21, 0x3c, 0x31, 0xf9, 0x7f, 0xc1, 0x27, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x5d, - 0xca, 0xd9, 0x26, 0x1c, 0x00, 0x00, +var fileDescriptor_model_92588c8639c67d56 = []byte{ + // 2623 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0x4f, 0x93, 0xe3, 0x46, + 0x15, 0x1f, 0x59, 0xb2, 0x2c, 0x3d, 0x7b, 0x67, 0xb5, 0xcd, 0x92, 0x38, 0x13, 0x92, 0xcc, 0x2a, + 0xff, 0xa6, 0x26, 0xc9, 0x42, 0xed, 0x12, 0x12, 0x20, 0x17, 0x67, 0xec, 0x9d, 0x19, 0xd8, 0x19, + 0x0f, 0xf2, 0x4c, 0xb8, 0x50, 0xe5, 0x92, 0xa5, 0x1e, 0x5b, 0x15, 0x59, 0xf2, 0x48, 0x2d, 0x27, + 0xb9, 0x50, 0x15, 0x8a, 0x0b, 0x07, 0xbe, 0x00, 0x17, 0xbe, 0x00, 0x9c, 0xa1, 0xf8, 0x00, 0x1c, + 0xe0, 0xc6, 0x95, 0x4f, 0xc0, 0x81, 0xe2, 0x03, 0x70, 0xa1, 0x5e, 0xff, 0x91, 0x25, 0xcf, 0x78, + 0x33, 0x1b, 0x72, 0xeb, 0x7e, 0xef, 0xa9, 0xfb, 0xfd, 0xe9, 0xf7, 0xde, 0xaf, 0x5b, 0xd0, 0x9e, + 0xa7, 0x21, 0x8d, 0x1f, 0x2e, 0xb2, 0x94, 0xa5, 0x44, 0x5f, 0x4c, 0x3e, 0x77, 0x2d, 0x30, 0x2f, + 0x92, 0x22, 0xa7, 0xa1, 0xfb, 0x21, 0x6c, 0xf7, 0xe9, 0xa5, 0x5f, 0xc4, 0xac, 0x17, 0xe4, 0x27, + 0x69, 0x48, 0x09, 0x01, 0xc3, 0x2f, 0xd8, 0xac, 0xab, 0xed, 0x6a, 0x7b, 0xb6, 0xc7, 0xc7, 0x9c, + 0x96, 0xa4, 0x49, 0xb7, 0x21, 0x69, 0x49, 0x9a, 0xb8, 0x3f, 0x00, 0xe8, 0x05, 0x01, 0xcd, 0xcb, + 0xaf, 0x3e, 0xf3, 0x13, 0xa6, 0xbe, 0xc2, 0x31, 0xb9, 0x0f, 0xcd, 0x69, 0xb4, 0xa4, 0xea, 0x33, + 0x31, 0x71, 0xdf, 0x07, 0x73, 0x44, 0xd9, 0xa8, 0x98, 0x90, 0x17, 0xa1, 0x55, 0xe4, 0x34, 0x1b, + 0x47, 0xa1, 0xfc, 0xcc, 0xc4, 0xe9, 0x71, 0x88, 0x8b, 0xa1, 0xca, 0x6a, 0x3b, 0x1c, 0xbb, 0x7f, + 0xd5, 0x00, 0x0e, 0xe2, 0x88, 0x26, 0xec, 0x20, 0xa3, 0x21, 0x79, 0x01, 0xcc, 0x39, 0x65, 0xb3, + 0xb4, 0xfc, 0x54, 0xcc, 0x70, 0xcf, 0xa5, 0x1f, 0x17, 0xea, 0x5b, 0x31, 0x21, 0x3b, 0x60, 0x65, + 0x34, 0x5f, 0xa4, 0x49, 0x4e, 0xbb, 0x3a, 0x67, 0x94, 0x73, 0xf2, 0x18, 0xcc, 0x85, 0x9f, 0xf9, + 0xf3, 0xbc, 0x6b, 0xec, 0xea, 0x7b, 0xed, 0x47, 0x2f, 0x3f, 0x5c, 0x4c, 0x3e, 0x7f, 0xb8, 0xda, + 0xea, 0xe1, 0x19, 0xe7, 0x0e, 0x12, 0x96, 0x7d, 0xe1, 0x49, 0xd1, 0x9d, 0x1f, 0x42, 0xbb, 0x42, + 0x26, 0x0e, 0xe8, 0x9f, 0xd2, 0x2f, 0xa4, 0x2a, 0x38, 0xac, 0xeb, 0xd1, 0x91, 0x7a, 0xfc, 0xa8, + 0xf1, 0xa1, 0xe6, 0x5e, 0x41, 0x6b, 0x44, 0x59, 0x9f, 0xe6, 0x01, 0xf9, 0x3e, 0xb4, 0x43, 0xe1, + 0xfc, 0xb1, 0x1f, 0xe4, 0xfc, 0xf3, 0xf6, 0xa3, 0x6f, 0xf1, 0xfd, 0xeb, 0x41, 0xf1, 0x20, 0x2c, + 0xe7, 0x68, 0xfa, 0xa2, 0x98, 0xc4, 0x51, 0x20, 0xd7, 0x96, 0x33, 0xd2, 0x85, 0xd6, 0x22, 0x8b, + 0x96, 0x3e, 0x13, 0x36, 0x76, 0x3c, 0x35, 0x75, 0xff, 0xa8, 0x41, 0xeb, 0x90, 0xb2, 0xe1, 0x82, + 0xe5, 0x64, 0x1f, 0xee, 0x45, 0x97, 0xe3, 0x79, 0x1a, 0x46, 0x97, 0x11, 0x0d, 0xc7, 0x79, 0x94, + 0x04, 0x94, 0xef, 0xac, 0x7b, 0x77, 0xa3, 0xcb, 0x13, 0x49, 0x1f, 0x21, 0x19, 0xe3, 0x80, 0x11, + 0x51, 0x71, 0xc0, 0x31, 0x1a, 0xc6, 0xd2, 0x45, 0x14, 0x48, 0x3f, 0x8a, 0x09, 0x79, 0x09, 0x2c, + 0xbe, 0x12, 0xc6, 0xd2, 0xd8, 0xd5, 0xf6, 0x9a, 0x5e, 0x8b, 0xcf, 0x8f, 0x43, 0xf2, 0x32, 0xd8, + 0x13, 0x7a, 0x99, 0x66, 0x9c, 0xd7, 0xe4, 0x3c, 0x4b, 0x10, 0x8e, 0x79, 0xb8, 0xe2, 0x68, 0x1e, + 0xb1, 0xae, 0xc9, 0x19, 0x62, 0xe2, 0xfe, 0x4a, 0x03, 0xeb, 0x90, 0xb2, 0x9f, 0x15, 0x34, 0xfb, + 0x82, 0x9f, 0xac, 0x99, 0xbf, 0x3a, 0x59, 0x33, 0x9f, 0x91, 0x5d, 0x30, 0x42, 0x9a, 0x0b, 0x07, + 0xb4, 0x1f, 0x75, 0xb8, 0xc7, 0xa4, 0x81, 0x1e, 0xe7, 0x90, 0x57, 0x41, 0xcf, 0x8b, 0x09, 0x57, + 0x72, 0x5d, 0x00, 0x19, 0x7c, 0x05, 0x9f, 0xf9, 0x5c, 0xd9, 0xeb, 0x2b, 0xf8, 0xcc, 0x77, 0x7f, + 0xad, 0x81, 0x35, 0x52, 0x4a, 0xa8, 0x0d, 0xb5, 0x8a, 0xb8, 0x8c, 0xa2, 0xdc, 0xf0, 0x15, 0xb1, + 0xa1, 0xd0, 0xa8, 0xad, 0x04, 0x46, 0xc5, 0x44, 0xec, 0x47, 0xc0, 0x60, 0xfe, 0x34, 0xef, 0xea, + 0xbb, 0x3a, 0x5a, 0x81, 0x63, 0xf2, 0x3a, 0x18, 0x41, 0x46, 0x43, 0xa9, 0xc3, 0xdd, 0xb5, 0x73, + 0xe7, 0x71, 0xa6, 0xfb, 0x2e, 0x6a, 0x71, 0xe5, 0xf9, 0xc9, 0x94, 0xe2, 0x31, 0x8b, 0xd3, 0xcf, + 0xb8, 0x12, 0x4d, 0x0f, 0x87, 0x64, 0x1b, 0x1a, 0xb3, 0x88, 0x6f, 0xda, 0xf4, 0x1a, 0xb3, 0xc8, + 0xfd, 0xb3, 0x06, 0x96, 0x58, 0xe2, 0x28, 0x42, 0x66, 0x99, 0x5a, 0x8d, 0x28, 0x24, 0xaf, 0x00, + 0xf0, 0x7c, 0xf3, 0xa7, 0x34, 0x61, 0x32, 0xa8, 0x36, 0x52, 0x7a, 0x48, 0xc0, 0xd5, 0x97, 0x34, + 0x93, 0x71, 0xc5, 0x21, 0x86, 0x2e, 0xa4, 0xcb, 0x68, 0x15, 0x56, 0xdb, 0xb3, 0x04, 0x41, 0x24, + 0x69, 0xec, 0x27, 0x53, 0x1e, 0x52, 0xdb, 0xe3, 0x63, 0xcc, 0xb3, 0x45, 0xec, 0xb3, 0xcb, 0x34, + 0x9b, 0xf3, 0x88, 0xda, 0x5e, 0x39, 0x27, 0xaf, 0x02, 0x4c, 0xfc, 0xe0, 0xd3, 0x69, 0x96, 0x16, + 0x49, 0xd8, 0x6d, 0xed, 0x6a, 0x7b, 0x96, 0x57, 0xa1, 0xb8, 0x5f, 0x36, 0xc0, 0x16, 0xaa, 0xf7, + 0x82, 0xe0, 0x9a, 0xee, 0x95, 0x5a, 0xd1, 0xa8, 0xd5, 0x8a, 0x17, 0xc0, 0xcc, 0x83, 0x19, 0x9d, + 0xab, 0xc4, 0x96, 0x33, 0x4e, 0xa7, 0x41, 0x46, 0x19, 0x57, 0xbc, 0xe3, 0xc9, 0x19, 0x3f, 0x71, + 0xe9, 0x34, 0x4a, 0xb8, 0xde, 0x96, 0x27, 0x26, 0x65, 0x78, 0xcc, 0x4a, 0x78, 0x54, 0xcc, 0x5b, + 0x1b, 0x63, 0xae, 0x02, 0x68, 0xf1, 0xc2, 0x71, 0x73, 0x00, 0x45, 0xc2, 0x7c, 0x4a, 0x93, 0xae, + 0x2d, 0x2a, 0x01, 0x9f, 0x20, 0x35, 0x67, 0x98, 0xaa, 0x20, 0xd2, 0x88, 0x4f, 0xdc, 0x0c, 0xda, + 0xe2, 0xfb, 0xa7, 0x5c, 0xab, 0x75, 0x27, 0xac, 0x6c, 0x6d, 0x6c, 0xb0, 0x55, 0xaf, 0xd9, 0xba, + 0x3a, 0x60, 0x9b, 0xf5, 0x73, 0x7f, 0xa3, 0x29, 0xbf, 0x63, 0x4d, 0x5e, 0xdf, 0xb2, 0x4c, 0xf7, + 0x46, 0x35, 0xdd, 0xf7, 0xc1, 0xce, 0x29, 0x1b, 0x5f, 0x61, 0x6e, 0xc8, 0x1c, 0xbb, 0xa3, 0xfc, + 0xc3, 0x13, 0xc6, 0xb3, 0x72, 0x95, 0x3a, 0xfb, 0x60, 0x4f, 0x4b, 0x59, 0xa3, 0x22, 0x7b, 0x58, + 0xca, 0x4e, 0xe5, 0xc8, 0x3d, 0x2e, 0xed, 0xa7, 0xfe, 0x92, 0xde, 0x52, 0x99, 0xfb, 0xd0, 0x2c, + 0x12, 0x95, 0xec, 0x96, 0x27, 0x26, 0xee, 0xdf, 0x4b, 0xb3, 0xce, 0x6e, 0x6d, 0xd6, 0x8b, 0xd0, + 0x4a, 0xd2, 0x31, 0x0d, 0x66, 0xa9, 0x5c, 0xcb, 0x4c, 0xd2, 0x41, 0x30, 0x4b, 0xc9, 0xbb, 0x60, + 0xcc, 0xa8, 0xaf, 0x1c, 0xd9, 0xad, 0x38, 0xf2, 0xac, 0x98, 0x3c, 0x3c, 0xa2, 0x7e, 0x28, 0xda, + 0x03, 0x97, 0xc2, 0x42, 0x1c, 0xa4, 0x09, 0xc3, 0x24, 0x6b, 0x8a, 0x42, 0x2c, 0xa7, 0x3b, 0x1f, + 0x80, 0x5d, 0x0a, 0x3f, 0x57, 0xd3, 0xf8, 0x44, 0x19, 0x73, 0x48, 0xd9, 0x2d, 0x8d, 0x79, 0x1d, + 0x9a, 0xd7, 0xe3, 0x53, 0xfa, 0x5c, 0xf0, 0x56, 0xeb, 0x8e, 0xfe, 0xbf, 0x75, 0x47, 0x6b, 0xeb, + 0xfe, 0xb6, 0x4c, 0xe6, 0x3e, 0x8d, 0x6f, 0xb9, 0xf0, 0xdb, 0xb2, 0xd0, 0xe3, 0xba, 0xdb, 0xb2, + 0x0d, 0x96, 0x6b, 0x3c, 0xfc, 0xf9, 0xcc, 0x67, 0xb2, 0xfa, 0xbf, 0x05, 0xad, 0x90, 0xc6, 0xe3, + 0x9c, 0x5e, 0xc9, 0x80, 0x28, 0x1d, 0x44, 0x99, 0xf4, 0xcc, 0x90, 0xc6, 0x23, 0x7a, 0x55, 0xad, + 0x19, 0xcd, 0x5a, 0xcd, 0x50, 0x79, 0x61, 0x3e, 0xa3, 0xf0, 0x62, 0x49, 0x98, 0xf9, 0x99, 0xaa, + 0x54, 0x7c, 0xec, 0x7e, 0x00, 0x06, 0xea, 0x41, 0x5a, 0xa0, 0x9f, 0x8c, 0x0e, 0x9d, 0x2d, 0x62, + 0x43, 0xf3, 0x7c, 0x78, 0x76, 0x7c, 0xe0, 0x68, 0x48, 0x1b, 0x5d, 0x7c, 0xec, 0x34, 0x88, 0x05, + 0xc6, 0xc5, 0x68, 0xe0, 0x39, 0x3a, 0x8e, 0x0e, 0xbc, 0x41, 0xdf, 0x31, 0xdc, 0x5f, 0x28, 0xf0, + 0x72, 0x9a, 0x32, 0xba, 0xb2, 0x5f, 0xab, 0xda, 0xff, 0x40, 0xda, 0xdf, 0xe0, 0xf6, 0x0b, 0x9b, + 0x8e, 0x93, 0xcb, 0x14, 0x3f, 0x91, 0x96, 0x7f, 0x1b, 0x13, 0xfd, 0x0a, 0x0d, 0xd2, 0x45, 0xbf, + 0xcc, 0xe9, 0xd5, 0x71, 0xe8, 0xfe, 0x53, 0x57, 0xde, 0x3e, 0xc9, 0xa7, 0xe4, 0x35, 0xde, 0x13, + 0xb4, 0x4a, 0x74, 0x54, 0x47, 0x38, 0xda, 0xc2, 0x26, 0x41, 0x5c, 0xd0, 0xfd, 0x40, 0x35, 0xcf, + 0xed, 0x8a, 0x44, 0x2f, 0x08, 0x8e, 0xb6, 0x3c, 0x64, 0x92, 0x3d, 0x55, 0x26, 0x45, 0x94, 0x9d, + 0x8a, 0x14, 0xaf, 0x4d, 0x47, 0x5b, 0xaa, 0x74, 0xba, 0xa2, 0xf1, 0x19, 0xd7, 0x56, 0x1b, 0x15, + 0x13, 0x5c, 0x0d, 0xbb, 0x1f, 0xae, 0x86, 0x19, 0xcd, 0xe3, 0xb0, 0xb6, 0x1a, 0xd2, 0xf9, 0x6a, + 0x3c, 0xe5, 0x5d, 0xd0, 0x17, 0xc5, 0x44, 0x46, 0x66, 0xbb, 0x9e, 0x68, 0xb8, 0xda, 0xa2, 0x98, + 0xa0, 0xcc, 0x94, 0x32, 0x59, 0x97, 0xab, 0x32, 0x87, 0x94, 0xa1, 0xcc, 0x94, 0x32, 0xae, 0x15, + 0x65, 0x5d, 0xeb, 0xba, 0x56, 0x42, 0x26, 0x17, 0x32, 0x21, 0x8d, 0x79, 0x5d, 0xae, 0xcb, 0xf4, + 0x69, 0x8c, 0x32, 0x21, 0x8d, 0xc9, 0x9b, 0x60, 0x24, 0xa9, 0x2c, 0xd3, 0xf5, 0xa3, 0x82, 0x61, + 0x39, 0xda, 0xf2, 0x38, 0x9b, 0xec, 0x42, 0x27, 0x4d, 0xc6, 0x13, 0x3a, 0xf3, 0xe3, 0xcb, 0x71, + 0x7a, 0xd9, 0x6d, 0xf3, 0xc0, 0x42, 0x9a, 0x7c, 0xcc, 0x49, 0xc3, 0x4b, 0xf2, 0x1e, 0x00, 0x42, + 0xe9, 0x71, 0x4c, 0x97, 0x34, 0xee, 0x76, 0x78, 0x8c, 0xc5, 0x9e, 0xbd, 0x82, 0xcd, 0x9e, 0x22, + 0xd5, 0xb3, 0x7d, 0x35, 0xfc, 0xd8, 0x86, 0xd6, 0x09, 0xcd, 0x73, 0x7f, 0x4a, 0xdd, 0x53, 0x80, + 0x11, 0xcd, 0x96, 0x34, 0xfb, 0x1a, 0xc0, 0x97, 0x80, 0x11, 0xa6, 0x09, 0x95, 0xe5, 0x8c, 0x8f, + 0xdd, 0xff, 0x36, 0xc0, 0x3e, 0xc7, 0x13, 0xd7, 0x17, 0xb8, 0x05, 0x82, 0x8c, 0xfa, 0x8c, 0x86, + 0x63, 0x09, 0xb2, 0x74, 0xcf, 0x96, 0x94, 0x1e, 0xe3, 0x98, 0x61, 0x11, 0x2a, 0x76, 0x43, 0xb0, + 0x25, 0x45, 0xb0, 0x59, 0x5a, 0x04, 0x33, 0xc1, 0xd6, 0x05, 0x5b, 0x52, 0x7a, 0x8c, 0xbc, 0x03, + 0x26, 0x02, 0xd7, 0x20, 0x97, 0xc7, 0xe3, 0x46, 0x6c, 0x2b, 0x45, 0xc8, 0x03, 0x3c, 0x96, 0xb9, + 0x3c, 0x22, 0xc2, 0xd3, 0xab, 0x0b, 0x06, 0x9e, 0xca, 0xbc, 0x72, 0xfe, 0xcd, 0xca, 0xf9, 0xc7, + 0x44, 0xcf, 0xa8, 0x1f, 0x22, 0xbd, 0xc5, 0xe9, 0x26, 0x4e, 0x15, 0x23, 0x58, 0x22, 0xc3, 0x52, + 0x8c, 0x60, 0x79, 0x1c, 0xe2, 0x42, 0x58, 0x42, 0xa2, 0x90, 0x47, 0xbf, 0xe9, 0x35, 0x43, 0x1a, + 0x0b, 0x30, 0x21, 0xa1, 0x35, 0x6c, 0x82, 0xd6, 0xed, 0x1a, 0xb4, 0x5e, 0xf5, 0xf1, 0x4e, 0xa5, + 0x8f, 0x73, 0x38, 0x8c, 0x03, 0x74, 0xca, 0x1d, 0xee, 0x94, 0x16, 0x9f, 0xf7, 0x98, 0xfb, 0x17, + 0x1d, 0x2c, 0xee, 0x7d, 0xec, 0xb6, 0x75, 0xef, 0x6a, 0x37, 0x78, 0x37, 0xa4, 0x31, 0xad, 0x3b, + 0x5f, 0x52, 0x7a, 0x0c, 0xb5, 0x4d, 0x93, 0x38, 0x2a, 0xc3, 0x2b, 0x67, 0xca, 0x91, 0xc6, 0x33, + 0x1c, 0x59, 0xf1, 0x58, 0x73, 0x93, 0xc7, 0xcc, 0x9a, 0xc7, 0x56, 0xae, 0x69, 0x6d, 0x72, 0x8d, + 0x55, 0x77, 0x4d, 0xa5, 0xfc, 0xda, 0xb5, 0xf2, 0x5b, 0x96, 0x3f, 0xa8, 0x96, 0xbf, 0xfa, 0x51, + 0x6a, 0xaf, 0x1f, 0xa5, 0x55, 0xe8, 0x3b, 0xd5, 0xd0, 0xaf, 0x02, 0x79, 0xa7, 0x1a, 0xc8, 0x37, + 0x60, 0x3b, 0xf6, 0x73, 0x36, 0xce, 0x29, 0x4d, 0xc6, 0x2c, 0x9a, 0xd3, 0xee, 0x36, 0x5f, 0xb0, + 0x83, 0xd4, 0x11, 0xa5, 0xc9, 0x79, 0x34, 0xa7, 0xe4, 0xbb, 0x70, 0x7f, 0x25, 0x55, 0x81, 0xc6, + 0x77, 0xb9, 0x5e, 0xf7, 0x94, 0xec, 0x85, 0x82, 0xc8, 0xee, 0x4f, 0xc0, 0xee, 0xd3, 0xf8, 0x13, + 0x4c, 0xad, 0xbc, 0xb2, 0xb5, 0x56, 0xdd, 0xba, 0xd2, 0x9d, 0x1a, 0xcf, 0xe8, 0x4e, 0xee, 0xdf, + 0xb4, 0x32, 0xaf, 0x59, 0x76, 0xdb, 0x1e, 0x49, 0xc0, 0x08, 0xf0, 0x66, 0x2c, 0xca, 0x3f, 0x1f, + 0x73, 0xec, 0x4a, 0x3f, 0x67, 0x12, 0xa0, 0xf3, 0x71, 0xe5, 0x52, 0xdb, 0xac, 0x5c, 0x6a, 0x57, + 0xdb, 0x7d, 0xd3, 0x97, 0xda, 0xdf, 0x35, 0x94, 0x31, 0x7d, 0x9f, 0xf9, 0x1b, 0x1a, 0xdc, 0x2e, + 0x74, 0x2e, 0xb3, 0x74, 0x3e, 0xae, 0x03, 0x79, 0x40, 0xda, 0x85, 0x38, 0x19, 0xdf, 0x01, 0x1b, + 0x83, 0x95, 0x33, 0x7f, 0xbe, 0xe0, 0xe7, 0x0c, 0x8f, 0x80, 0x22, 0xac, 0xa5, 0x83, 0xbe, 0x9e, + 0x0e, 0xab, 0x13, 0x62, 0x54, 0x4f, 0xc8, 0x7b, 0x12, 0xbb, 0x09, 0x47, 0xbc, 0x54, 0x71, 0x04, + 0xaa, 0xfa, 0x2c, 0xf0, 0x66, 0x7e, 0x43, 0xe0, 0xed, 0x4f, 0xba, 0x72, 0xce, 0x59, 0x46, 0xf3, + 0x0d, 0xce, 0x71, 0x40, 0xcf, 0x33, 0x15, 0x6d, 0x1c, 0x92, 0xbd, 0x1a, 0x1e, 0xba, 0x5f, 0x51, + 0x1c, 0x97, 0xa9, 0x02, 0xa2, 0xfa, 0xc5, 0xce, 0x58, 0xbf, 0xd8, 0xad, 0x1c, 0xd3, 0xbc, 0x39, + 0x75, 0xcc, 0x0d, 0xe7, 0xb7, 0xf5, 0x2c, 0x74, 0xf5, 0x06, 0x6c, 0x33, 0x3f, 0x43, 0x68, 0xaf, + 0xe2, 0x69, 0xf1, 0x8d, 0x3b, 0x82, 0x2a, 0x23, 0xea, 0xc2, 0x1d, 0x3f, 0x60, 0x69, 0x36, 0xae, + 0x97, 0x82, 0x36, 0x27, 0x4a, 0x19, 0x59, 0xaf, 0x60, 0x73, 0xbd, 0x72, 0x0b, 0x09, 0xbc, 0x4c, + 0x68, 0x0c, 0x4f, 0x9d, 0x2d, 0x04, 0x5b, 0xc3, 0x27, 0x4f, 0x1c, 0x0d, 0x09, 0x17, 0x3d, 0x47, + 0x47, 0xc2, 0xc5, 0x59, 0xdf, 0x31, 0x10, 0x73, 0x1d, 0x0e, 0x4f, 0x07, 0x4e, 0x13, 0x49, 0xbd, + 0x83, 0x91, 0x63, 0x22, 0xe9, 0x7c, 0xe0, 0x9d, 0x38, 0x2d, 0x85, 0xdb, 0x2c, 0x24, 0x79, 0x83, + 0x5e, 0xdf, 0xb1, 0xc5, 0xe8, 0xe0, 0x13, 0x07, 0x90, 0xd9, 0x1f, 0x3c, 0x75, 0xda, 0x5c, 0xbe, + 0x77, 0x38, 0x72, 0x3a, 0xee, 0x3f, 0xca, 0x1c, 0x3d, 0xa1, 0xcc, 0xbf, 0x65, 0x8e, 0xba, 0xf2, + 0xde, 0xa8, 0x57, 0x70, 0x45, 0xd9, 0x6f, 0xe5, 0xcd, 0xf1, 0x35, 0x05, 0x9a, 0x56, 0x0e, 0x56, + 0x4d, 0x41, 0xbd, 0x4f, 0x70, 0x6c, 0xd2, 0xac, 0xac, 0x51, 0x56, 0x1e, 0x81, 0x4c, 0x6e, 0xba, + 0xb2, 0x2a, 0x60, 0xdb, 0xaa, 0x5c, 0xf8, 0x56, 0xd8, 0x41, 0x5e, 0xf8, 0x7e, 0xa9, 0x6c, 0x42, + 0x70, 0xf9, 0xb5, 0x53, 0xf5, 0x41, 0xed, 0x74, 0x7e, 0x05, 0x5a, 0xad, 0x26, 0xa4, 0xfb, 0x1f, + 0x0d, 0x6c, 0xe9, 0xd4, 0x7c, 0x8a, 0x00, 0x2b, 0x60, 0x59, 0x2c, 0xf1, 0xea, 0xdd, 0xb5, 0x3a, + 0x85, 0x00, 0x0b, 0xd9, 0x28, 0xc6, 0xdf, 0x6b, 0x1a, 0xd7, 0xc4, 0x30, 0x8b, 0x51, 0x0c, 0xd9, + 0x28, 0xb6, 0xc8, 0x68, 0x2e, 0x7d, 0x7f, 0x77, 0x2d, 0x67, 0x50, 0x0c, 0xd9, 0x28, 0x36, 0xa7, + 0xe5, 0xeb, 0x4f, 0x55, 0x0c, 0xe3, 0x8c, 0x62, 0xc8, 0x46, 0xb1, 0x28, 0xb9, 0x4c, 0x6b, 0x90, + 0x64, 0xe5, 0x3a, 0x14, 0x8b, 0x6a, 0x2e, 0x34, 0x2b, 0x2e, 0xac, 0x22, 0xb8, 0x2f, 0xcb, 0x63, + 0xe4, 0xd1, 0x7c, 0x41, 0xde, 0x04, 0x13, 0xd1, 0x40, 0x21, 0x5e, 0xfc, 0x94, 0xf3, 0x90, 0x75, + 0xc0, 0xf1, 0x90, 0x60, 0x92, 0xb7, 0xc0, 0xcc, 0xb3, 0xe5, 0x3c, 0x9f, 0xd6, 0x90, 0x7a, 0xe9, + 0x39, 0x4f, 0x72, 0xc9, 0x1b, 0xd0, 0x0c, 0x62, 0x14, 0xd3, 0xaf, 0x01, 0x59, 0x14, 0x13, 0x4c, + 0xf7, 0x5f, 0x1a, 0xb4, 0x46, 0x34, 0xcf, 0xa3, 0x34, 0xc1, 0x7a, 0x91, 0x8b, 0xe1, 0xea, 0xed, + 0xd5, 0x96, 0x94, 0xe3, 0x67, 0xbc, 0xb5, 0xd4, 0x31, 0xac, 0xfe, 0x15, 0x18, 0x96, 0xbc, 0x06, + 0xed, 0x8c, 0xce, 0x53, 0x84, 0x41, 0x61, 0x98, 0xc9, 0xba, 0x04, 0x82, 0xd4, 0x0b, 0xc3, 0x6c, + 0xad, 0x6e, 0x35, 0xd7, 0xeb, 0x56, 0xed, 0xf9, 0xc9, 0x5c, 0x7b, 0x7e, 0xda, 0x01, 0x2b, 0xf6, + 0x93, 0x69, 0xe1, 0x4f, 0x29, 0xef, 0x14, 0xb6, 0x57, 0xce, 0xdd, 0xa1, 0xba, 0x0e, 0x79, 0xf4, + 0x0a, 0x33, 0x09, 0x9d, 0xa3, 0xdd, 0xe8, 0x1c, 0x64, 0x91, 0x5d, 0x30, 0xd0, 0xf8, 0xda, 0x6b, + 0xa2, 0x74, 0x95, 0xc7, 0x39, 0xee, 0x47, 0xd0, 0x1e, 0x51, 0x3f, 0x0b, 0x66, 0xe2, 0x49, 0x63, + 0xe3, 0xc3, 0xf5, 0x7d, 0x75, 0x37, 0x96, 0x05, 0x41, 0x5c, 0x86, 0xaf, 0xd4, 0xd7, 0x4f, 0xd2, + 0x22, 0x09, 0x6f, 0x1b, 0xfe, 0x1b, 0xd7, 0xc2, 0x8f, 0x33, 0x9a, 0x17, 0x31, 0xe3, 0x2f, 0x89, + 0xd7, 0x6a, 0x87, 0x64, 0xba, 0x53, 0x00, 0x4e, 0x1b, 0x2c, 0xd1, 0x91, 0x0f, 0xc0, 0xf4, 0x03, + 0x16, 0xa5, 0x89, 0xdc, 0xd1, 0x16, 0x5e, 0xc8, 0x8a, 0xd0, 0x93, 0x0c, 0xac, 0x26, 0x89, 0x5f, + 0x3e, 0x2c, 0xf1, 0xf1, 0x6d, 0x0a, 0x99, 0xfb, 0x07, 0x0d, 0x3a, 0xbd, 0x20, 0x48, 0x8b, 0x84, + 0xdd, 0x7a, 0xaf, 0x8d, 0xe7, 0x6b, 0xed, 0x3d, 0x5c, 0x7f, 0xde, 0xf7, 0x70, 0xa3, 0x86, 0x4c, + 0x55, 0x81, 0xb4, 0x56, 0x05, 0xd2, 0xfd, 0xb7, 0x06, 0xf7, 0x46, 0xc5, 0x24, 0x0f, 0xb2, 0x68, + 0x81, 0xba, 0xdc, 0x5a, 0xe7, 0x8d, 0x0f, 0x46, 0xca, 0x12, 0xbd, 0x66, 0xc9, 0xaa, 0xb7, 0x1a, + 0xd5, 0xde, 0xfa, 0xfc, 0xb0, 0xfb, 0x75, 0xf9, 0x2b, 0xa4, 0x75, 0x73, 0x73, 0xe4, 0xcc, 0xcd, + 0x18, 0xdc, 0x3d, 0x87, 0x8e, 0x2c, 0x42, 0xb7, 0xb6, 0xf4, 0x81, 0xc8, 0x97, 0x9b, 0x0b, 0x2d, + 0x4f, 0x98, 0xfd, 0xc7, 0x60, 0x97, 0x09, 0x8f, 0xdd, 0xf2, 0x14, 0x1b, 0xee, 0x16, 0x8e, 0x7a, + 0xa7, 0xc3, 0x53, 0x07, 0xf8, 0xe8, 0xe2, 0xfc, 0xc8, 0xb9, 0xcf, 0xdb, 0xeb, 0x70, 0x78, 0xee, + 0xbc, 0xba, 0xff, 0x16, 0x58, 0xaa, 0x3f, 0x94, 0xed, 0x77, 0xab, 0x6c, 0xbf, 0xbc, 0x93, 0xff, + 0xf4, 0xcc, 0x69, 0xec, 0x7f, 0x04, 0x96, 0xca, 0x05, 0xd2, 0x01, 0xeb, 0x60, 0x78, 0x7a, 0x7e, + 0x7c, 0x7a, 0x21, 0xd7, 0xef, 0x7b, 0xc3, 0x33, 0x47, 0x23, 0x6d, 0x68, 0x79, 0x83, 0xd1, 0xd9, + 0xf0, 0xb4, 0xef, 0x34, 0xc4, 0xe4, 0xec, 0x69, 0xef, 0x60, 0xe0, 0xe8, 0xfb, 0xfb, 0x60, 0xa0, + 0x35, 0x04, 0xc0, 0x3c, 0xf0, 0x06, 0xbd, 0x73, 0xfc, 0x0e, 0xc0, 0xbc, 0x38, 0xeb, 0xe3, 0x58, + 0xc3, 0x71, 0x7f, 0xf0, 0x74, 0x70, 0x3e, 0x70, 0x1a, 0x8f, 0x7e, 0x0c, 0xc6, 0x29, 0xee, 0xf2, + 0x18, 0xda, 0xd2, 0x49, 0x4f, 0xd3, 0x74, 0x41, 0xd6, 0x6a, 0xc4, 0xce, 0x5a, 0xdd, 0x75, 0xb7, + 0xf6, 0xb4, 0xef, 0x69, 0x8f, 0x7e, 0xdf, 0x00, 0xf3, 0x2c, 0x2e, 0xa6, 0x51, 0x42, 0xde, 0x03, + 0xeb, 0x49, 0x94, 0xd1, 0xa3, 0x34, 0xa7, 0xb5, 0x8f, 0x3d, 0x7a, 0xb5, 0x53, 0x75, 0x20, 0x9a, + 0xe5, 0x6e, 0x91, 0x77, 0xc1, 0x78, 0x12, 0x25, 0x21, 0x71, 0x24, 0xab, 0xac, 0x2b, 0x3b, 0x55, + 0x0a, 0xaf, 0x15, 0xee, 0x16, 0x79, 0x07, 0x5a, 0x32, 0xbf, 0xc8, 0x3d, 0x15, 0xfd, 0x32, 0xdb, + 0x76, 0xc4, 0x8f, 0x06, 0xf9, 0x2f, 0x6f, 0x8b, 0xbc, 0x0d, 0x4d, 0x9e, 0xa0, 0xe4, 0xee, 0x2a, + 0x59, 0x6f, 0x14, 0x7c, 0x1f, 0x3a, 0xd5, 0x34, 0x20, 0x2f, 0x88, 0x9d, 0xd7, 0x33, 0x63, 0xfd, + 0xb3, 0x77, 0xca, 0x9e, 0x26, 0x95, 0xa9, 0x1e, 0xae, 0x35, 0xe1, 0x89, 0xc9, 0x7f, 0x38, 0x3e, + 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, 0x88, 0x3a, 0xba, 0x7f, 0x1c, 0x00, 0x00, } diff --git a/pbx/model.proto b/pbx/model.proto index bca625a0..33ad8892 100644 --- a/pbx/model.proto +++ b/pbx/model.proto @@ -82,8 +82,8 @@ message ClientCred { string value = 2; // Verification response string response = 3; - // Request parameters, such as preferences. - bytes params = 4; + // Request parameters, such as preferences or country code. + map params = 4; } // SetDesc: C2S in set.what == "desc" and sub.init message diff --git a/py_grpc/tinode_grpc/model_pb2.py b/py_grpc/tinode_grpc/model_pb2.py index c4d31cba..458ce466 100644 --- a/py_grpc/tinode_grpc/model_pb2.py +++ b/py_grpc/tinode_grpc/model_pb2.py @@ -20,7 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( package='pbx', syntax='proto3', serialized_options=None, - serialized_pb=_b('\n\x0bmodel.proto\x12\x03pbx\"\x08\n\x06Unused\",\n\x0e\x44\x65\x66\x61ultAcsMode\x12\x0c\n\x04\x61uth\x18\x01 \x01(\t\x12\x0c\n\x04\x61non\x18\x02 \x01(\t\")\n\nAccessMode\x12\x0c\n\x04want\x18\x01 \x01(\t\x12\r\n\x05given\x18\x02 \x01(\t\"\'\n\x06SetSub\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0c\n\x04mode\x18\x02 \x01(\t\"M\n\nClientCred\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x10\n\x08response\x18\x03 \x01(\t\x12\x0e\n\x06params\x18\x04 \x01(\x0c\"T\n\x07SetDesc\x12(\n\x0b\x64\x65\x66\x61ult_acs\x18\x01 \x01(\x0b\x32\x13.pbx.DefaultAcsMode\x12\x0e\n\x06public\x18\x02 \x01(\x0c\x12\x0f\n\x07private\x18\x03 \x01(\x0c\"u\n\x07GetOpts\x12\x19\n\x11if_modified_since\x18\x01 \x01(\x03\x12\x0c\n\x04user\x18\x02 \x01(\t\x12\r\n\x05topic\x18\x03 \x01(\t\x12\x10\n\x08since_id\x18\x04 \x01(\x05\x12\x11\n\tbefore_id\x18\x05 \x01(\x05\x12\r\n\x05limit\x18\x06 \x01(\x05\"k\n\x08GetQuery\x12\x0c\n\x04what\x18\x01 \x01(\t\x12\x1a\n\x04\x64\x65sc\x18\x02 \x01(\x0b\x32\x0c.pbx.GetOpts\x12\x19\n\x03sub\x18\x03 \x01(\x0b\x32\x0c.pbx.GetOpts\x12\x1a\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x0c.pbx.GetOpts\"m\n\x08SetQuery\x12\x1a\n\x04\x64\x65sc\x18\x01 \x01(\x0b\x32\x0c.pbx.SetDesc\x12\x18\n\x03sub\x18\x02 \x01(\x0b\x32\x0b.pbx.SetSub\x12\x0c\n\x04tags\x18\x03 \x03(\t\x12\x1d\n\x04\x63red\x18\x04 \x01(\x0b\x32\x0f.pbx.ClientCred\"#\n\x08SeqRange\x12\x0b\n\x03low\x18\x01 \x01(\x05\x12\n\n\x02hi\x18\x02 \x01(\x05\"~\n\x08\x43lientHi\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nuser_agent\x18\x02 \x01(\t\x12\x0b\n\x03ver\x18\x03 \x01(\t\x12\x11\n\tdevice_id\x18\x04 \x01(\t\x12\x0c\n\x04lang\x18\x05 \x01(\t\x12\x10\n\x08platform\x18\x06 \x01(\t\x12\x12\n\nbackground\x18\x07 \x01(\x08\"\xbe\x01\n\tClientAcc\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0e\n\x06scheme\x18\x03 \x01(\t\x12\x0e\n\x06secret\x18\x04 \x01(\x0c\x12\r\n\x05login\x18\x05 \x01(\x08\x12\x0c\n\x04tags\x18\x06 \x03(\t\x12\x1a\n\x04\x64\x65sc\x18\x07 \x01(\x0b\x32\x0c.pbx.SetDesc\x12\x1d\n\x04\x63red\x18\x08 \x03(\x0b\x32\x0f.pbx.ClientCred\x12\r\n\x05token\x18\t \x01(\x0c\x12\r\n\x05state\x18\n \x01(\t\"X\n\x0b\x43lientLogin\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06scheme\x18\x02 \x01(\t\x12\x0e\n\x06secret\x18\x03 \x01(\x0c\x12\x1d\n\x04\x63red\x18\x04 \x03(\x0b\x32\x0f.pbx.ClientCred\"j\n\tClientSub\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12 \n\tset_query\x18\x03 \x01(\x0b\x32\r.pbx.SetQuery\x12 \n\tget_query\x18\x04 \x01(\x0b\x32\r.pbx.GetQuery\"7\n\x0b\x43lientLeave\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\r\n\x05unsub\x18\x03 \x01(\x08\"\x9d\x01\n\tClientPub\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x0f\n\x07no_echo\x18\x03 \x01(\x08\x12&\n\x04head\x18\x04 \x03(\x0b\x32\x18.pbx.ClientPub.HeadEntry\x12\x0f\n\x07\x63ontent\x18\x05 \x01(\x0c\x1a+\n\tHeadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"D\n\tClientGet\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x1c\n\x05query\x18\x03 \x01(\x0b\x32\r.pbx.GetQuery\"D\n\tClientSet\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x1c\n\x05query\x18\x03 \x01(\x0b\x32\r.pbx.SetQuery\"\xe0\x01\n\tClientDel\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12!\n\x04what\x18\x03 \x01(\x0e\x32\x13.pbx.ClientDel.What\x12\x1e\n\x07\x64\x65l_seq\x18\x04 \x03(\x0b\x32\r.pbx.SeqRange\x12\x0f\n\x07user_id\x18\x05 \x01(\t\x12\x1d\n\x04\x63red\x18\x06 \x01(\x0b\x32\x0f.pbx.ClientCred\x12\x0c\n\x04hard\x18\x07 \x01(\x08\"7\n\x04What\x12\x07\n\x03MSG\x10\x00\x12\t\n\x05TOPIC\x10\x01\x12\x07\n\x03SUB\x10\x02\x12\x08\n\x04USER\x10\x03\x12\x08\n\x04\x43RED\x10\x04\"H\n\nClientNote\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x1b\n\x04what\x18\x02 \x01(\x0e\x32\r.pbx.InfoNote\x12\x0e\n\x06seq_id\x18\x03 \x01(\x05\"\x8e\x03\n\tClientMsg\x12\x1b\n\x02hi\x18\x01 \x01(\x0b\x32\r.pbx.ClientHiH\x00\x12\x1d\n\x03\x61\x63\x63\x18\x02 \x01(\x0b\x32\x0e.pbx.ClientAccH\x00\x12!\n\x05login\x18\x03 \x01(\x0b\x32\x10.pbx.ClientLoginH\x00\x12\x1d\n\x03sub\x18\x04 \x01(\x0b\x32\x0e.pbx.ClientSubH\x00\x12!\n\x05leave\x18\x05 \x01(\x0b\x32\x10.pbx.ClientLeaveH\x00\x12\x1d\n\x03pub\x18\x06 \x01(\x0b\x32\x0e.pbx.ClientPubH\x00\x12\x1d\n\x03get\x18\x07 \x01(\x0b\x32\x0e.pbx.ClientGetH\x00\x12\x1d\n\x03set\x18\x08 \x01(\x0b\x32\x0e.pbx.ClientSetH\x00\x12\x1d\n\x03\x64\x65l\x18\t \x01(\x0b\x32\x0e.pbx.ClientDelH\x00\x12\x1f\n\x04note\x18\n \x01(\x0b\x32\x0f.pbx.ClientNoteH\x00\x12\x14\n\x0con_behalf_of\x18\x0b \x01(\t\x12\"\n\nauth_level\x18\x0c \x01(\x0e\x32\x0e.pbx.AuthLevelB\t\n\x07Message\"9\n\nServerCred\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x0c\n\x04\x64one\x18\x03 \x01(\x08\"\x8e\x02\n\tTopicDesc\x12\x12\n\ncreated_at\x18\x01 \x01(\x03\x12\x12\n\nupdated_at\x18\x02 \x01(\x03\x12\x12\n\ntouched_at\x18\x03 \x01(\x03\x12#\n\x06\x64\x65\x66\x61\x63s\x18\x04 \x01(\x0b\x32\x13.pbx.DefaultAcsMode\x12\x1c\n\x03\x61\x63s\x18\x05 \x01(\x0b\x32\x0f.pbx.AccessMode\x12\x0e\n\x06seq_id\x18\x06 \x01(\x05\x12\x0f\n\x07read_id\x18\x07 \x01(\x05\x12\x0f\n\x07recv_id\x18\x08 \x01(\x05\x12\x0e\n\x06\x64\x65l_id\x18\t \x01(\x05\x12\x0e\n\x06public\x18\n \x01(\x0c\x12\x0f\n\x07private\x18\x0b \x01(\x0c\x12\r\n\x05state\x18\x0c \x01(\t\x12\x10\n\x08state_at\x18\r \x01(\x03\"\xad\x02\n\x08TopicSub\x12\x12\n\nupdated_at\x18\x01 \x01(\x03\x12\x12\n\ndeleted_at\x18\x02 \x01(\x03\x12\x0e\n\x06online\x18\x03 \x01(\x08\x12\x1c\n\x03\x61\x63s\x18\x04 \x01(\x0b\x32\x0f.pbx.AccessMode\x12\x0f\n\x07read_id\x18\x05 \x01(\x05\x12\x0f\n\x07recv_id\x18\x06 \x01(\x05\x12\x0e\n\x06public\x18\x07 \x01(\x0c\x12\x0f\n\x07private\x18\x08 \x01(\x0c\x12\x0f\n\x07user_id\x18\t \x01(\t\x12\r\n\x05topic\x18\n \x01(\t\x12\x12\n\ntouched_at\x18\x0b \x01(\x03\x12\x0e\n\x06seq_id\x18\x0c \x01(\x05\x12\x0e\n\x06\x64\x65l_id\x18\r \x01(\x05\x12\x16\n\x0elast_seen_time\x18\x0e \x01(\x03\x12\x1c\n\x14last_seen_user_agent\x18\x0f \x01(\t\";\n\tDelValues\x12\x0e\n\x06\x64\x65l_id\x18\x01 \x01(\x05\x12\x1e\n\x07\x64\x65l_seq\x18\x02 \x03(\x0b\x32\r.pbx.SeqRange\"\x9f\x01\n\nServerCtrl\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\x05\x12\x0c\n\x04text\x18\x04 \x01(\t\x12+\n\x06params\x18\x05 \x03(\x0b\x32\x1b.pbx.ServerCtrl.ParamsEntry\x1a-\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xcf\x01\n\nServerData\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x14\n\x0c\x66rom_user_id\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\x03\x12\x12\n\ndeleted_at\x18\x03 \x01(\x03\x12\x0e\n\x06seq_id\x18\x04 \x01(\x05\x12\'\n\x04head\x18\x05 \x03(\x0b\x32\x19.pbx.ServerData.HeadEntry\x12\x0f\n\x07\x63ontent\x18\x06 \x01(\x0c\x1a+\n\tHeadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xe4\x02\n\nServerPres\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x0b\n\x03src\x18\x02 \x01(\t\x12\"\n\x04what\x18\x03 \x01(\x0e\x32\x14.pbx.ServerPres.What\x12\x12\n\nuser_agent\x18\x04 \x01(\t\x12\x0e\n\x06seq_id\x18\x05 \x01(\x05\x12\x0e\n\x06\x64\x65l_id\x18\x06 \x01(\x05\x12\x1e\n\x07\x64\x65l_seq\x18\x07 \x03(\x0b\x32\r.pbx.SeqRange\x12\x16\n\x0etarget_user_id\x18\x08 \x01(\t\x12\x15\n\ractor_user_id\x18\t \x01(\t\x12\x1c\n\x03\x61\x63s\x18\n \x01(\x0b\x32\x0f.pbx.AccessMode\"u\n\x04What\x12\x06\n\x02ON\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x06\n\x02UA\x10\x03\x12\x07\n\x03UPD\x10\x04\x12\x08\n\x04GONE\x10\x05\x12\x07\n\x03\x41\x43S\x10\x06\x12\x08\n\x04TERM\x10\x07\x12\x07\n\x03MSG\x10\x08\x12\x08\n\x04READ\x10\t\x12\x08\n\x04RECV\x10\n\x12\x07\n\x03\x44\x45L\x10\x0b\x12\x08\n\x04TAGS\x10\x0c\"\xab\x01\n\nServerMeta\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x0e.pbx.TopicDesc\x12\x1a\n\x03sub\x18\x04 \x03(\x0b\x32\r.pbx.TopicSub\x12\x1b\n\x03\x64\x65l\x18\x05 \x01(\x0b\x32\x0e.pbx.DelValues\x12\x0c\n\x04tags\x18\x06 \x03(\t\x12\x1d\n\x04\x63red\x18\x07 \x03(\x0b\x32\x0f.pbx.ServerCred\"^\n\nServerInfo\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x14\n\x0c\x66rom_user_id\x18\x02 \x01(\t\x12\x1b\n\x04what\x18\x03 \x01(\x0e\x32\r.pbx.InfoNote\x12\x0e\n\x06seq_id\x18\x04 \x01(\x05\"\xca\x01\n\tServerMsg\x12\x1f\n\x04\x63trl\x18\x01 \x01(\x0b\x32\x0f.pbx.ServerCtrlH\x00\x12\x1f\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x0f.pbx.ServerDataH\x00\x12\x1f\n\x04pres\x18\x03 \x01(\x0b\x32\x0f.pbx.ServerPresH\x00\x12\x1f\n\x04meta\x18\x04 \x01(\x0b\x32\x0f.pbx.ServerMetaH\x00\x12\x1f\n\x04info\x18\x05 \x01(\x0b\x32\x0f.pbx.ServerInfoH\x00\x12\r\n\x05topic\x18\x06 \x01(\tB\t\n\x07Message\"j\n\nServerResp\x12\x1d\n\x06status\x18\x01 \x01(\x0e\x32\r.pbx.RespCode\x12\x1e\n\x06srvmsg\x18\x02 \x01(\x0b\x32\x0e.pbx.ServerMsg\x12\x1d\n\x05\x63lmsg\x18\x03 \x01(\x0b\x32\x0e.pbx.ClientMsg\"\xa0\x01\n\x07Session\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\"\n\nauth_level\x18\x03 \x01(\x0e\x32\x0e.pbx.AuthLevel\x12\x13\n\x0bremote_addr\x18\x04 \x01(\t\x12\x12\n\nuser_agent\x18\x05 \x01(\t\x12\x11\n\tdevice_id\x18\x06 \x01(\t\x12\x10\n\x08language\x18\x07 \x01(\t\"D\n\tClientReq\x12\x1b\n\x03msg\x18\x01 \x01(\x0b\x32\x0e.pbx.ClientMsg\x12\x1a\n\x04sess\x18\x02 \x01(\x0b\x32\x0c.pbx.Session\"-\n\x0bSearchQuery\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\"Z\n\x0bSearchFound\x12\x1d\n\x06status\x18\x01 \x01(\x0e\x32\r.pbx.RespCode\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x06result\x18\x03 \x03(\x0b\x32\r.pbx.TopicSub\"S\n\nTopicEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x0e.pbx.TopicDesc\"\x82\x01\n\x0c\x41\x63\x63ountEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x0b\x64\x65\x66\x61ult_acs\x18\x03 \x01(\x0b\x32\x13.pbx.DefaultAcsMode\x12\x0e\n\x06public\x18\x04 \x01(\x0c\x12\x0c\n\x04tags\x18\x08 \x03(\t\"\xb0\x01\n\x11SubscriptionEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x0e\n\x06\x64\x65l_id\x18\x04 \x01(\x05\x12\x0f\n\x07read_id\x18\x05 \x01(\x05\x12\x0f\n\x07recv_id\x18\x06 \x01(\x05\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.pbx.AccessMode\x12\x0f\n\x07private\x18\x08 \x01(\x0c\"G\n\x0cMessageEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\x1c\n\x03msg\x18\x02 \x01(\x0b\x32\x0f.pbx.ServerData*3\n\tAuthLevel\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04\x41NON\x10\n\x12\x08\n\x04\x41UTH\x10\x14\x12\x08\n\x04ROOT\x10\x1e*&\n\x08InfoNote\x12\x08\n\x04READ\x10\x00\x12\x08\n\x04RECV\x10\x01\x12\x06\n\x02KP\x10\x02*<\n\x08RespCode\x12\x0c\n\x08\x43ONTINUE\x10\x00\x12\x08\n\x04\x44ROP\x10\x01\x12\x0b\n\x07RESPOND\x10\x02\x12\x0b\n\x07REPLACE\x10\x03**\n\x04\x43rud\x12\n\n\x06\x43REATE\x10\x00\x12\n\n\x06UPDATE\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\x32;\n\x04Node\x12\x33\n\x0bMessageLoop\x12\x0e.pbx.ClientMsg\x1a\x0e.pbx.ServerMsg\"\x00(\x01\x30\x01\x32\x9f\x02\n\x06Plugin\x12-\n\x08\x46ireHose\x12\x0e.pbx.ClientReq\x1a\x0f.pbx.ServerResp\"\x00\x12,\n\x04\x46ind\x12\x10.pbx.SearchQuery\x1a\x10.pbx.SearchFound\"\x00\x12+\n\x07\x41\x63\x63ount\x12\x11.pbx.AccountEvent\x1a\x0b.pbx.Unused\"\x00\x12\'\n\x05Topic\x12\x0f.pbx.TopicEvent\x1a\x0b.pbx.Unused\"\x00\x12\x35\n\x0cSubscription\x12\x16.pbx.SubscriptionEvent\x1a\x0b.pbx.Unused\"\x00\x12+\n\x07Message\x12\x11.pbx.MessageEvent\x1a\x0b.pbx.Unused\"\x00\x62\x06proto3') + serialized_pb=_b('\n\x0bmodel.proto\x12\x03pbx\"\x08\n\x06Unused\",\n\x0e\x44\x65\x66\x61ultAcsMode\x12\x0c\n\x04\x61uth\x18\x01 \x01(\t\x12\x0c\n\x04\x61non\x18\x02 \x01(\t\")\n\nAccessMode\x12\x0c\n\x04want\x18\x01 \x01(\t\x12\r\n\x05given\x18\x02 \x01(\t\"\'\n\x06SetSub\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x0c\n\x04mode\x18\x02 \x01(\t\"\x99\x01\n\nClientCred\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x10\n\x08response\x18\x03 \x01(\t\x12+\n\x06params\x18\x04 \x03(\x0b\x32\x1b.pbx.ClientCred.ParamsEntry\x1a-\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"T\n\x07SetDesc\x12(\n\x0b\x64\x65\x66\x61ult_acs\x18\x01 \x01(\x0b\x32\x13.pbx.DefaultAcsMode\x12\x0e\n\x06public\x18\x02 \x01(\x0c\x12\x0f\n\x07private\x18\x03 \x01(\x0c\"u\n\x07GetOpts\x12\x19\n\x11if_modified_since\x18\x01 \x01(\x03\x12\x0c\n\x04user\x18\x02 \x01(\t\x12\r\n\x05topic\x18\x03 \x01(\t\x12\x10\n\x08since_id\x18\x04 \x01(\x05\x12\x11\n\tbefore_id\x18\x05 \x01(\x05\x12\r\n\x05limit\x18\x06 \x01(\x05\"k\n\x08GetQuery\x12\x0c\n\x04what\x18\x01 \x01(\t\x12\x1a\n\x04\x64\x65sc\x18\x02 \x01(\x0b\x32\x0c.pbx.GetOpts\x12\x19\n\x03sub\x18\x03 \x01(\x0b\x32\x0c.pbx.GetOpts\x12\x1a\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x0c.pbx.GetOpts\"m\n\x08SetQuery\x12\x1a\n\x04\x64\x65sc\x18\x01 \x01(\x0b\x32\x0c.pbx.SetDesc\x12\x18\n\x03sub\x18\x02 \x01(\x0b\x32\x0b.pbx.SetSub\x12\x0c\n\x04tags\x18\x03 \x03(\t\x12\x1d\n\x04\x63red\x18\x04 \x01(\x0b\x32\x0f.pbx.ClientCred\"#\n\x08SeqRange\x12\x0b\n\x03low\x18\x01 \x01(\x05\x12\n\n\x02hi\x18\x02 \x01(\x05\"~\n\x08\x43lientHi\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nuser_agent\x18\x02 \x01(\t\x12\x0b\n\x03ver\x18\x03 \x01(\t\x12\x11\n\tdevice_id\x18\x04 \x01(\t\x12\x0c\n\x04lang\x18\x05 \x01(\t\x12\x10\n\x08platform\x18\x06 \x01(\t\x12\x12\n\nbackground\x18\x07 \x01(\x08\"\xbe\x01\n\tClientAcc\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0e\n\x06scheme\x18\x03 \x01(\t\x12\x0e\n\x06secret\x18\x04 \x01(\x0c\x12\r\n\x05login\x18\x05 \x01(\x08\x12\x0c\n\x04tags\x18\x06 \x03(\t\x12\x1a\n\x04\x64\x65sc\x18\x07 \x01(\x0b\x32\x0c.pbx.SetDesc\x12\x1d\n\x04\x63red\x18\x08 \x03(\x0b\x32\x0f.pbx.ClientCred\x12\r\n\x05token\x18\t \x01(\x0c\x12\r\n\x05state\x18\n \x01(\t\"X\n\x0b\x43lientLogin\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06scheme\x18\x02 \x01(\t\x12\x0e\n\x06secret\x18\x03 \x01(\x0c\x12\x1d\n\x04\x63red\x18\x04 \x03(\x0b\x32\x0f.pbx.ClientCred\"j\n\tClientSub\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12 \n\tset_query\x18\x03 \x01(\x0b\x32\r.pbx.SetQuery\x12 \n\tget_query\x18\x04 \x01(\x0b\x32\r.pbx.GetQuery\"7\n\x0b\x43lientLeave\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\r\n\x05unsub\x18\x03 \x01(\x08\"\x9d\x01\n\tClientPub\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x0f\n\x07no_echo\x18\x03 \x01(\x08\x12&\n\x04head\x18\x04 \x03(\x0b\x32\x18.pbx.ClientPub.HeadEntry\x12\x0f\n\x07\x63ontent\x18\x05 \x01(\x0c\x1a+\n\tHeadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"D\n\tClientGet\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x1c\n\x05query\x18\x03 \x01(\x0b\x32\r.pbx.GetQuery\"D\n\tClientSet\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x1c\n\x05query\x18\x03 \x01(\x0b\x32\r.pbx.SetQuery\"\xe0\x01\n\tClientDel\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12!\n\x04what\x18\x03 \x01(\x0e\x32\x13.pbx.ClientDel.What\x12\x1e\n\x07\x64\x65l_seq\x18\x04 \x03(\x0b\x32\r.pbx.SeqRange\x12\x0f\n\x07user_id\x18\x05 \x01(\t\x12\x1d\n\x04\x63red\x18\x06 \x01(\x0b\x32\x0f.pbx.ClientCred\x12\x0c\n\x04hard\x18\x07 \x01(\x08\"7\n\x04What\x12\x07\n\x03MSG\x10\x00\x12\t\n\x05TOPIC\x10\x01\x12\x07\n\x03SUB\x10\x02\x12\x08\n\x04USER\x10\x03\x12\x08\n\x04\x43RED\x10\x04\"H\n\nClientNote\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x1b\n\x04what\x18\x02 \x01(\x0e\x32\r.pbx.InfoNote\x12\x0e\n\x06seq_id\x18\x03 \x01(\x05\"\x8e\x03\n\tClientMsg\x12\x1b\n\x02hi\x18\x01 \x01(\x0b\x32\r.pbx.ClientHiH\x00\x12\x1d\n\x03\x61\x63\x63\x18\x02 \x01(\x0b\x32\x0e.pbx.ClientAccH\x00\x12!\n\x05login\x18\x03 \x01(\x0b\x32\x10.pbx.ClientLoginH\x00\x12\x1d\n\x03sub\x18\x04 \x01(\x0b\x32\x0e.pbx.ClientSubH\x00\x12!\n\x05leave\x18\x05 \x01(\x0b\x32\x10.pbx.ClientLeaveH\x00\x12\x1d\n\x03pub\x18\x06 \x01(\x0b\x32\x0e.pbx.ClientPubH\x00\x12\x1d\n\x03get\x18\x07 \x01(\x0b\x32\x0e.pbx.ClientGetH\x00\x12\x1d\n\x03set\x18\x08 \x01(\x0b\x32\x0e.pbx.ClientSetH\x00\x12\x1d\n\x03\x64\x65l\x18\t \x01(\x0b\x32\x0e.pbx.ClientDelH\x00\x12\x1f\n\x04note\x18\n \x01(\x0b\x32\x0f.pbx.ClientNoteH\x00\x12\x14\n\x0con_behalf_of\x18\x0b \x01(\t\x12\"\n\nauth_level\x18\x0c \x01(\x0e\x32\x0e.pbx.AuthLevelB\t\n\x07Message\"9\n\nServerCred\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x0c\n\x04\x64one\x18\x03 \x01(\x08\"\x8e\x02\n\tTopicDesc\x12\x12\n\ncreated_at\x18\x01 \x01(\x03\x12\x12\n\nupdated_at\x18\x02 \x01(\x03\x12\x12\n\ntouched_at\x18\x03 \x01(\x03\x12#\n\x06\x64\x65\x66\x61\x63s\x18\x04 \x01(\x0b\x32\x13.pbx.DefaultAcsMode\x12\x1c\n\x03\x61\x63s\x18\x05 \x01(\x0b\x32\x0f.pbx.AccessMode\x12\x0e\n\x06seq_id\x18\x06 \x01(\x05\x12\x0f\n\x07read_id\x18\x07 \x01(\x05\x12\x0f\n\x07recv_id\x18\x08 \x01(\x05\x12\x0e\n\x06\x64\x65l_id\x18\t \x01(\x05\x12\x0e\n\x06public\x18\n \x01(\x0c\x12\x0f\n\x07private\x18\x0b \x01(\x0c\x12\r\n\x05state\x18\x0c \x01(\t\x12\x10\n\x08state_at\x18\r \x01(\x03\"\xad\x02\n\x08TopicSub\x12\x12\n\nupdated_at\x18\x01 \x01(\x03\x12\x12\n\ndeleted_at\x18\x02 \x01(\x03\x12\x0e\n\x06online\x18\x03 \x01(\x08\x12\x1c\n\x03\x61\x63s\x18\x04 \x01(\x0b\x32\x0f.pbx.AccessMode\x12\x0f\n\x07read_id\x18\x05 \x01(\x05\x12\x0f\n\x07recv_id\x18\x06 \x01(\x05\x12\x0e\n\x06public\x18\x07 \x01(\x0c\x12\x0f\n\x07private\x18\x08 \x01(\x0c\x12\x0f\n\x07user_id\x18\t \x01(\t\x12\r\n\x05topic\x18\n \x01(\t\x12\x12\n\ntouched_at\x18\x0b \x01(\x03\x12\x0e\n\x06seq_id\x18\x0c \x01(\x05\x12\x0e\n\x06\x64\x65l_id\x18\r \x01(\x05\x12\x16\n\x0elast_seen_time\x18\x0e \x01(\x03\x12\x1c\n\x14last_seen_user_agent\x18\x0f \x01(\t\";\n\tDelValues\x12\x0e\n\x06\x64\x65l_id\x18\x01 \x01(\x05\x12\x1e\n\x07\x64\x65l_seq\x18\x02 \x03(\x0b\x32\r.pbx.SeqRange\"\x9f\x01\n\nServerCtrl\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x0c\n\x04\x63ode\x18\x03 \x01(\x05\x12\x0c\n\x04text\x18\x04 \x01(\t\x12+\n\x06params\x18\x05 \x03(\x0b\x32\x1b.pbx.ServerCtrl.ParamsEntry\x1a-\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xcf\x01\n\nServerData\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x14\n\x0c\x66rom_user_id\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\x03\x12\x12\n\ndeleted_at\x18\x03 \x01(\x03\x12\x0e\n\x06seq_id\x18\x04 \x01(\x05\x12\'\n\x04head\x18\x05 \x03(\x0b\x32\x19.pbx.ServerData.HeadEntry\x12\x0f\n\x07\x63ontent\x18\x06 \x01(\x0c\x1a+\n\tHeadEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xe4\x02\n\nServerPres\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x0b\n\x03src\x18\x02 \x01(\t\x12\"\n\x04what\x18\x03 \x01(\x0e\x32\x14.pbx.ServerPres.What\x12\x12\n\nuser_agent\x18\x04 \x01(\t\x12\x0e\n\x06seq_id\x18\x05 \x01(\x05\x12\x0e\n\x06\x64\x65l_id\x18\x06 \x01(\x05\x12\x1e\n\x07\x64\x65l_seq\x18\x07 \x03(\x0b\x32\r.pbx.SeqRange\x12\x16\n\x0etarget_user_id\x18\x08 \x01(\t\x12\x15\n\ractor_user_id\x18\t \x01(\t\x12\x1c\n\x03\x61\x63s\x18\n \x01(\x0b\x32\x0f.pbx.AccessMode\"u\n\x04What\x12\x06\n\x02ON\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\x06\n\x02UA\x10\x03\x12\x07\n\x03UPD\x10\x04\x12\x08\n\x04GONE\x10\x05\x12\x07\n\x03\x41\x43S\x10\x06\x12\x08\n\x04TERM\x10\x07\x12\x07\n\x03MSG\x10\x08\x12\x08\n\x04READ\x10\t\x12\x08\n\x04RECV\x10\n\x12\x07\n\x03\x44\x45L\x10\x0b\x12\x08\n\x04TAGS\x10\x0c\"\xab\x01\n\nServerMeta\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x0e.pbx.TopicDesc\x12\x1a\n\x03sub\x18\x04 \x03(\x0b\x32\r.pbx.TopicSub\x12\x1b\n\x03\x64\x65l\x18\x05 \x01(\x0b\x32\x0e.pbx.DelValues\x12\x0c\n\x04tags\x18\x06 \x03(\t\x12\x1d\n\x04\x63red\x18\x07 \x03(\x0b\x32\x0f.pbx.ServerCred\"^\n\nServerInfo\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x14\n\x0c\x66rom_user_id\x18\x02 \x01(\t\x12\x1b\n\x04what\x18\x03 \x01(\x0e\x32\r.pbx.InfoNote\x12\x0e\n\x06seq_id\x18\x04 \x01(\x05\"\xca\x01\n\tServerMsg\x12\x1f\n\x04\x63trl\x18\x01 \x01(\x0b\x32\x0f.pbx.ServerCtrlH\x00\x12\x1f\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x0f.pbx.ServerDataH\x00\x12\x1f\n\x04pres\x18\x03 \x01(\x0b\x32\x0f.pbx.ServerPresH\x00\x12\x1f\n\x04meta\x18\x04 \x01(\x0b\x32\x0f.pbx.ServerMetaH\x00\x12\x1f\n\x04info\x18\x05 \x01(\x0b\x32\x0f.pbx.ServerInfoH\x00\x12\r\n\x05topic\x18\x06 \x01(\tB\t\n\x07Message\"j\n\nServerResp\x12\x1d\n\x06status\x18\x01 \x01(\x0e\x32\r.pbx.RespCode\x12\x1e\n\x06srvmsg\x18\x02 \x01(\x0b\x32\x0e.pbx.ServerMsg\x12\x1d\n\x05\x63lmsg\x18\x03 \x01(\x0b\x32\x0e.pbx.ClientMsg\"\xa0\x01\n\x07Session\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\"\n\nauth_level\x18\x03 \x01(\x0e\x32\x0e.pbx.AuthLevel\x12\x13\n\x0bremote_addr\x18\x04 \x01(\t\x12\x12\n\nuser_agent\x18\x05 \x01(\t\x12\x11\n\tdevice_id\x18\x06 \x01(\t\x12\x10\n\x08language\x18\x07 \x01(\t\"D\n\tClientReq\x12\x1b\n\x03msg\x18\x01 \x01(\x0b\x32\x0e.pbx.ClientMsg\x12\x1a\n\x04sess\x18\x02 \x01(\x0b\x32\x0c.pbx.Session\"-\n\x0bSearchQuery\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t\"Z\n\x0bSearchFound\x12\x1d\n\x06status\x18\x01 \x01(\x0e\x32\r.pbx.RespCode\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x06result\x18\x03 \x03(\x0b\x32\r.pbx.TopicSub\"S\n\nTopicEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x0e.pbx.TopicDesc\"\x82\x01\n\x0c\x41\x63\x63ountEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12(\n\x0b\x64\x65\x66\x61ult_acs\x18\x03 \x01(\x0b\x32\x13.pbx.DefaultAcsMode\x12\x0e\n\x06public\x18\x04 \x01(\x0c\x12\x0c\n\x04tags\x18\x08 \x03(\t\"\xb0\x01\n\x11SubscriptionEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x0e\n\x06\x64\x65l_id\x18\x04 \x01(\x05\x12\x0f\n\x07read_id\x18\x05 \x01(\x05\x12\x0f\n\x07recv_id\x18\x06 \x01(\x05\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.pbx.AccessMode\x12\x0f\n\x07private\x18\x08 \x01(\x0c\"G\n\x0cMessageEvent\x12\x19\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\t.pbx.Crud\x12\x1c\n\x03msg\x18\x02 \x01(\x0b\x32\x0f.pbx.ServerData*3\n\tAuthLevel\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04\x41NON\x10\n\x12\x08\n\x04\x41UTH\x10\x14\x12\x08\n\x04ROOT\x10\x1e*&\n\x08InfoNote\x12\x08\n\x04READ\x10\x00\x12\x08\n\x04RECV\x10\x01\x12\x06\n\x02KP\x10\x02*<\n\x08RespCode\x12\x0c\n\x08\x43ONTINUE\x10\x00\x12\x08\n\x04\x44ROP\x10\x01\x12\x0b\n\x07RESPOND\x10\x02\x12\x0b\n\x07REPLACE\x10\x03**\n\x04\x43rud\x12\n\n\x06\x43REATE\x10\x00\x12\n\n\x06UPDATE\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\x32;\n\x04Node\x12\x33\n\x0bMessageLoop\x12\x0e.pbx.ClientMsg\x1a\x0e.pbx.ServerMsg\"\x00(\x01\x30\x01\x32\x9f\x02\n\x06Plugin\x12-\n\x08\x46ireHose\x12\x0e.pbx.ClientReq\x1a\x0f.pbx.ServerResp\"\x00\x12,\n\x04\x46ind\x12\x10.pbx.SearchQuery\x1a\x10.pbx.SearchFound\"\x00\x12+\n\x07\x41\x63\x63ount\x12\x11.pbx.AccountEvent\x1a\x0b.pbx.Unused\"\x00\x12\'\n\x05Topic\x12\x0f.pbx.TopicEvent\x1a\x0b.pbx.Unused\"\x00\x12\x35\n\x0cSubscription\x12\x16.pbx.SubscriptionEvent\x1a\x0b.pbx.Unused\"\x00\x12+\n\x07Message\x12\x11.pbx.MessageEvent\x1a\x0b.pbx.Unused\"\x00\x62\x06proto3') ) _AUTHLEVEL = _descriptor.EnumDescriptor( @@ -48,8 +48,8 @@ _AUTHLEVEL = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=5132, - serialized_end=5183, + serialized_start=5209, + serialized_end=5260, ) _sym_db.RegisterEnumDescriptor(_AUTHLEVEL) @@ -75,8 +75,8 @@ _INFONOTE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=5185, - serialized_end=5223, + serialized_start=5262, + serialized_end=5300, ) _sym_db.RegisterEnumDescriptor(_INFONOTE) @@ -106,8 +106,8 @@ _RESPCODE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=5225, - serialized_end=5285, + serialized_start=5302, + serialized_end=5362, ) _sym_db.RegisterEnumDescriptor(_RESPCODE) @@ -133,8 +133,8 @@ _CRUD = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=5287, - serialized_end=5329, + serialized_start=5364, + serialized_end=5406, ) _sym_db.RegisterEnumDescriptor(_CRUD) @@ -184,8 +184,8 @@ _CLIENTDEL_WHAT = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=1747, - serialized_end=1802, + serialized_start=1824, + serialized_end=1879, ) _sym_db.RegisterEnumDescriptor(_CLIENTDEL_WHAT) @@ -246,8 +246,8 @@ _SERVERPRES_WHAT = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=3588, - serialized_end=3705, + serialized_start=3665, + serialized_end=3782, ) _sym_db.RegisterEnumDescriptor(_SERVERPRES_WHAT) @@ -390,6 +390,43 @@ _SETSUB = _descriptor.Descriptor( ) +_CLIENTCRED_PARAMSENTRY = _descriptor.Descriptor( + name='ParamsEntry', + full_name='pbx.ClientCred.ParamsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='pbx.ClientCred.ParamsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='pbx.ClientCred.ParamsEntry.value', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=269, + serialized_end=314, +) + _CLIENTCRED = _descriptor.Descriptor( name='ClientCred', full_name='pbx.ClientCred', @@ -420,15 +457,15 @@ _CLIENTCRED = _descriptor.Descriptor( serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='params', full_name='pbx.ClientCred.params', index=3, - number=4, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[], + nested_types=[_CLIENTCRED_PARAMSENTRY, ], enum_types=[ ], serialized_options=None, @@ -437,8 +474,8 @@ _CLIENTCRED = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=160, - serialized_end=237, + serialized_start=161, + serialized_end=314, ) @@ -482,8 +519,8 @@ _SETDESC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=239, - serialized_end=323, + serialized_start=316, + serialized_end=400, ) @@ -548,8 +585,8 @@ _GETOPTS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=325, - serialized_end=442, + serialized_start=402, + serialized_end=519, ) @@ -600,8 +637,8 @@ _GETQUERY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=444, - serialized_end=551, + serialized_start=521, + serialized_end=628, ) @@ -652,8 +689,8 @@ _SETQUERY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=553, - serialized_end=662, + serialized_start=630, + serialized_end=739, ) @@ -690,8 +727,8 @@ _SEQRANGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=664, - serialized_end=699, + serialized_start=741, + serialized_end=776, ) @@ -763,8 +800,8 @@ _CLIENTHI = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=701, - serialized_end=827, + serialized_start=778, + serialized_end=904, ) @@ -857,8 +894,8 @@ _CLIENTACC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=830, - serialized_end=1020, + serialized_start=907, + serialized_end=1097, ) @@ -909,8 +946,8 @@ _CLIENTLOGIN = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1022, - serialized_end=1110, + serialized_start=1099, + serialized_end=1187, ) @@ -961,8 +998,8 @@ _CLIENTSUB = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1112, - serialized_end=1218, + serialized_start=1189, + serialized_end=1295, ) @@ -1006,8 +1043,8 @@ _CLIENTLEAVE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1220, - serialized_end=1275, + serialized_start=1297, + serialized_end=1352, ) @@ -1044,8 +1081,8 @@ _CLIENTPUB_HEADENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1392, - serialized_end=1435, + serialized_start=1469, + serialized_end=1512, ) _CLIENTPUB = _descriptor.Descriptor( @@ -1102,8 +1139,8 @@ _CLIENTPUB = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1278, - serialized_end=1435, + serialized_start=1355, + serialized_end=1512, ) @@ -1147,8 +1184,8 @@ _CLIENTGET = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1437, - serialized_end=1505, + serialized_start=1514, + serialized_end=1582, ) @@ -1192,8 +1229,8 @@ _CLIENTSET = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1507, - serialized_end=1575, + serialized_start=1584, + serialized_end=1652, ) @@ -1266,8 +1303,8 @@ _CLIENTDEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1578, - serialized_end=1802, + serialized_start=1655, + serialized_end=1879, ) @@ -1311,8 +1348,8 @@ _CLIENTNOTE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1804, - serialized_end=1876, + serialized_start=1881, + serialized_end=1953, ) @@ -1422,8 +1459,8 @@ _CLIENTMSG = _descriptor.Descriptor( name='Message', full_name='pbx.ClientMsg.Message', index=0, containing_type=None, fields=[]), ], - serialized_start=1879, - serialized_end=2277, + serialized_start=1956, + serialized_end=2354, ) @@ -1467,8 +1504,8 @@ _SERVERCRED = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2279, - serialized_end=2336, + serialized_start=2356, + serialized_end=2413, ) @@ -1582,8 +1619,8 @@ _TOPICDESC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2339, - serialized_end=2609, + serialized_start=2416, + serialized_end=2686, ) @@ -1711,8 +1748,8 @@ _TOPICSUB = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2612, - serialized_end=2913, + serialized_start=2689, + serialized_end=2990, ) @@ -1749,8 +1786,8 @@ _DELVALUES = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2915, - serialized_end=2974, + serialized_start=2992, + serialized_end=3051, ) @@ -1787,8 +1824,8 @@ _SERVERCTRL_PARAMSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3091, - serialized_end=3136, + serialized_start=269, + serialized_end=314, ) _SERVERCTRL = _descriptor.Descriptor( @@ -1845,8 +1882,8 @@ _SERVERCTRL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2977, - serialized_end=3136, + serialized_start=3054, + serialized_end=3213, ) @@ -1883,8 +1920,8 @@ _SERVERDATA_HEADENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1392, - serialized_end=1435, + serialized_start=1469, + serialized_end=1512, ) _SERVERDATA = _descriptor.Descriptor( @@ -1955,8 +1992,8 @@ _SERVERDATA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3139, - serialized_end=3346, + serialized_start=3216, + serialized_end=3423, ) @@ -2050,8 +2087,8 @@ _SERVERPRES = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3349, - serialized_end=3705, + serialized_start=3426, + serialized_end=3782, ) @@ -2123,8 +2160,8 @@ _SERVERMETA = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3708, - serialized_end=3879, + serialized_start=3785, + serialized_end=3956, ) @@ -2175,8 +2212,8 @@ _SERVERINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3881, - serialized_end=3975, + serialized_start=3958, + serialized_end=4052, ) @@ -2244,8 +2281,8 @@ _SERVERMSG = _descriptor.Descriptor( name='Message', full_name='pbx.ServerMsg.Message', index=0, containing_type=None, fields=[]), ], - serialized_start=3978, - serialized_end=4180, + serialized_start=4055, + serialized_end=4257, ) @@ -2289,8 +2326,8 @@ _SERVERRESP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4182, - serialized_end=4288, + serialized_start=4259, + serialized_end=4365, ) @@ -2362,8 +2399,8 @@ _SESSION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4291, - serialized_end=4451, + serialized_start=4368, + serialized_end=4528, ) @@ -2400,8 +2437,8 @@ _CLIENTREQ = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4453, - serialized_end=4521, + serialized_start=4530, + serialized_end=4598, ) @@ -2438,8 +2475,8 @@ _SEARCHQUERY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4523, - serialized_end=4568, + serialized_start=4600, + serialized_end=4645, ) @@ -2483,8 +2520,8 @@ _SEARCHFOUND = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4570, - serialized_end=4660, + serialized_start=4647, + serialized_end=4737, ) @@ -2528,8 +2565,8 @@ _TOPICEVENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4662, - serialized_end=4745, + serialized_start=4739, + serialized_end=4822, ) @@ -2587,8 +2624,8 @@ _ACCOUNTEVENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4748, - serialized_end=4878, + serialized_start=4825, + serialized_end=4955, ) @@ -2667,8 +2704,8 @@ _SUBSCRIPTIONEVENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4881, - serialized_end=5057, + serialized_start=4958, + serialized_end=5134, ) @@ -2705,10 +2742,12 @@ _MESSAGEEVENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5059, - serialized_end=5130, + serialized_start=5136, + serialized_end=5207, ) +_CLIENTCRED_PARAMSENTRY.containing_type = _CLIENTCRED +_CLIENTCRED.fields_by_name['params'].message_type = _CLIENTCRED_PARAMSENTRY _SETDESC.fields_by_name['default_acs'].message_type = _DEFAULTACSMODE _GETQUERY.fields_by_name['desc'].message_type = _GETOPTS _GETQUERY.fields_by_name['sub'].message_type = _GETOPTS @@ -2899,11 +2938,19 @@ SetSub = _reflection.GeneratedProtocolMessageType('SetSub', (_message.Message,), _sym_db.RegisterMessage(SetSub) ClientCred = _reflection.GeneratedProtocolMessageType('ClientCred', (_message.Message,), dict( + + ParamsEntry = _reflection.GeneratedProtocolMessageType('ParamsEntry', (_message.Message,), dict( + DESCRIPTOR = _CLIENTCRED_PARAMSENTRY, + __module__ = 'model_pb2' + # @@protoc_insertion_point(class_scope:pbx.ClientCred.ParamsEntry) + )) + , DESCRIPTOR = _CLIENTCRED, __module__ = 'model_pb2' # @@protoc_insertion_point(class_scope:pbx.ClientCred) )) _sym_db.RegisterMessage(ClientCred) +_sym_db.RegisterMessage(ClientCred.ParamsEntry) SetDesc = _reflection.GeneratedProtocolMessageType('SetDesc', (_message.Message,), dict( DESCRIPTOR = _SETDESC, @@ -3175,6 +3222,7 @@ MessageEvent = _reflection.GeneratedProtocolMessageType('MessageEvent', (_messag _sym_db.RegisterMessage(MessageEvent) +_CLIENTCRED_PARAMSENTRY._options = None _CLIENTPUB_HEADENTRY._options = None _SERVERCTRL_PARAMSENTRY._options = None _SERVERDATA_HEADENTRY._options = None @@ -3185,8 +3233,8 @@ _NODE = _descriptor.ServiceDescriptor( file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=5331, - serialized_end=5390, + serialized_start=5408, + serialized_end=5467, methods=[ _descriptor.MethodDescriptor( name='MessageLoop', @@ -3209,8 +3257,8 @@ _PLUGIN = _descriptor.ServiceDescriptor( file=DESCRIPTOR, index=1, serialized_options=None, - serialized_start=5393, - serialized_end=5680, + serialized_start=5470, + serialized_end=5757, methods=[ _descriptor.MethodDescriptor( name='FireHose', diff --git a/rest-auth/auth.py b/rest-auth/auth.py index 6e51ad10..037b770f 100755 --- a/rest-auth/auth.py +++ b/rest-auth/auth.py @@ -106,8 +106,8 @@ def upd(): @app.route('/rtagns', methods=['POST']) def rtags(): - # Return dummy namespace "rest" and "email" - return jsonify({'strarr': ['rest', 'email']}) + # Return dummy namespace "rest" and "email", let client check logins by regular expression. + return jsonify({'strarr': ['rest', 'email'], 'byteval': base64.b64encode('^[a-z0-9_]{3,8}$')}) @app.errorhandler(404) def not_found(error): diff --git a/server/auth/anon/auth_anon.go b/server/auth/anon/auth_anon.go index ce64c76a..f533fa6e 100644 --- a/server/auth/anon/auth_anon.go +++ b/server/auth/anon/auth_anon.go @@ -39,6 +39,11 @@ func (authenticator) Authenticate(secret []byte) (*auth.Rec, []byte, error) { return nil, nil, types.ErrUnsupported } +// AsTag is not supported, will produce an empty string. +func (authenticator) AsTag(token string) string { + return "" +} + // IsUnique for a noop. Anonymous login does not use secret, any secret is fine. func (authenticator) IsUnique(secret []byte) (bool, error) { return true, nil diff --git a/server/auth/auth.go b/server/auth/auth.go index eadb083b..2d4f6ffe 100644 --- a/server/auth/auth.go +++ b/server/auth/auth.go @@ -223,6 +223,10 @@ type AuthHandler interface { // Returns: user auth record, challenge, error. Authenticate(secret []byte) (*Rec, []byte, error) + // AsTag converts search token into prefixed tag or an empty string if it + // cannot be represented as a prefixed tag. + AsTag(token string) string + // IsUnique verifies if the provided secret can be considered unique by the auth scheme // E.g. if login is unique. IsUnique(secret []byte) (bool, error) diff --git a/server/auth/basic/auth_basic.go b/server/auth/basic/auth_basic.go index 22b35e34..3b8d645c 100644 --- a/server/auth/basic/auth_basic.go +++ b/server/auth/basic/auth_basic.go @@ -239,11 +239,17 @@ func (a *authenticator) Authenticate(secret []byte) (*auth.Rec, []byte, error) { State: types.StateUndefined}, nil, nil } -func (a *authenticator) PreCheck(secret []byte) (string, error) { - if err := a.checkLoginPolicy(uname); err != nil { - return "", err +// AsTag convert search token into a prefixed tag, if possible. +func (a *authenticator) AsTag(token string) string { + if !a.addToTags { + return "" } - return a.name + ":" + uname + + if err := a.checkLoginPolicy(token); err != nil { + return "" + } + + return a.name + ":" + token } // IsUnique checks login uniqueness. @@ -280,11 +286,11 @@ func (a *authenticator) DelRecords(uid types.Uid) error { // RestrictedTags returns tag namespaces (prefixes) restricted by this adapter. func (a *authenticator) RestrictedTags() ([]string, error) { - var tags []string + var prefix []string if a.addToTags { - tags = []string{a.name} + prefix = []string{a.name} } - return tags, nil + return prefix, nil } // GetResetParams returns authenticator parameters passed to password reset handler. diff --git a/server/auth/rest/README.md b/server/auth/rest/README.md index ba88a79a..f4e1a023 100644 --- a/server/auth/rest/README.md +++ b/server/auth/rest/README.md @@ -321,7 +321,9 @@ If accounts are managed by the server, the server should respond with an error ` ### `rtagns` Get a list of restricted tag namespaces. -Server may enforce certain tag namespaces to be restricted, i.e. not editable by the user. +Server may enforce certain tag namespaces (tag prefixes) to be restricted, i.e. not editable by the user. +These are also used when searching for users. +The server may optionally provide a regular expression to validate search tokens before rewriting them as prefixed tags. I.e. if server allows only logins of 3-8 ASCII letters and numbers then the regexp could be `^[a-z0-9_]{3,8}$` which is base64-encoded as `XlthLXowLTlfXXszLDh9JA==`. #### Sample request ```json @@ -333,6 +335,7 @@ Server may enforce certain tag namespaces to be restricted, i.e. not editable by #### Sample response ```json { - "strarr": ["basic", "email", "tel"] + "strarr": ["basic", "email", "tel"], + "byteval": "XlthLXowLTlfXXszLDh9JA==" } ``` diff --git a/server/auth/rest/auth_rest.go b/server/auth/rest/auth_rest.go index 0071b34b..aaaaaf0b 100644 --- a/server/auth/rest/auth_rest.go +++ b/server/auth/rest/auth_rest.go @@ -6,8 +6,10 @@ import ( "encoding/json" "errors" "io/ioutil" + "log" "net/http" "net/url" + "regexp" "strings" "time" @@ -26,6 +28,10 @@ type authenticator struct { allowNewAccounts bool // Use separate endpoints, i.e. add request name to serverUrl path when making requests. useSeparateEndpoints bool + // Cache of restricted tag prefixes (namespaces). + rTagNS []string + // Optional regex pattern for checking tokens. + reToken *regexp.Regexp } // Request to the server. @@ -202,6 +208,19 @@ func (a *authenticator) Authenticate(secret []byte) (*auth.Rec, []byte, error) { return resp.Record, resp.ByteVal, nil } +// AsTag converts search token into prefixed tag or an empty string if it +// cannot be represented as a prefixed tag. +func (a *authenticator) AsTag(token string) string { + if len(a.rTagNS) > 0 { + if a.reToken != nil && !a.reToken.MatchString(token) { + return "" + } + // No validation or passed validation. + return a.rTagNS[0] + ":" + token + } + return "" +} + // IsUnique verifies if the provided secret can be considered unique by the auth scheme // E.g. if login is unique. func (a *authenticator) IsUnique(secret []byte) (bool, error) { @@ -231,11 +250,24 @@ func (a *authenticator) DelRecords(uid types.Uid) error { // RestrictedTags returns tag namespaces (prefixes, such as prefix:login) restricted by the server. func (a *authenticator) RestrictedTags() ([]string, error) { + if a.rTagNS != nil { + ns := make([]string, len(a.rTagNS)) + copy(ns, a.rTagNS) + return ns, nil + } resp, err := a.callEndpoint("rtagns", nil, nil) if err != nil { return nil, err } + // Save valid result to cache. + a.rTagNS = resp.StrSliceVal + if len(resp.ByteVal) > 0 { + a.reToken, err = regexp.Compile(string(resp.ByteVal)) + if err != nil { + log.Println("rest_auth: invalid token regexp", string(resp.ByteVal)) + } + } return resp.StrSliceVal, nil } diff --git a/server/auth/token/auth_token.go b/server/auth/token/auth_token.go index f3ca3ec0..af8aaad2 100644 --- a/server/auth/token/auth_token.go +++ b/server/auth/token/auth_token.go @@ -157,6 +157,11 @@ func (ta *authenticator) GenSecret(rec *auth.Rec) ([]byte, time.Time, error) { return buf.Bytes(), expires, nil } +// AsTag is not supported, will produce an empty string. +func (authenticator) AsTag(token string) string { + return "" +} + // IsUnique is not supported, will produce an error. func (authenticator) IsUnique(token []byte) (bool, error) { return false, types.ErrUnsupported diff --git a/server/datamodel.go b/server/datamodel.go index 6d668315..7e8d2790 100644 --- a/server/datamodel.go +++ b/server/datamodel.go @@ -73,7 +73,7 @@ type MsgCredClient struct { // Verification response Response string `json:"resp,omitempty"` // Request parameters, such as preferences. Passed to valiator without interpretation. - Params interface{} `json:"params,omitempty"` + Params map[string]interface{} `json:"params,omitempty"` } // MsgSetQuery is an update to topic metadata: Desc, subscriptions, or tags. diff --git a/server/pbconverter.go b/server/pbconverter.go index 4acf6f7c..44be727d 100644 --- a/server/pbconverter.go +++ b/server/pbconverter.go @@ -921,7 +921,7 @@ func pbClientCredSerialize(in *MsgCredClient) *pbx.ClientCred { Method: in.Method, Value: in.Value, Response: in.Response, - Params: interfaceToBytes(in.Params)} + Params: interfaceMapToByteMap(in.Params)} } @@ -947,7 +947,7 @@ func pbClientCredDeserialize(in *pbx.ClientCred) *MsgCredClient { Method: in.GetMethod(), Value: in.GetValue(), Response: in.GetResponse(), - Params: bytesToInterface(in.GetParams())} + Params: byteMapToInterfaceMap(in.GetParams())} } func pbClientCredsDeserialize(in []*pbx.ClientCred) []MsgCredClient { diff --git a/server/user.go b/server/user.go index 9ba0f3b9..cd69156f 100644 --- a/server/user.go +++ b/server/user.go @@ -76,7 +76,7 @@ func replyCreateUser(s *Session, msg *ClientComMessage, rec *auth.Rec) { for i := range creds { cr := &creds[i] vld := store.GetValidator(cr.Method) - if err := vld.PreCheck(cr.Value, cr.Params); err != nil { + if _, err := vld.PreCheck(cr.Value, cr.Params); err != nil { log.Println("create user: failed credential pre-check", cr, err, s.sid) s.queueOut(decodeStoreError(err, msg.Id, "", msg.timestamp, map[string]interface{}{"what": cr.Method})) diff --git a/server/utils.go b/server/utils.go index 9f57760c..ff9bcb9b 100644 --- a/server/utils.go +++ b/server/utils.go @@ -9,7 +9,6 @@ import ( "fmt" "log" "net" - "net/mail" "path/filepath" "reflect" "regexp" @@ -21,6 +20,7 @@ import ( "unicode/utf8" "github.com/tinode/chat/server/auth" + "github.com/tinode/chat/server/store" "github.com/tinode/chat/server/store/types" "golang.org/x/crypto/acme/autocert" @@ -35,10 +35,6 @@ var prefixedTagRegexp = regexp.MustCompile(`^([a-z]\w{1,15}):[-_+.!?#@\pL\pN]{1, // Generic tag: the same restrictions as tag body. var tagRegexp = regexp.MustCompile(`^[-_+.!?#@\pL\pN]{1,96}$`) -// Token suitable as a login: 3-16 chars, starts with a Unicode letter (class L) and contains Unicode letters (L), -// numbers (N) and underscore. -var basicLoginName = regexp.MustCompile(`^\pL[_\pL\pN]{2,15}$`) - const nullValue = "\u2421" // Convert a list of IDs into ranges @@ -425,24 +421,26 @@ func rewriteTag(orig, countryCode string, withLogin bool) string { return orig } - // Is it email? - if addr, err := mail.ParseAddress(orig); err == nil { - if len([]rune(addr.Address)) < maxTagLength && addr.Address == orig { - return "email:" + orig + // Check if token can be rewritten by any of the validators + param := map[string]interface{}{"countryCode": countryCode} + for name, conf := range globals.validators { + if conf.addToTags { + val := store.GetValidator(name) + if tag, _ := val.PreCheck(orig, param); tag != "" { + return tag + } } - log.Println("failed to rewrite email tag", orig) - return "" } - if num, err := phonenumbers.Parse(orig, countryCode); err == nil { - // It's a phone number. Not checking the length because phone numbers cannot be that long. - return "tel:" + phonenumbers.Format(num, phonenumbers.E164) - } - - // Does it look like a username/login? - // TODO: use configured authenticators to check if orig is a valid user name. - if withLogin && basicLoginName.MatchString(orig) { - return "basic:" + orig + // Try authenticators now. + if withLogin { + auths := store.GetAuthNames() + for _, name := range auths { + auth := store.GetAuthHandler(name) + if tag := auth.AsTag(orig); tag != "" { + return tag + } + } } if tagRegexp.MatchString(orig) {