mikufans_proto_intl/
bilibili.app.im.v1.rs

1// This file is @generated by prost-build.
2///
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct AirDropShareUserInfo {
5    ///
6    #[prost(int64, tag = "1")]
7    pub mid: i64,
8    ///
9    #[prost(string, tag = "2")]
10    pub face: ::prost::alloc::string::String,
11    ///
12    #[prost(string, tag = "3")]
13    pub url: ::prost::alloc::string::String,
14    ///
15    #[prost(string, tag = "4")]
16    pub name: ::prost::alloc::string::String,
17}
18///
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct AirDropToImReply {
21    ///
22    #[prost(message, repeated, tag = "1")]
23    pub user_infos: ::prost::alloc::vec::Vec<AirDropShareUserInfo>,
24}
25///
26#[derive(Clone, Copy, PartialEq, ::prost::Message)]
27pub struct AirDropToImReq {
28    ///
29    #[prost(enumeration = "AirDropFrom", tag = "1")]
30    pub adf: i32,
31}
32///
33#[derive(Clone, PartialEq, ::prost::Message)]
34pub struct AutoReplyToast {
35    ///
36    #[prost(string, tag = "1")]
37    pub title: ::prost::alloc::string::String,
38    ///
39    #[prost(string, tag = "2")]
40    pub url: ::prost::alloc::string::String,
41}
42///
43#[derive(Clone, PartialEq, ::prost::Message)]
44pub struct BorderedLabel {
45    ///
46    #[prost(string, tag = "1")]
47    pub icon: ::prost::alloc::string::String,
48    ///
49    #[prost(string, tag = "2")]
50    pub text: ::prost::alloc::string::String,
51}
52///
53#[derive(Clone, Copy, PartialEq, ::prost::Message)]
54pub struct CancelInterceptInDustbinReply {}
55///
56#[derive(Clone, Copy, PartialEq, ::prost::Message)]
57pub struct CancelInterceptInDustbinReq {
58    ///
59    #[prost(message, optional, tag = "1")]
60    pub session_id: ::core::option::Option<SessionId>,
61}
62///
63#[derive(Clone, Copy, PartialEq, ::prost::Message)]
64pub struct ClearUnreadReply {}
65///
66#[derive(Clone, Copy, PartialEq, ::prost::Message)]
67pub struct ClearUnreadReq {
68    ///
69    #[prost(enumeration = "SessionPageType", tag = "1")]
70    pub page_type: i32,
71    ///
72    #[prost(message, optional, tag = "2")]
73    pub session_id: ::core::option::Option<SessionId>,
74}
75///
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct Contact {
78    ///
79    #[prost(int64, tag = "1")]
80    pub id: i64,
81    ///
82    #[prost(string, tag = "2")]
83    pub name: ::prost::alloc::string::String,
84    ///
85    #[prost(message, optional, tag = "3")]
86    pub avatar: ::core::option::Option<
87        super::super::super::dagw::component::avatar::v1::AvatarItem,
88    >,
89    ///
90    #[prost(string, tag = "4")]
91    pub vip_info: ::prost::alloc::string::String,
92    ///
93    #[prost(string, tag = "5")]
94    pub url: ::prost::alloc::string::String,
95    ///
96    #[prost(message, optional, tag = "6")]
97    pub name_render: ::core::option::Option<
98        super::super::super::account::service::v1::NameRender,
99    >,
100    ///
101    #[prost(bool, tag = "7")]
102    pub is_special_follow: bool,
103    ///
104    #[prost(string, tag = "8")]
105    pub face: ::prost::alloc::string::String,
106    ///
107    #[prost(int32, tag = "9")]
108    pub official_type: i32,
109}
110///
111#[derive(Clone, PartialEq, ::prost::Message)]
112pub struct ContactTab {
113    ///
114    #[prost(enumeration = "ContactTabType", tag = "1")]
115    pub tab: i32,
116    ///
117    #[prost(string, tag = "2")]
118    pub name: ::prost::alloc::string::String,
119}
120///
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct ContactsReply {
123    ///
124    #[prost(message, repeated, tag = "1")]
125    pub contacts: ::prost::alloc::vec::Vec<Contact>,
126    ///
127    #[prost(message, repeated, tag = "2")]
128    pub tab: ::prost::alloc::vec::Vec<ContactTab>,
129    ///
130    #[prost(enumeration = "ContactTabType", tag = "3")]
131    pub current_tab: i32,
132    ///
133    #[prost(message, optional, tag = "4")]
134    pub pagination_params: ::core::option::Option<PaginationParams>,
135}
136///
137#[derive(Clone, PartialEq, ::prost::Message)]
138pub struct ContactsReq {
139    ///
140    #[prost(enumeration = "ContactTabType", tag = "1")]
141    pub tab: i32,
142    ///
143    #[prost(message, optional, tag = "2")]
144    pub pagination_params: ::core::option::Option<PaginationParams>,
145}
146///
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct ContactsSearchReply {
149    ///
150    #[prost(message, repeated, tag = "1")]
151    pub contacts: ::prost::alloc::vec::Vec<Contact>,
152    ///
153    #[prost(message, optional, tag = "2")]
154    pub pagination_params: ::core::option::Option<PaginationParams>,
155}
156///
157#[derive(Clone, PartialEq, ::prost::Message)]
158pub struct ContactsSearchReq {
159    ///
160    #[prost(string, tag = "1")]
161    pub keyword: ::prost::alloc::string::String,
162    ///
163    #[prost(enumeration = "ContactTabType", tag = "2")]
164    pub tab: i32,
165    ///
166    #[prost(message, optional, tag = "3")]
167    pub pagination_params: ::core::option::Option<PaginationParams>,
168}
169///
170#[derive(Clone, Copy, PartialEq, ::prost::Message)]
171pub struct CustomerId {
172    ///
173    #[prost(int64, tag = "1")]
174    pub shop_id: i64,
175    ///
176    #[prost(int64, tag = "2")]
177    pub shop_type: i64,
178}
179///
180#[derive(Clone, Copy, PartialEq, ::prost::Message)]
181pub struct DeleteSessionListReply {}
182///
183#[derive(Clone, Copy, PartialEq, ::prost::Message)]
184pub struct DeleteSessionListReq {
185    ///
186    #[prost(enumeration = "SessionPageType", tag = "1")]
187    pub page_type: i32,
188}
189///
190#[derive(Clone, Copy, PartialEq, ::prost::Message)]
191pub struct DeleteSessionReply {}
192///
193#[derive(Clone, Copy, PartialEq, ::prost::Message)]
194pub struct DeleteSessionReq {
195    ///
196    #[prost(message, optional, tag = "1")]
197    pub session_id: ::core::option::Option<SessionId>,
198}
199///
200#[derive(Clone, PartialEq, ::prost::Message)]
201pub struct FilledLabel {
202    ///
203    #[prost(string, tag = "1")]
204    pub text: ::prost::alloc::string::String,
205}
206///
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct FilterConfig {
209    ///
210    #[prost(message, repeated, tag = "1")]
211    pub filters: ::prost::alloc::vec::Vec<SessionsFilter>,
212    ///
213    #[prost(enumeration = "SessionFilterType", tag = "2")]
214    pub current_filter: i32,
215}
216///
217#[derive(Clone, Copy, PartialEq, ::prost::Message)]
218pub struct FoldId {
219    ///
220    #[prost(enumeration = "SessionType", tag = "1")]
221    pub r#type: i32,
222}
223///
224#[derive(Clone, PartialEq, ::prost::Message)]
225pub struct GetImSettingsReply {
226    ///
227    #[prost(string, tag = "1")]
228    pub page_title: ::prost::alloc::string::String,
229    ///
230    #[prost(map = "int32, message", tag = "2")]
231    pub settings: ::std::collections::HashMap<i32, Setting>,
232}
233///
234#[derive(Clone, Copy, PartialEq, ::prost::Message)]
235pub struct GetImSettingsReq {
236    ///
237    #[prost(enumeration = "ImSettingType", tag = "1")]
238    pub r#type: i32,
239}
240///
241#[derive(Clone, PartialEq, ::prost::Message)]
242pub struct GetQuickLinkUnreadReply {
243    ///
244    #[prost(message, repeated, tag = "1")]
245    pub items: ::prost::alloc::vec::Vec<QuickLinkUnreadItem>,
246}
247///
248#[derive(Clone, Copy, PartialEq, ::prost::Message)]
249pub struct GetQuickLinkUnreadReq {}
250///
251#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct GetTotalUnreadReply {
253    ///
254    #[prost(message, optional, tag = "1")]
255    pub total: ::core::option::Option<Unread>,
256}
257///
258#[derive(Clone, Copy, PartialEq, ::prost::Message)]
259pub struct GetTotalUnreadReq {}
260///
261#[derive(Clone, Copy, PartialEq, ::prost::Message)]
262pub struct GroupId {
263    ///
264    #[prost(int64, tag = "1")]
265    pub group_id: i64,
266}
267///
268#[derive(Clone, PartialEq, ::prost::Message)]
269pub struct ImageLabel {
270    ///
271    #[prost(string, tag = "1")]
272    pub url: ::prost::alloc::string::String,
273    ///
274    #[prost(int32, tag = "2")]
275    pub width: i32,
276    ///
277    #[prost(int32, tag = "3")]
278    pub height: i32,
279}
280///
281#[derive(Clone, PartialEq, ::prost::Message)]
282pub struct Medal {
283    ///
284    #[prost(int64, tag = "1")]
285    pub uid: i64,
286    ///
287    #[prost(int32, tag = "2")]
288    pub medal_id: i32,
289    ///
290    #[prost(int32, tag = "3")]
291    pub level: i32,
292    ///
293    #[prost(string, tag = "4")]
294    pub medal_name: ::prost::alloc::string::String,
295    ///
296    #[prost(int32, tag = "5")]
297    pub score: i32,
298    ///
299    #[prost(int32, tag = "6")]
300    pub intimacy: i32,
301    ///
302    #[prost(int32, tag = "7")]
303    pub master_status: i32,
304    ///
305    #[prost(int32, tag = "8")]
306    pub is_receive: i32,
307    ///
308    #[prost(string, tag = "9")]
309    pub medal_color_start: ::prost::alloc::string::String,
310    ///
311    #[prost(string, tag = "10")]
312    pub medal_color_end: ::prost::alloc::string::String,
313    ///
314    #[prost(string, tag = "11")]
315    pub medal_color_border: ::prost::alloc::string::String,
316    ///
317    #[prost(string, tag = "12")]
318    pub medal_color_name: ::prost::alloc::string::String,
319    ///
320    #[prost(string, tag = "13")]
321    pub medal_color_level: ::prost::alloc::string::String,
322    ///
323    #[prost(int64, tag = "14")]
324    pub guard_level: i64,
325}
326///
327#[derive(Clone, PartialEq, ::prost::Message)]
328pub struct MsgSummary {
329    ///
330    #[prost(string, tag = "1")]
331    pub raw_msg: ::prost::alloc::string::String,
332    ///
333    #[prost(enumeration = "MsgSummaryPrefixType", tag = "2")]
334    pub prefix_type: i32,
335    ///
336    #[prost(string, tag = "3")]
337    pub prefix_text: ::prost::alloc::string::String,
338    ///
339    #[prost(bool, tag = "4")]
340    pub is_group_owner: bool,
341}
342///
343#[derive(Clone, Copy, PartialEq, ::prost::Message)]
344pub struct Offset {
345    ///
346    #[prost(int64, tag = "1")]
347    pub normal_offset: i64,
348    ///
349    #[prost(int64, tag = "2")]
350    pub top_offset: i64,
351}
352///
353#[derive(Clone, PartialEq, ::prost::Message)]
354pub struct OperationContent {
355    ///
356    #[prost(bool, tag = "1")]
357    pub show: bool,
358    ///
359    #[prost(string, tag = "2")]
360    pub text: ::prost::alloc::string::String,
361}
362///
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct PaginationParams {
365    ///
366    #[prost(map = "int32, message", tag = "1")]
367    pub offsets: ::std::collections::HashMap<i32, Offset>,
368    ///
369    #[prost(bool, tag = "2")]
370    pub has_more: bool,
371}
372///
373#[derive(Clone, PartialEq, ::prost::Message)]
374pub struct PinSessionReply {
375    ///
376    #[prost(int64, tag = "1")]
377    pub sequence_number: i64,
378    ///
379    #[prost(int64, tag = "2")]
380    pub code: i64,
381    ///
382    #[prost(string, tag = "3")]
383    pub message: ::prost::alloc::string::String,
384}
385///
386#[derive(Clone, Copy, PartialEq, ::prost::Message)]
387pub struct PinSessionReq {
388    ///
389    #[prost(message, optional, tag = "1")]
390    pub session_id: ::core::option::Option<SessionId>,
391    ///
392    #[prost(int64, tag = "2")]
393    pub top_time_micros: i64,
394}
395///
396#[derive(Clone, Copy, PartialEq, ::prost::Message)]
397pub struct PrivateId {
398    ///
399    #[prost(int64, tag = "1")]
400    pub talker_uid: i64,
401}
402///
403#[derive(Clone, PartialEq, ::prost::Message)]
404pub struct QuickLinkBubble {
405    ///
406    #[prost(int64, tag = "1")]
407    pub mid: i64,
408    ///
409    #[prost(string, tag = "2")]
410    pub avatar: ::prost::alloc::string::String,
411    ///
412    #[prost(string, tag = "3")]
413    pub nick_name: ::prost::alloc::string::String,
414    ///
415    #[prost(string, tag = "4")]
416    pub content: ::prost::alloc::string::String,
417    ///
418    #[prost(enumeration = "QuickLinkItemType", tag = "5")]
419    pub quick_link_item: i32,
420    ///
421    #[prost(enumeration = "QuickLinkMsgType", tag = "6")]
422    pub msg_type: i32,
423}
424///
425#[derive(Clone, PartialEq, ::prost::Message)]
426pub struct QuickLinkConfig {
427    ///
428    #[prost(message, repeated, tag = "1")]
429    pub items: ::prost::alloc::vec::Vec<QuickLinkItem>,
430    ///
431    #[prost(message, optional, tag = "2")]
432    pub bubble: ::core::option::Option<QuickLinkBubble>,
433    ///
434    #[prost(bool, tag = "3")]
435    pub is_legacy_style: bool,
436}
437///
438#[derive(Clone, PartialEq, ::prost::Message)]
439pub struct QuickLinkItem {
440    ///
441    #[prost(string, tag = "1")]
442    pub title: ::prost::alloc::string::String,
443    ///
444    #[prost(string, tag = "2")]
445    pub icon: ::prost::alloc::string::String,
446    ///
447    #[prost(string, tag = "3")]
448    pub icon_dark: ::prost::alloc::string::String,
449    ///
450    #[prost(string, tag = "4")]
451    pub url: ::prost::alloc::string::String,
452    ///
453    #[prost(message, optional, tag = "5")]
454    pub unread: ::core::option::Option<Unread>,
455    ///
456    #[prost(enumeration = "QuickLinkItemType", tag = "6")]
457    pub item_type: i32,
458}
459///
460#[derive(Clone, PartialEq, ::prost::Message)]
461pub struct QuickLinkUnreadItem {
462    ///
463    #[prost(enumeration = "QuickLinkItemType", tag = "1")]
464    pub item_type: i32,
465    ///
466    #[prost(message, optional, tag = "2")]
467    pub unread: ::core::option::Option<Unread>,
468}
469///
470#[derive(Clone, Copy, PartialEq, ::prost::Message)]
471pub struct RestrictedMode {
472    ///
473    #[prost(bool, tag = "1")]
474    pub teenagers: bool,
475    ///
476    #[prost(bool, tag = "2")]
477    pub lessons: bool,
478}
479///
480#[derive(Clone, PartialEq, ::prost::Message)]
481pub struct SelectItem {
482    ///
483    #[prost(int32, tag = "1")]
484    pub item_type: i32,
485    ///
486    #[prost(string, tag = "2")]
487    pub text: ::prost::alloc::string::String,
488    ///
489    #[prost(bool, tag = "3")]
490    pub selected: bool,
491}
492///
493#[derive(Clone, PartialEq, ::prost::Message)]
494pub struct Session {
495    ///
496    #[prost(message, optional, tag = "1")]
497    pub id: ::core::option::Option<SessionId>,
498    ///
499    #[prost(message, optional, tag = "2")]
500    pub session_info: ::core::option::Option<SessionInfo>,
501    ///
502    #[prost(message, optional, tag = "3")]
503    pub unread: ::core::option::Option<Unread>,
504    ///
505    #[prost(message, optional, tag = "4")]
506    pub msg_summary: ::core::option::Option<MsgSummary>,
507    ///
508    #[prost(int64, tag = "5")]
509    pub timestamp: i64,
510    ///
511    #[prost(bool, tag = "6")]
512    pub is_pinned: bool,
513    ///
514    #[prost(int64, tag = "7")]
515    pub sequence_number: i64,
516    ///
517    #[prost(bool, tag = "8")]
518    pub is_muted: bool,
519    ///
520    #[prost(string, tag = "9")]
521    pub chat_url: ::prost::alloc::string::String,
522    ///
523    #[prost(message, optional, tag = "10")]
524    pub operation: ::core::option::Option<SessionOperation>,
525    ///
526    #[prost(map = "string, string", tag = "11")]
527    pub trace_params: ::std::collections::HashMap<
528        ::prost::alloc::string::String,
529        ::prost::alloc::string::String,
530    >,
531}
532///
533#[derive(Clone, Copy, PartialEq, ::prost::Message)]
534pub struct SessionId {
535    ///
536    #[prost(oneof = "session_id::Id", tags = "1, 2, 3, 4, 5")]
537    pub id: ::core::option::Option<session_id::Id>,
538}
539/// Nested message and enum types in `SessionId`.
540pub mod session_id {
541    ///
542    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
543    pub enum Id {
544        ///
545        #[prost(message, tag = "1")]
546        PrivateId(super::PrivateId),
547        ///
548        #[prost(message, tag = "2")]
549        GroupId(super::GroupId),
550        ///
551        #[prost(message, tag = "3")]
552        FoldId(super::FoldId),
553        ///
554        #[prost(message, tag = "4")]
555        SystemId(super::SystemId),
556        ///
557        #[prost(message, tag = "5")]
558        CustomerId(super::CustomerId),
559    }
560}
561///
562#[derive(Clone, PartialEq, ::prost::Message)]
563pub struct SessionInfo {
564    ///
565    #[prost(string, tag = "1")]
566    pub session_name: ::prost::alloc::string::String,
567    ///
568    #[prost(message, optional, tag = "2")]
569    pub name_render: ::core::option::Option<
570        super::super::super::account::service::v1::NameRender,
571    >,
572    ///
573    #[prost(message, optional, tag = "3")]
574    pub avatar: ::core::option::Option<
575        super::super::super::dagw::component::avatar::v1::AvatarItem,
576    >,
577    ///
578    #[prost(string, tag = "4")]
579    pub vip_info: ::prost::alloc::string::String,
580    ///
581    #[prost(message, optional, tag = "5")]
582    pub user_label: ::core::option::Option<UserLabel>,
583    ///
584    #[prost(bool, tag = "6")]
585    pub is_live: bool,
586}
587///
588#[derive(Clone, PartialEq, ::prost::Message)]
589pub struct SessionListExtraInfo {
590    ///
591    #[prost(message, optional, tag = "1")]
592    pub auto_reply_toast: ::core::option::Option<AutoReplyToast>,
593    ///
594    #[prost(bool, tag = "2")]
595    pub show_anti_harassment_popup: bool,
596    ///
597    #[prost(string, tag = "3")]
598    pub customer_hint_title: ::prost::alloc::string::String,
599}
600///
601#[derive(Clone, PartialEq, ::prost::Message)]
602pub struct SessionListUpdateReply {
603    ///
604    #[prost(message, repeated, tag = "1")]
605    pub sessions: ::prost::alloc::vec::Vec<Session>,
606    ///
607    #[prost(message, optional, tag = "2")]
608    pub update_session_params: ::core::option::Option<UpdateSessionParams>,
609}
610///
611#[derive(Clone, PartialEq, ::prost::Message)]
612pub struct SessionListUpdateReq {
613    ///
614    #[prost(message, optional, tag = "1")]
615    pub restricted_mode: ::core::option::Option<RestrictedMode>,
616    ///
617    #[prost(message, optional, tag = "2")]
618    pub update_params: ::core::option::Option<UpdateSessionParams>,
619    ///
620    #[prost(enumeration = "SessionPageType", tag = "3")]
621    pub page_type: i32,
622    ///
623    #[prost(enumeration = "SessionFilterType", tag = "4")]
624    pub filter_type: i32,
625}
626///
627#[derive(Clone, PartialEq, ::prost::Message)]
628pub struct SessionMainReply {
629    ///
630    #[prost(message, optional, tag = "1")]
631    pub pagination_params: ::core::option::Option<PaginationParams>,
632    ///
633    #[prost(message, optional, tag = "2")]
634    pub update_session_params: ::core::option::Option<UpdateSessionParams>,
635    ///
636    #[prost(message, optional, tag = "3")]
637    pub quick_link_config: ::core::option::Option<QuickLinkConfig>,
638    ///
639    #[prost(message, optional, tag = "4")]
640    pub filter_config: ::core::option::Option<FilterConfig>,
641    ///
642    #[prost(message, repeated, tag = "5")]
643    pub sessions: ::prost::alloc::vec::Vec<Session>,
644    ///
645    #[prost(message, repeated, tag = "6")]
646    pub three_dot_items: ::prost::alloc::vec::Vec<ThreeDotItem>,
647    ///
648    #[prost(message, repeated, tag = "7")]
649    pub outside_item: ::prost::alloc::vec::Vec<ThreeDotItem>,
650    ///
651    #[prost(message, optional, tag = "8")]
652    pub extra_info: ::core::option::Option<SessionListExtraInfo>,
653}
654///
655#[derive(Clone, PartialEq, ::prost::Message)]
656pub struct SessionMainReq {
657    ///
658    #[prost(message, optional, tag = "1")]
659    pub restricted_mode: ::core::option::Option<RestrictedMode>,
660    ///
661    #[prost(message, optional, tag = "2")]
662    pub pagination_params: ::core::option::Option<PaginationParams>,
663    ///
664    #[prost(enumeration = "SessionFilterType", tag = "3")]
665    pub filter_type: i32,
666}
667///
668#[derive(Clone, PartialEq, ::prost::Message)]
669pub struct SessionOperation {
670    ///
671    #[prost(message, optional, tag = "1")]
672    pub pin: ::core::option::Option<OperationContent>,
673    ///
674    #[prost(message, optional, tag = "2")]
675    pub unpin: ::core::option::Option<OperationContent>,
676    ///
677    #[prost(message, optional, tag = "3")]
678    pub delete: ::core::option::Option<OperationContent>,
679    ///
680    #[prost(message, optional, tag = "4")]
681    pub clear_unread: ::core::option::Option<OperationContent>,
682    ///
683    #[prost(message, optional, tag = "5")]
684    pub unblock: ::core::option::Option<OperationContent>,
685}
686///
687#[derive(Clone, PartialEq, ::prost::Message)]
688pub struct SessionSecondaryReply {
689    ///
690    #[prost(message, optional, tag = "1")]
691    pub pagination_params: ::core::option::Option<PaginationParams>,
692    ///
693    #[prost(message, optional, tag = "2")]
694    pub update_session_params: ::core::option::Option<UpdateSessionParams>,
695    ///
696    #[prost(message, repeated, tag = "3")]
697    pub sessions: ::prost::alloc::vec::Vec<Session>,
698    ///
699    #[prost(message, repeated, tag = "4")]
700    pub three_dot_items: ::prost::alloc::vec::Vec<ThreeDotItem>,
701    ///
702    #[prost(message, repeated, tag = "5")]
703    pub outside_item: ::prost::alloc::vec::Vec<ThreeDotItem>,
704}
705///
706#[derive(Clone, PartialEq, ::prost::Message)]
707pub struct SessionSecondaryReq {
708    ///
709    #[prost(message, optional, tag = "1")]
710    pub restricted_mode: ::core::option::Option<RestrictedMode>,
711    ///
712    #[prost(message, optional, tag = "2")]
713    pub pagination_params: ::core::option::Option<PaginationParams>,
714    ///
715    #[prost(enumeration = "SessionPageType", tag = "3")]
716    pub page_type: i32,
717}
718///
719#[derive(Clone, PartialEq, ::prost::Message)]
720pub struct SessionUpdateReply {
721    ///
722    #[prost(message, optional, tag = "1")]
723    pub session: ::core::option::Option<Session>,
724}
725///
726#[derive(Clone, Copy, PartialEq, ::prost::Message)]
727pub struct SessionUpdateReq {
728    ///
729    #[prost(message, optional, tag = "1")]
730    pub session_id: ::core::option::Option<SessionId>,
731    ///
732    #[prost(enumeration = "SessionPageType", tag = "2")]
733    pub page_type: i32,
734}
735///
736#[derive(Clone, PartialEq, ::prost::Message)]
737pub struct SessionsFilter {
738    ///
739    #[prost(enumeration = "SessionFilterType", tag = "1")]
740    pub stype: i32,
741    ///
742    #[prost(string, tag = "2")]
743    pub title: ::prost::alloc::string::String,
744}
745///
746#[derive(Clone, PartialEq, ::prost::Message)]
747pub struct SetImSettingsReply {
748    ///
749    #[prost(string, tag = "1")]
750    pub toast: ::prost::alloc::string::String,
751}
752///
753#[derive(Clone, PartialEq, ::prost::Message)]
754pub struct SetImSettingsReq {
755    ///
756    #[prost(map = "int32, message", tag = "1")]
757    pub settings: ::std::collections::HashMap<i32, Setting>,
758}
759///
760#[derive(Clone, PartialEq, ::prost::Message)]
761pub struct Setting {
762    ///
763    #[prost(oneof = "setting::Content", tags = "1, 2, 3, 4")]
764    pub content: ::core::option::Option<setting::Content>,
765}
766/// Nested message and enum types in `Setting`.
767pub mod setting {
768    ///
769    #[derive(Clone, PartialEq, ::prost::Oneof)]
770    pub enum Content {
771        ///
772        #[prost(message, tag = "1")]
773        Switch(super::SettingSwitch),
774        ///
775        #[prost(message, tag = "2")]
776        Select(super::SettingSelect),
777        ///
778        #[prost(message, tag = "3")]
779        Redirect(super::SettingRedirect),
780        ///
781        #[prost(message, tag = "4")]
782        Text(super::SettingText),
783    }
784}
785///
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct SettingRedirect {
788    ///
789    #[prost(string, tag = "3")]
790    pub title: ::prost::alloc::string::String,
791    ///
792    #[prost(string, tag = "4")]
793    pub subtitle: ::prost::alloc::string::String,
794    ///
795    #[prost(string, tag = "5")]
796    pub selected_summary: ::prost::alloc::string::String,
797    ///
798    #[prost(oneof = "setting_redirect::Content", tags = "1, 2, 6, 7")]
799    pub content: ::core::option::Option<setting_redirect::Content>,
800}
801/// Nested message and enum types in `SettingRedirect`.
802pub mod setting_redirect {
803    ///
804    #[derive(Clone, PartialEq, ::prost::Oneof)]
805    pub enum Content {
806        ///
807        #[prost(message, tag = "1")]
808        SettingPage(super::Redirect2SettingPage),
809        ///
810        #[prost(message, tag = "2")]
811        OtherPage(super::Redirect2OtherPage),
812        ///
813        #[prost(message, tag = "6")]
814        Popup(super::Redirect2Popup),
815        ///
816        #[prost(message, tag = "7")]
817        WindowSelect(super::RedirectWindowSelect),
818    }
819}
820///
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct SettingSelect {
823    ///
824    #[prost(message, repeated, tag = "1")]
825    pub item: ::prost::alloc::vec::Vec<SelectItem>,
826}
827///
828#[derive(Clone, PartialEq, ::prost::Message)]
829pub struct SettingSwitch {
830    ///
831    #[prost(bool, tag = "1")]
832    pub switch_on: bool,
833    ///
834    #[prost(string, tag = "2")]
835    pub title: ::prost::alloc::string::String,
836    ///
837    #[prost(string, tag = "3")]
838    pub subtitle: ::prost::alloc::string::String,
839}
840///
841#[derive(Clone, PartialEq, ::prost::Message)]
842pub struct SettingText {
843    ///
844    #[prost(string, tag = "1")]
845    pub text: ::prost::alloc::string::String,
846}
847///
848#[derive(Clone, Copy, PartialEq, ::prost::Message)]
849pub struct SystemId {
850    ///
851    #[prost(enumeration = "SessionType", tag = "1")]
852    pub r#type: i32,
853}
854///
855#[derive(Clone, PartialEq, ::prost::Message)]
856pub struct ThreeDotItem {
857    ///
858    #[prost(string, tag = "1")]
859    pub title: ::prost::alloc::string::String,
860    ///
861    #[prost(string, tag = "2")]
862    pub icon: ::prost::alloc::string::String,
863    ///
864    #[prost(string, tag = "3")]
865    pub url: ::prost::alloc::string::String,
866    ///
867    #[prost(enumeration = "ThreeDotItemType", tag = "4")]
868    pub r#type: i32,
869    ///
870    #[prost(bool, tag = "5")]
871    pub has_red_dot: bool,
872}
873///
874#[derive(Clone, Copy, PartialEq, ::prost::Message)]
875pub struct UnPinSessionReply {
876    ///
877    #[prost(int64, tag = "1")]
878    pub sequence_number: i64,
879}
880///
881#[derive(Clone, Copy, PartialEq, ::prost::Message)]
882pub struct UnPinSessionReq {
883    ///
884    #[prost(message, optional, tag = "1")]
885    pub session_id: ::core::option::Option<SessionId>,
886}
887///
888#[derive(Clone, PartialEq, ::prost::Message)]
889pub struct Unread {
890    ///
891    #[prost(enumeration = "UnreadStyle", tag = "1")]
892    pub style: i32,
893    ///
894    #[prost(int64, tag = "2")]
895    pub number: i64,
896    ///
897    #[prost(string, tag = "3")]
898    pub number_show: ::prost::alloc::string::String,
899}
900///
901#[derive(Clone, PartialEq, ::prost::Message)]
902pub struct UpdateSessionParams {
903    ///
904    #[prost(map = "int32, message", tag = "1")]
905    pub max_session_ts: ::std::collections::HashMap<i32, Offset>,
906}
907///
908#[derive(Clone, PartialEq, ::prost::Message)]
909pub struct UserLabel {
910    ///
911    #[prost(enumeration = "LabelType", tag = "1")]
912    pub r#type: i32,
913    ///
914    #[prost(message, optional, tag = "2")]
915    pub style: ::core::option::Option<UserLabelStyle>,
916}
917///
918#[derive(Clone, PartialEq, ::prost::Message)]
919pub struct UserLabelStyle {
920    ///
921    #[prost(oneof = "user_label_style::Style", tags = "2, 3, 4, 5")]
922    pub style: ::core::option::Option<user_label_style::Style>,
923}
924/// Nested message and enum types in `UserLabelStyle`.
925pub mod user_label_style {
926    ///
927    #[derive(Clone, PartialEq, ::prost::Oneof)]
928    pub enum Style {
929        ///
930        #[prost(message, tag = "2")]
931        BorderedLabel(super::BorderedLabel),
932        ///
933        #[prost(message, tag = "3")]
934        FilledLabel(super::FilledLabel),
935        ///
936        #[prost(message, tag = "4")]
937        ImageLabel(super::ImageLabel),
938        ///
939        #[prost(message, tag = "5")]
940        MedalLabel(super::Medal),
941    }
942}
943///
944#[derive(Clone, PartialEq, ::prost::Message)]
945pub struct Redirect2OtherPage {
946    ///
947    #[prost(string, tag = "1")]
948    pub url: ::prost::alloc::string::String,
949}
950///
951#[derive(Clone, PartialEq, ::prost::Message)]
952pub struct Redirect2Popup {
953    ///
954    #[prost(string, tag = "1")]
955    pub title: ::prost::alloc::string::String,
956    ///
957    #[prost(string, tag = "2")]
958    pub subtitle: ::prost::alloc::string::String,
959    ///
960    #[prost(string, tag = "3")]
961    pub url: ::prost::alloc::string::String,
962}
963///
964#[derive(Clone, PartialEq, ::prost::Message)]
965pub struct Redirect2SettingPage {
966    ///
967    #[prost(map = "int32, message", tag = "1")]
968    pub sub_settings: ::std::collections::HashMap<i32, Setting>,
969    ///
970    #[prost(string, tag = "2")]
971    pub page_title: ::prost::alloc::string::String,
972    ///
973    #[prost(string, tag = "3")]
974    pub url: ::prost::alloc::string::String,
975    ///
976    #[prost(enumeration = "ImSettingType", tag = "4")]
977    pub parent_setting_type: i32,
978}
979///
980#[derive(Clone, PartialEq, ::prost::Message)]
981pub struct RedirectWindowSelect {
982    ///
983    #[prost(string, tag = "1")]
984    pub title: ::prost::alloc::string::String,
985    ///
986    #[prost(message, repeated, tag = "2")]
987    pub item: ::prost::alloc::vec::Vec<SelectItem>,
988}
989///
990#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
991#[repr(i32)]
992pub enum AirDropFrom {
993    ///
994    AdfUnknown = 0,
995    ///
996    AdfInsideApp = 1,
997    ///
998    AdfOutsideApp = 2,
999}
1000impl AirDropFrom {
1001    /// String value of the enum field names used in the ProtoBuf definition.
1002    ///
1003    /// The values are not transformed in any way and thus are considered stable
1004    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1005    pub fn as_str_name(&self) -> &'static str {
1006        match self {
1007            Self::AdfUnknown => "ADF_UNKNOWN",
1008            Self::AdfInsideApp => "ADF_INSIDE_APP",
1009            Self::AdfOutsideApp => "ADF_OUTSIDE_APP",
1010        }
1011    }
1012    /// Creates an enum from field names used in the ProtoBuf definition.
1013    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1014        match value {
1015            "ADF_UNKNOWN" => Some(Self::AdfUnknown),
1016            "ADF_INSIDE_APP" => Some(Self::AdfInsideApp),
1017            "ADF_OUTSIDE_APP" => Some(Self::AdfOutsideApp),
1018            _ => None,
1019        }
1020    }
1021}
1022///
1023#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1024#[repr(i32)]
1025pub enum ContactTabType {
1026    ///
1027    TabUnknown = 0,
1028    ///
1029    TabGroup = 1,
1030    ///
1031    TabFollow = 2,
1032    ///
1033    TabFans = 3,
1034}
1035impl ContactTabType {
1036    /// String value of the enum field names used in the ProtoBuf definition.
1037    ///
1038    /// The values are not transformed in any way and thus are considered stable
1039    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1040    pub fn as_str_name(&self) -> &'static str {
1041        match self {
1042            Self::TabUnknown => "TAB_UNKNOWN",
1043            Self::TabGroup => "TAB_GROUP",
1044            Self::TabFollow => "TAB_FOLLOW",
1045            Self::TabFans => "TAB_FANS",
1046        }
1047    }
1048    /// Creates an enum from field names used in the ProtoBuf definition.
1049    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1050        match value {
1051            "TAB_UNKNOWN" => Some(Self::TabUnknown),
1052            "TAB_GROUP" => Some(Self::TabGroup),
1053            "TAB_FOLLOW" => Some(Self::TabFollow),
1054            "TAB_FANS" => Some(Self::TabFans),
1055            _ => None,
1056        }
1057    }
1058}
1059///
1060#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1061#[repr(i32)]
1062pub enum ImSettingType {
1063    ///
1064    SettingTypeNeedAll = 0,
1065    ///
1066    SettingTypeReplyMe = 1,
1067    ///
1068    SettingTypeNewFans = 2,
1069    ///
1070    SettingTypeReceiveLike = 3,
1071    ///
1072    SettingTypeMsgRemind = 4,
1073    ///
1074    SettingTypeMsgInterception = 5,
1075    ///
1076    SettingTypeFansGroupMsg = 6,
1077    ///
1078    SettingTypeFansGroupMsgReceive = 7,
1079    ///
1080    SettingTypeFansGroupMsgFold = 8,
1081    ///
1082    SettingTypeFansGroupMsgJoinGuide = 9,
1083    ///
1084    SettingTypeUnfollowedMsg = 10,
1085    ///
1086    SettingTypeUnfollowedMsgFold = 11,
1087    ///
1088    SettingTypeBlackList = 12,
1089    ///
1090    SettingTypeAntiHarassment = 13,
1091    ///
1092    SettingTypeAntiHarassmentSwitch = 14,
1093    ///
1094    SettingTypeAntiHarassmentOpenTipText = 15,
1095    ///
1096    SettingTypeCloseFansGroup = 16,
1097    ///
1098    SettingTypeOldReplyMe = 17,
1099    ///
1100    SettingTypeOldAtMe = 18,
1101    ///
1102    SettingTypeOldReceiveLike = 19,
1103    ///
1104    SettingTypeAntiHarassmentInteractLimits = 20,
1105    ///
1106    SettingTypeAntiHarassmentDuration = 21,
1107    ///
1108    SettingTypeAntiHarassmentCommentLimits = 22,
1109    ///
1110    SettingTypeAntiHarassmentDanmuLimits = 23,
1111    ///
1112    SettingTypeUnfollowedMsgReceive = 24,
1113}
1114impl ImSettingType {
1115    /// String value of the enum field names used in the ProtoBuf definition.
1116    ///
1117    /// The values are not transformed in any way and thus are considered stable
1118    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1119    pub fn as_str_name(&self) -> &'static str {
1120        match self {
1121            Self::SettingTypeNeedAll => "SETTING_TYPE_NEED_ALL",
1122            Self::SettingTypeReplyMe => "SETTING_TYPE_REPLY_ME",
1123            Self::SettingTypeNewFans => "SETTING_TYPE_NEW_FANS",
1124            Self::SettingTypeReceiveLike => "SETTING_TYPE_RECEIVE_LIKE",
1125            Self::SettingTypeMsgRemind => "SETTING_TYPE_MSG_REMIND",
1126            Self::SettingTypeMsgInterception => "SETTING_TYPE_MSG_INTERCEPTION",
1127            Self::SettingTypeFansGroupMsg => "SETTING_TYPE_FANS_GROUP_MSG",
1128            Self::SettingTypeFansGroupMsgReceive => "SETTING_TYPE_FANS_GROUP_MSG_RECEIVE",
1129            Self::SettingTypeFansGroupMsgFold => "SETTING_TYPE_FANS_GROUP_MSG_FOLD",
1130            Self::SettingTypeFansGroupMsgJoinGuide => {
1131                "SETTING_TYPE_FANS_GROUP_MSG_JOIN_GUIDE"
1132            }
1133            Self::SettingTypeUnfollowedMsg => "SETTING_TYPE_UNFOLLOWED_MSG",
1134            Self::SettingTypeUnfollowedMsgFold => "SETTING_TYPE_UNFOLLOWED_MSG_FOLD",
1135            Self::SettingTypeBlackList => "SETTING_TYPE_BLACK_LIST",
1136            Self::SettingTypeAntiHarassment => "SETTING_TYPE_ANTI_HARASSMENT",
1137            Self::SettingTypeAntiHarassmentSwitch => {
1138                "SETTING_TYPE_ANTI_HARASSMENT_SWITCH"
1139            }
1140            Self::SettingTypeAntiHarassmentOpenTipText => {
1141                "SETTING_TYPE_ANTI_HARASSMENT_OPEN_TIP_TEXT"
1142            }
1143            Self::SettingTypeCloseFansGroup => "SETTING_TYPE_CLOSE_FANS_GROUP",
1144            Self::SettingTypeOldReplyMe => "SETTING_TYPE_OLD_REPLY_ME",
1145            Self::SettingTypeOldAtMe => "SETTING_TYPE_OLD_AT_ME",
1146            Self::SettingTypeOldReceiveLike => "SETTING_TYPE_OLD_RECEIVE_LIKE",
1147            Self::SettingTypeAntiHarassmentInteractLimits => {
1148                "SETTING_TYPE_ANTI_HARASSMENT_INTERACT_LIMITS"
1149            }
1150            Self::SettingTypeAntiHarassmentDuration => {
1151                "SETTING_TYPE_ANTI_HARASSMENT_DURATION"
1152            }
1153            Self::SettingTypeAntiHarassmentCommentLimits => {
1154                "SETTING_TYPE_ANTI_HARASSMENT_COMMENT_LIMITS"
1155            }
1156            Self::SettingTypeAntiHarassmentDanmuLimits => {
1157                "SETTING_TYPE_ANTI_HARASSMENT_DANMU_LIMITS"
1158            }
1159            Self::SettingTypeUnfollowedMsgReceive => {
1160                "SETTING_TYPE_UNFOLLOWED_MSG_RECEIVE"
1161            }
1162        }
1163    }
1164    /// Creates an enum from field names used in the ProtoBuf definition.
1165    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1166        match value {
1167            "SETTING_TYPE_NEED_ALL" => Some(Self::SettingTypeNeedAll),
1168            "SETTING_TYPE_REPLY_ME" => Some(Self::SettingTypeReplyMe),
1169            "SETTING_TYPE_NEW_FANS" => Some(Self::SettingTypeNewFans),
1170            "SETTING_TYPE_RECEIVE_LIKE" => Some(Self::SettingTypeReceiveLike),
1171            "SETTING_TYPE_MSG_REMIND" => Some(Self::SettingTypeMsgRemind),
1172            "SETTING_TYPE_MSG_INTERCEPTION" => Some(Self::SettingTypeMsgInterception),
1173            "SETTING_TYPE_FANS_GROUP_MSG" => Some(Self::SettingTypeFansGroupMsg),
1174            "SETTING_TYPE_FANS_GROUP_MSG_RECEIVE" => {
1175                Some(Self::SettingTypeFansGroupMsgReceive)
1176            }
1177            "SETTING_TYPE_FANS_GROUP_MSG_FOLD" => Some(Self::SettingTypeFansGroupMsgFold),
1178            "SETTING_TYPE_FANS_GROUP_MSG_JOIN_GUIDE" => {
1179                Some(Self::SettingTypeFansGroupMsgJoinGuide)
1180            }
1181            "SETTING_TYPE_UNFOLLOWED_MSG" => Some(Self::SettingTypeUnfollowedMsg),
1182            "SETTING_TYPE_UNFOLLOWED_MSG_FOLD" => {
1183                Some(Self::SettingTypeUnfollowedMsgFold)
1184            }
1185            "SETTING_TYPE_BLACK_LIST" => Some(Self::SettingTypeBlackList),
1186            "SETTING_TYPE_ANTI_HARASSMENT" => Some(Self::SettingTypeAntiHarassment),
1187            "SETTING_TYPE_ANTI_HARASSMENT_SWITCH" => {
1188                Some(Self::SettingTypeAntiHarassmentSwitch)
1189            }
1190            "SETTING_TYPE_ANTI_HARASSMENT_OPEN_TIP_TEXT" => {
1191                Some(Self::SettingTypeAntiHarassmentOpenTipText)
1192            }
1193            "SETTING_TYPE_CLOSE_FANS_GROUP" => Some(Self::SettingTypeCloseFansGroup),
1194            "SETTING_TYPE_OLD_REPLY_ME" => Some(Self::SettingTypeOldReplyMe),
1195            "SETTING_TYPE_OLD_AT_ME" => Some(Self::SettingTypeOldAtMe),
1196            "SETTING_TYPE_OLD_RECEIVE_LIKE" => Some(Self::SettingTypeOldReceiveLike),
1197            "SETTING_TYPE_ANTI_HARASSMENT_INTERACT_LIMITS" => {
1198                Some(Self::SettingTypeAntiHarassmentInteractLimits)
1199            }
1200            "SETTING_TYPE_ANTI_HARASSMENT_DURATION" => {
1201                Some(Self::SettingTypeAntiHarassmentDuration)
1202            }
1203            "SETTING_TYPE_ANTI_HARASSMENT_COMMENT_LIMITS" => {
1204                Some(Self::SettingTypeAntiHarassmentCommentLimits)
1205            }
1206            "SETTING_TYPE_ANTI_HARASSMENT_DANMU_LIMITS" => {
1207                Some(Self::SettingTypeAntiHarassmentDanmuLimits)
1208            }
1209            "SETTING_TYPE_UNFOLLOWED_MSG_RECEIVE" => {
1210                Some(Self::SettingTypeUnfollowedMsgReceive)
1211            }
1212            _ => None,
1213        }
1214    }
1215}
1216///
1217#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1218#[repr(i32)]
1219pub enum LabelType {
1220    ///
1221    Default = 0,
1222    ///
1223    HuaHuo = 1,
1224    ///
1225    OriginalFans = 2,
1226    ///
1227    SpecialAttention = 3,
1228    ///
1229    ContractUp = 4,
1230    ///
1231    OldFans = 5,
1232    ///
1233    SpecialAttention2 = 6,
1234    ///
1235    FansMedal = 7,
1236    ///
1237    GuardMedal = 8,
1238}
1239impl LabelType {
1240    /// String value of the enum field names used in the ProtoBuf definition.
1241    ///
1242    /// The values are not transformed in any way and thus are considered stable
1243    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1244    pub fn as_str_name(&self) -> &'static str {
1245        match self {
1246            Self::Default => "LABEL_TYPE_DEFAULT",
1247            Self::HuaHuo => "LABEL_TYPE_HUA_HUO",
1248            Self::OriginalFans => "LABEL_TYPE_ORIGINAL_FANS",
1249            Self::SpecialAttention => "LABEL_TYPE_SPECIAL_ATTENTION",
1250            Self::ContractUp => "LABEL_TYPE_CONTRACT_UP",
1251            Self::OldFans => "LABEL_TYPE_OLD_FANS",
1252            Self::SpecialAttention2 => "LABEL_TYPE_SPECIAL_ATTENTION_2",
1253            Self::FansMedal => "LABEL_TYPE_FANS_MEDAL",
1254            Self::GuardMedal => "LABEL_TYPE_GUARD_MEDAL",
1255        }
1256    }
1257    /// Creates an enum from field names used in the ProtoBuf definition.
1258    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1259        match value {
1260            "LABEL_TYPE_DEFAULT" => Some(Self::Default),
1261            "LABEL_TYPE_HUA_HUO" => Some(Self::HuaHuo),
1262            "LABEL_TYPE_ORIGINAL_FANS" => Some(Self::OriginalFans),
1263            "LABEL_TYPE_SPECIAL_ATTENTION" => Some(Self::SpecialAttention),
1264            "LABEL_TYPE_CONTRACT_UP" => Some(Self::ContractUp),
1265            "LABEL_TYPE_OLD_FANS" => Some(Self::OldFans),
1266            "LABEL_TYPE_SPECIAL_ATTENTION_2" => Some(Self::SpecialAttention2),
1267            "LABEL_TYPE_FANS_MEDAL" => Some(Self::FansMedal),
1268            "LABEL_TYPE_GUARD_MEDAL" => Some(Self::GuardMedal),
1269            _ => None,
1270        }
1271    }
1272}
1273///
1274#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1275#[repr(i32)]
1276pub enum MsgSummaryPrefixType {
1277    ///
1278    None = 0,
1279    ///
1280    Notification = 1,
1281    ///
1282    GroupBlocked = 2,
1283    ///
1284    Mentioned = 3,
1285    ///
1286    Unread = 4,
1287}
1288impl MsgSummaryPrefixType {
1289    /// String value of the enum field names used in the ProtoBuf definition.
1290    ///
1291    /// The values are not transformed in any way and thus are considered stable
1292    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1293    pub fn as_str_name(&self) -> &'static str {
1294        match self {
1295            Self::None => "MSG_SUMMARY_PREFIX_TYPE_NONE",
1296            Self::Notification => "MSG_SUMMARY_PREFIX_TYPE_NOTIFICATION",
1297            Self::GroupBlocked => "MSG_SUMMARY_PREFIX_TYPE_GROUP_BLOCKED",
1298            Self::Mentioned => "MSG_SUMMARY_PREFIX_TYPE_MENTIONED",
1299            Self::Unread => "MSG_SUMMARY_PREFIX_TYPE_UNREAD",
1300        }
1301    }
1302    /// Creates an enum from field names used in the ProtoBuf definition.
1303    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1304        match value {
1305            "MSG_SUMMARY_PREFIX_TYPE_NONE" => Some(Self::None),
1306            "MSG_SUMMARY_PREFIX_TYPE_NOTIFICATION" => Some(Self::Notification),
1307            "MSG_SUMMARY_PREFIX_TYPE_GROUP_BLOCKED" => Some(Self::GroupBlocked),
1308            "MSG_SUMMARY_PREFIX_TYPE_MENTIONED" => Some(Self::Mentioned),
1309            "MSG_SUMMARY_PREFIX_TYPE_UNREAD" => Some(Self::Unread),
1310            _ => None,
1311        }
1312    }
1313}
1314///
1315#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1316#[repr(i32)]
1317pub enum QuickLinkItemType {
1318    ///
1319    Unknown = 0,
1320    ///
1321    OldLike = 1,
1322    ///
1323    OldReply = 2,
1324    ///
1325    At = 3,
1326    ///
1327    System = 4,
1328    ///
1329    HuaHuo = 5,
1330    ///
1331    Follow = 6,
1332    ///
1333    Reply = 100,
1334    ///
1335    Like = 101,
1336}
1337impl QuickLinkItemType {
1338    /// String value of the enum field names used in the ProtoBuf definition.
1339    ///
1340    /// The values are not transformed in any way and thus are considered stable
1341    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1342    pub fn as_str_name(&self) -> &'static str {
1343        match self {
1344            Self::Unknown => "QUICK_LINK_ITEM_TYPE_UNKNOWN",
1345            Self::OldLike => "QUICK_LINK_ITEM_TYPE_OLD_LIKE",
1346            Self::OldReply => "QUICK_LINK_ITEM_TYPE_OLD_REPLY",
1347            Self::At => "QUICK_LINK_ITEM_TYPE_AT",
1348            Self::System => "QUICK_LINK_ITEM_TYPE_SYSTEM",
1349            Self::HuaHuo => "QUICK_LINK_ITEM_TYPE_HUA_HUO",
1350            Self::Follow => "QUICK_LINK_ITEM_TYPE_FOLLOW",
1351            Self::Reply => "QUICK_LINK_ITEM_TYPE_REPLY",
1352            Self::Like => "QUICK_LINK_ITEM_TYPE_LIKE",
1353        }
1354    }
1355    /// Creates an enum from field names used in the ProtoBuf definition.
1356    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1357        match value {
1358            "QUICK_LINK_ITEM_TYPE_UNKNOWN" => Some(Self::Unknown),
1359            "QUICK_LINK_ITEM_TYPE_OLD_LIKE" => Some(Self::OldLike),
1360            "QUICK_LINK_ITEM_TYPE_OLD_REPLY" => Some(Self::OldReply),
1361            "QUICK_LINK_ITEM_TYPE_AT" => Some(Self::At),
1362            "QUICK_LINK_ITEM_TYPE_SYSTEM" => Some(Self::System),
1363            "QUICK_LINK_ITEM_TYPE_HUA_HUO" => Some(Self::HuaHuo),
1364            "QUICK_LINK_ITEM_TYPE_FOLLOW" => Some(Self::Follow),
1365            "QUICK_LINK_ITEM_TYPE_REPLY" => Some(Self::Reply),
1366            "QUICK_LINK_ITEM_TYPE_LIKE" => Some(Self::Like),
1367            _ => None,
1368        }
1369    }
1370}
1371///
1372#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1373#[repr(i32)]
1374pub enum QuickLinkMsgType {
1375    ///
1376    LikeMsg = 0,
1377    ///
1378    ReplyMsg = 1,
1379    ///
1380    AtMsg = 2,
1381    ///
1382    DanmuMsg = 3,
1383    ///
1384    CoinMsg = 4,
1385    ///
1386    FavoriteMsg = 5,
1387}
1388impl QuickLinkMsgType {
1389    /// String value of the enum field names used in the ProtoBuf definition.
1390    ///
1391    /// The values are not transformed in any way and thus are considered stable
1392    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1393    pub fn as_str_name(&self) -> &'static str {
1394        match self {
1395            Self::LikeMsg => "LikeMsg",
1396            Self::ReplyMsg => "ReplyMsg",
1397            Self::AtMsg => "AtMsg",
1398            Self::DanmuMsg => "DanmuMsg",
1399            Self::CoinMsg => "CoinMsg",
1400            Self::FavoriteMsg => "FavoriteMsg",
1401        }
1402    }
1403    /// Creates an enum from field names used in the ProtoBuf definition.
1404    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1405        match value {
1406            "LikeMsg" => Some(Self::LikeMsg),
1407            "ReplyMsg" => Some(Self::ReplyMsg),
1408            "AtMsg" => Some(Self::AtMsg),
1409            "DanmuMsg" => Some(Self::DanmuMsg),
1410            "CoinMsg" => Some(Self::CoinMsg),
1411            "FavoriteMsg" => Some(Self::FavoriteMsg),
1412            _ => None,
1413        }
1414    }
1415}
1416///
1417#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1418#[repr(i32)]
1419pub enum SessionFilterType {
1420    ///
1421    FilterDefault = 0,
1422    ///
1423    FilterFollow = 1,
1424}
1425impl SessionFilterType {
1426    /// String value of the enum field names used in the ProtoBuf definition.
1427    ///
1428    /// The values are not transformed in any way and thus are considered stable
1429    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1430    pub fn as_str_name(&self) -> &'static str {
1431        match self {
1432            Self::FilterDefault => "FILTER_DEFAULT",
1433            Self::FilterFollow => "FILTER_FOLLOW",
1434        }
1435    }
1436    /// Creates an enum from field names used in the ProtoBuf definition.
1437    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1438        match value {
1439            "FILTER_DEFAULT" => Some(Self::FilterDefault),
1440            "FILTER_FOLLOW" => Some(Self::FilterFollow),
1441            _ => None,
1442        }
1443    }
1444}
1445///
1446#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1447#[repr(i32)]
1448pub enum SessionPageType {
1449    ///
1450    Unknown = 0,
1451    ///
1452    Home = 1,
1453    ///
1454    Unfollowed = 2,
1455    ///
1456    Stranger = 3,
1457    ///
1458    Dustbin = 4,
1459    ///
1460    Group = 5,
1461    ///
1462    HuaHuo = 6,
1463    ///
1464    Ai = 7,
1465    ///
1466    Customer = 8,
1467}
1468impl SessionPageType {
1469    /// String value of the enum field names used in the ProtoBuf definition.
1470    ///
1471    /// The values are not transformed in any way and thus are considered stable
1472    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1473    pub fn as_str_name(&self) -> &'static str {
1474        match self {
1475            Self::Unknown => "SESSION_PAGE_TYPE_UNKNOWN",
1476            Self::Home => "SESSION_PAGE_TYPE_HOME",
1477            Self::Unfollowed => "SESSION_PAGE_TYPE_UNFOLLOWED",
1478            Self::Stranger => "SESSION_PAGE_TYPE_STRANGER",
1479            Self::Dustbin => "SESSION_PAGE_TYPE_DUSTBIN",
1480            Self::Group => "SESSION_PAGE_TYPE_GROUP",
1481            Self::HuaHuo => "SESSION_PAGE_TYPE_HUA_HUO",
1482            Self::Ai => "SESSION_PAGE_TYPE_AI",
1483            Self::Customer => "SESSION_PAGE_TYPE_CUSTOMER",
1484        }
1485    }
1486    /// Creates an enum from field names used in the ProtoBuf definition.
1487    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1488        match value {
1489            "SESSION_PAGE_TYPE_UNKNOWN" => Some(Self::Unknown),
1490            "SESSION_PAGE_TYPE_HOME" => Some(Self::Home),
1491            "SESSION_PAGE_TYPE_UNFOLLOWED" => Some(Self::Unfollowed),
1492            "SESSION_PAGE_TYPE_STRANGER" => Some(Self::Stranger),
1493            "SESSION_PAGE_TYPE_DUSTBIN" => Some(Self::Dustbin),
1494            "SESSION_PAGE_TYPE_GROUP" => Some(Self::Group),
1495            "SESSION_PAGE_TYPE_HUA_HUO" => Some(Self::HuaHuo),
1496            "SESSION_PAGE_TYPE_AI" => Some(Self::Ai),
1497            "SESSION_PAGE_TYPE_CUSTOMER" => Some(Self::Customer),
1498            _ => None,
1499        }
1500    }
1501}
1502///
1503#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1504#[repr(i32)]
1505pub enum SessionType {
1506    ///
1507    Unknown = 0,
1508    ///
1509    Private = 1,
1510    ///
1511    Group = 2,
1512    ///
1513    GroupFold = 3,
1514    ///
1515    Unfollowed = 4,
1516    ///
1517    Stranger = 5,
1518    ///
1519    Dustbin = 6,
1520    ///
1521    CustomerFold = 7,
1522    ///
1523    System = 8,
1524    ///
1525    AiFold = 9,
1526    ///
1527    CustomerAccount = 10,
1528}
1529impl SessionType {
1530    /// String value of the enum field names used in the ProtoBuf definition.
1531    ///
1532    /// The values are not transformed in any way and thus are considered stable
1533    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1534    pub fn as_str_name(&self) -> &'static str {
1535        match self {
1536            Self::Unknown => "SESSION_TYPE_UNKNOWN",
1537            Self::Private => "SESSION_TYPE_PRIVATE",
1538            Self::Group => "SESSION_TYPE_GROUP",
1539            Self::GroupFold => "SESSION_TYPE_GROUP_FOLD",
1540            Self::Unfollowed => "SESSION_TYPE_UNFOLLOWED",
1541            Self::Stranger => "SESSION_TYPE_STRANGER",
1542            Self::Dustbin => "SESSION_TYPE_DUSTBIN",
1543            Self::CustomerFold => "SESSION_TYPE_CUSTOMER_FOLD",
1544            Self::System => "SESSION_TYPE_SYSTEM",
1545            Self::AiFold => "SESSION_TYPE_AI_FOLD",
1546            Self::CustomerAccount => "SESSION_TYPE_CUSTOMER_ACCOUNT",
1547        }
1548    }
1549    /// Creates an enum from field names used in the ProtoBuf definition.
1550    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1551        match value {
1552            "SESSION_TYPE_UNKNOWN" => Some(Self::Unknown),
1553            "SESSION_TYPE_PRIVATE" => Some(Self::Private),
1554            "SESSION_TYPE_GROUP" => Some(Self::Group),
1555            "SESSION_TYPE_GROUP_FOLD" => Some(Self::GroupFold),
1556            "SESSION_TYPE_UNFOLLOWED" => Some(Self::Unfollowed),
1557            "SESSION_TYPE_STRANGER" => Some(Self::Stranger),
1558            "SESSION_TYPE_DUSTBIN" => Some(Self::Dustbin),
1559            "SESSION_TYPE_CUSTOMER_FOLD" => Some(Self::CustomerFold),
1560            "SESSION_TYPE_SYSTEM" => Some(Self::System),
1561            "SESSION_TYPE_AI_FOLD" => Some(Self::AiFold),
1562            "SESSION_TYPE_CUSTOMER_ACCOUNT" => Some(Self::CustomerAccount),
1563            _ => None,
1564        }
1565    }
1566}
1567///
1568#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1569#[repr(i32)]
1570pub enum ThreeDotItemType {
1571    ///
1572    Unknown = 0,
1573    ///
1574    ReadAll = 1,
1575    ///
1576    MsgSetting = 2,
1577    ///
1578    AutoReply = 3,
1579    ///
1580    UpHelper = 4,
1581    ///
1582    LiveHelper = 5,
1583    ///
1584    FansGroupHelper = 6,
1585    ///
1586    ContributionPush = 7,
1587    ///
1588    Contacts = 8,
1589    ///
1590    ClearList = 9,
1591}
1592impl ThreeDotItemType {
1593    /// String value of the enum field names used in the ProtoBuf definition.
1594    ///
1595    /// The values are not transformed in any way and thus are considered stable
1596    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1597    pub fn as_str_name(&self) -> &'static str {
1598        match self {
1599            Self::Unknown => "THREE_DOT_ITEM_TYPE_UNKNOWN",
1600            Self::ReadAll => "THREE_DOT_ITEM_TYPE_READ_ALL",
1601            Self::MsgSetting => "THREE_DOT_ITEM_TYPE_MSG_SETTING",
1602            Self::AutoReply => "THREE_DOT_ITEM_TYPE_AUTO_REPLY",
1603            Self::UpHelper => "THREE_DOT_ITEM_TYPE_UP_HELPER",
1604            Self::LiveHelper => "THREE_DOT_ITEM_TYPE_LIVE_HELPER",
1605            Self::FansGroupHelper => "THREE_DOT_ITEM_TYPE_FANS_GROUP_HELPER",
1606            Self::ContributionPush => "THREE_DOT_ITEM_TYPE_CONTRIBUTION_PUSH",
1607            Self::Contacts => "THREE_DOT_ITEM_TYPE_CONTACTS",
1608            Self::ClearList => "THREE_DOT_ITEM_TYPE_CLEAR_LIST",
1609        }
1610    }
1611    /// Creates an enum from field names used in the ProtoBuf definition.
1612    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1613        match value {
1614            "THREE_DOT_ITEM_TYPE_UNKNOWN" => Some(Self::Unknown),
1615            "THREE_DOT_ITEM_TYPE_READ_ALL" => Some(Self::ReadAll),
1616            "THREE_DOT_ITEM_TYPE_MSG_SETTING" => Some(Self::MsgSetting),
1617            "THREE_DOT_ITEM_TYPE_AUTO_REPLY" => Some(Self::AutoReply),
1618            "THREE_DOT_ITEM_TYPE_UP_HELPER" => Some(Self::UpHelper),
1619            "THREE_DOT_ITEM_TYPE_LIVE_HELPER" => Some(Self::LiveHelper),
1620            "THREE_DOT_ITEM_TYPE_FANS_GROUP_HELPER" => Some(Self::FansGroupHelper),
1621            "THREE_DOT_ITEM_TYPE_CONTRIBUTION_PUSH" => Some(Self::ContributionPush),
1622            "THREE_DOT_ITEM_TYPE_CONTACTS" => Some(Self::Contacts),
1623            "THREE_DOT_ITEM_TYPE_CLEAR_LIST" => Some(Self::ClearList),
1624            _ => None,
1625        }
1626    }
1627}
1628///
1629#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1630#[repr(i32)]
1631pub enum UnreadStyle {
1632    ///
1633    None = 0,
1634    ///
1635    Dot = 1,
1636    ///
1637    Number = 2,
1638}
1639impl UnreadStyle {
1640    /// String value of the enum field names used in the ProtoBuf definition.
1641    ///
1642    /// The values are not transformed in any way and thus are considered stable
1643    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1644    pub fn as_str_name(&self) -> &'static str {
1645        match self {
1646            Self::None => "UNREAD_STYLE_NONE",
1647            Self::Dot => "UNREAD_STYLE_DOT",
1648            Self::Number => "UNREAD_STYLE_NUMBER",
1649        }
1650    }
1651    /// Creates an enum from field names used in the ProtoBuf definition.
1652    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1653        match value {
1654            "UNREAD_STYLE_NONE" => Some(Self::None),
1655            "UNREAD_STYLE_DOT" => Some(Self::Dot),
1656            "UNREAD_STYLE_NUMBER" => Some(Self::Number),
1657            _ => None,
1658        }
1659    }
1660}