1use super::*;
2
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4#[serde(tag = "type")]
5#[non_exhaustive]
6pub enum AgentCryptoError {
7 #[serde(rename = "DECRYPT_AES")]
8 DecryptAes,
9 #[serde(rename = "DECRYPT_CB")]
10 DecryptCb,
11 #[serde(rename = "RATCHET_HEADER")]
12 RatchetHeader,
13 #[serde(rename = "RATCHET_SYNC")]
14 RatchetSync,
15 #[serde(untagged)]
16 Undocumented(JsonObject),
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20#[serde(tag = "type")]
21#[non_exhaustive]
22pub enum AgentErrorType {
23 #[serde(rename = "CMD")]
24 Cmd {
25 #[serde(rename = "cmdErr")]
26 cmd_err: CommandErrorType,
27
28 #[serde(rename = "errContext")]
29 err_context: String,
30
31 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
32 undocumented: HashMap<String, JsonObject>,
33 },
34 #[serde(rename = "CONN")]
35 Conn {
36 #[serde(rename = "connErr")]
37 conn_err: ConnectionErrorType,
38
39 #[serde(rename = "errContext")]
40 err_context: String,
41
42 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
43 undocumented: HashMap<String, JsonObject>,
44 },
45 #[serde(rename = "NO_USER")]
46 NoUser,
47 #[serde(rename = "SMP")]
48 Smp {
49 #[serde(rename = "serverAddress")]
50 server_address: String,
51
52 #[serde(rename = "smpErr")]
53 smp_err: ErrorType,
54
55 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
56 undocumented: HashMap<String, JsonObject>,
57 },
58 #[serde(rename = "NTF")]
59 Ntf {
60 #[serde(rename = "serverAddress")]
61 server_address: String,
62
63 #[serde(rename = "ntfErr")]
64 ntf_err: ErrorType,
65
66 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
67 undocumented: HashMap<String, JsonObject>,
68 },
69 #[serde(rename = "XFTP")]
70 Xftp {
71 #[serde(rename = "serverAddress")]
72 server_address: String,
73
74 #[serde(rename = "xftpErr")]
75 xftp_err: XFTPErrorType,
76
77 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
78 undocumented: HashMap<String, JsonObject>,
79 },
80 #[serde(rename = "FILE")]
81 File {
82 #[serde(rename = "fileErr")]
83 file_err: FileErrorType,
84
85 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
86 undocumented: HashMap<String, JsonObject>,
87 },
88 #[serde(rename = "PROXY")]
89 Proxy {
90 #[serde(rename = "proxyServer")]
91 proxy_server: String,
92
93 #[serde(rename = "relayServer")]
94 relay_server: String,
95
96 #[serde(rename = "proxyErr")]
97 proxy_err: ProxyClientError,
98
99 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
100 undocumented: HashMap<String, JsonObject>,
101 },
102 #[serde(rename = "RCP")]
103 Rcp {
104 #[serde(rename = "rcpErr")]
105 rcp_err: RCErrorType,
106
107 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
108 undocumented: HashMap<String, JsonObject>,
109 },
110 #[serde(rename = "BROKER")]
111 Broker {
112 #[serde(rename = "brokerAddress")]
113 broker_address: String,
114
115 #[serde(rename = "brokerErr")]
116 broker_err: BrokerErrorType,
117
118 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
119 undocumented: HashMap<String, JsonObject>,
120 },
121 #[serde(rename = "AGENT")]
122 Agent {
123 #[serde(rename = "agentErr")]
124 agent_err: SMPAgentError,
125
126 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
127 undocumented: HashMap<String, JsonObject>,
128 },
129 #[serde(rename = "INTERNAL")]
130 Internal {
131 #[serde(rename = "internalErr")]
132 internal_err: String,
133
134 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
135 undocumented: HashMap<String, JsonObject>,
136 },
137 #[serde(rename = "CRITICAL")]
138 Critical {
139 #[serde(rename = "offerRestart")]
140 offer_restart: bool,
141
142 #[serde(rename = "criticalErr")]
143 critical_err: String,
144
145 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
146 undocumented: HashMap<String, JsonObject>,
147 },
148 #[serde(rename = "INACTIVE")]
149 Inactive,
150 #[serde(untagged)]
151 Undocumented(JsonObject),
152}
153
154#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
155#[serde(tag = "type")]
156#[non_exhaustive]
157pub enum BrokerErrorType {
158 #[serde(rename = "RESPONSE")]
159 Response {
160 #[serde(rename = "respErr")]
161 resp_err: String,
162
163 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
164 undocumented: HashMap<String, JsonObject>,
165 },
166 #[serde(rename = "UNEXPECTED")]
167 Unexpected {
168 #[serde(rename = "respErr")]
169 resp_err: String,
170
171 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
172 undocumented: HashMap<String, JsonObject>,
173 },
174 #[serde(rename = "NETWORK")]
175 Network,
176 #[serde(rename = "HOST")]
177 Host,
178 #[serde(rename = "NO_SERVICE")]
179 NoService,
180 #[serde(rename = "TRANSPORT")]
181 Transport {
182 #[serde(rename = "transportErr")]
183 transport_err: TransportError,
184
185 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
186 undocumented: HashMap<String, JsonObject>,
187 },
188 #[serde(rename = "TIMEOUT")]
189 Timeout,
190 #[serde(untagged)]
191 Undocumented(JsonObject),
192}
193
194#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
195#[serde(tag = "type")]
196#[non_exhaustive]
197pub enum ChatError {
198 #[serde(rename = "error")]
199 Error {
200 #[serde(rename = "errorType")]
201 error_type: ChatErrorType,
202
203 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
204 undocumented: HashMap<String, JsonObject>,
205 },
206 #[serde(rename = "errorAgent")]
207 ErrorAgent {
208 #[serde(rename = "agentError")]
209 agent_error: AgentErrorType,
210
211 #[serde(rename = "connectionEntity_", skip_serializing_if = "Option::is_none")]
212 connection_entity: Option<ConnectionEntity>,
213
214 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
215 undocumented: HashMap<String, JsonObject>,
216 },
217 #[serde(rename = "errorStore")]
218 ErrorStore {
219 #[serde(rename = "storeError")]
220 store_error: StoreError,
221
222 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
223 undocumented: HashMap<String, JsonObject>,
224 },
225 #[serde(untagged)]
226 Undocumented(JsonObject),
227}
228
229#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
230#[serde(tag = "type")]
231#[non_exhaustive]
232pub enum ChatErrorType {
233 #[serde(rename = "noActiveUser")]
234 NoActiveUser,
235 #[serde(rename = "noConnectionUser")]
236 NoConnectionUser {
237 #[serde(rename = "agentConnId")]
238 agent_conn_id: String,
239
240 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
241 undocumented: HashMap<String, JsonObject>,
242 },
243 #[serde(rename = "noSndFileUser")]
244 NoSndFileUser {
245 #[serde(rename = "agentSndFileId")]
246 agent_snd_file_id: String,
247
248 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
249 undocumented: HashMap<String, JsonObject>,
250 },
251 #[serde(rename = "noRcvFileUser")]
252 NoRcvFileUser {
253 #[serde(rename = "agentRcvFileId")]
254 agent_rcv_file_id: String,
255
256 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
257 undocumented: HashMap<String, JsonObject>,
258 },
259 #[serde(rename = "userUnknown")]
260 UserUnknown,
261 #[serde(rename = "activeUserExists")]
262 ActiveUserExists,
263 #[serde(rename = "userExists")]
264 UserExists {
265 #[serde(rename = "contactName")]
266 contact_name: String,
267
268 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
269 undocumented: HashMap<String, JsonObject>,
270 },
271 #[serde(rename = "differentActiveUser")]
272 DifferentActiveUser {
273 #[serde(
274 rename = "commandUserId",
275 deserialize_with = "deserialize_number_from_string"
276 )]
277 command_user_id: i64,
278
279 #[serde(
280 rename = "activeUserId",
281 deserialize_with = "deserialize_number_from_string"
282 )]
283 active_user_id: i64,
284
285 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
286 undocumented: HashMap<String, JsonObject>,
287 },
288 #[serde(rename = "cantDeleteActiveUser")]
289 CantDeleteActiveUser {
290 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
291 user_id: i64,
292
293 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
294 undocumented: HashMap<String, JsonObject>,
295 },
296 #[serde(rename = "cantDeleteLastUser")]
297 CantDeleteLastUser {
298 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
299 user_id: i64,
300
301 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
302 undocumented: HashMap<String, JsonObject>,
303 },
304 #[serde(rename = "cantHideLastUser")]
305 CantHideLastUser {
306 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
307 user_id: i64,
308
309 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
310 undocumented: HashMap<String, JsonObject>,
311 },
312 #[serde(rename = "hiddenUserAlwaysMuted")]
313 HiddenUserAlwaysMuted {
314 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
315 user_id: i64,
316
317 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
318 undocumented: HashMap<String, JsonObject>,
319 },
320 #[serde(rename = "emptyUserPassword")]
321 EmptyUserPassword {
322 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
323 user_id: i64,
324
325 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
326 undocumented: HashMap<String, JsonObject>,
327 },
328 #[serde(rename = "userAlreadyHidden")]
329 UserAlreadyHidden {
330 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
331 user_id: i64,
332
333 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
334 undocumented: HashMap<String, JsonObject>,
335 },
336 #[serde(rename = "userNotHidden")]
337 UserNotHidden {
338 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
339 user_id: i64,
340
341 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
342 undocumented: HashMap<String, JsonObject>,
343 },
344 #[serde(rename = "invalidDisplayName")]
345 InvalidDisplayName {
346 #[serde(rename = "displayName")]
347 display_name: String,
348
349 #[serde(rename = "validName")]
350 valid_name: String,
351
352 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
353 undocumented: HashMap<String, JsonObject>,
354 },
355 #[serde(rename = "chatNotStarted")]
356 ChatNotStarted,
357 #[serde(rename = "chatNotStopped")]
358 ChatNotStopped,
359 #[serde(rename = "chatStoreChanged")]
360 ChatStoreChanged,
361 #[serde(rename = "invalidConnReq")]
362 InvalidConnReq,
363 #[serde(rename = "unsupportedConnReq")]
364 UnsupportedConnReq,
365 #[serde(rename = "connReqMessageProhibited")]
366 ConnReqMessageProhibited,
367 #[serde(rename = "contactNotReady")]
368 ContactNotReady {
369 #[serde(rename = "contact")]
370 contact: Contact,
371
372 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
373 undocumented: HashMap<String, JsonObject>,
374 },
375 #[serde(rename = "contactNotActive")]
376 ContactNotActive {
377 #[serde(rename = "contact")]
378 contact: Contact,
379
380 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
381 undocumented: HashMap<String, JsonObject>,
382 },
383 #[serde(rename = "contactDisabled")]
384 ContactDisabled {
385 #[serde(rename = "contact")]
386 contact: Contact,
387
388 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
389 undocumented: HashMap<String, JsonObject>,
390 },
391 #[serde(rename = "connectionDisabled")]
392 ConnectionDisabled {
393 #[serde(rename = "connection")]
394 connection: Connection,
395
396 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
397 undocumented: HashMap<String, JsonObject>,
398 },
399 #[serde(rename = "groupUserRole")]
400 GroupUserRole {
401 #[serde(rename = "groupInfo")]
402 group_info: GroupInfo,
403
404 #[serde(rename = "requiredRole")]
405 required_role: GroupMemberRole,
406
407 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
408 undocumented: HashMap<String, JsonObject>,
409 },
410 #[serde(rename = "groupMemberInitialRole")]
411 GroupMemberInitialRole {
412 #[serde(rename = "groupInfo")]
413 group_info: GroupInfo,
414
415 #[serde(rename = "initialRole")]
416 initial_role: GroupMemberRole,
417
418 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
419 undocumented: HashMap<String, JsonObject>,
420 },
421 #[serde(rename = "contactIncognitoCantInvite")]
422 ContactIncognitoCantInvite,
423 #[serde(rename = "groupIncognitoCantInvite")]
424 GroupIncognitoCantInvite,
425 #[serde(rename = "groupContactRole")]
426 GroupContactRole {
427 #[serde(rename = "contactName")]
428 contact_name: String,
429
430 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
431 undocumented: HashMap<String, JsonObject>,
432 },
433 #[serde(rename = "groupDuplicateMember")]
434 GroupDuplicateMember {
435 #[serde(rename = "contactName")]
436 contact_name: String,
437
438 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
439 undocumented: HashMap<String, JsonObject>,
440 },
441 #[serde(rename = "groupDuplicateMemberId")]
442 GroupDuplicateMemberId,
443 #[serde(rename = "groupNotJoined")]
444 GroupNotJoined {
445 #[serde(rename = "groupInfo")]
446 group_info: GroupInfo,
447
448 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
449 undocumented: HashMap<String, JsonObject>,
450 },
451 #[serde(rename = "groupMemberNotActive")]
452 GroupMemberNotActive,
453 #[serde(rename = "cantBlockMemberForSelf")]
454 CantBlockMemberForSelf {
455 #[serde(rename = "groupInfo")]
456 group_info: GroupInfo,
457
458 #[serde(rename = "member")]
459 member: GroupMember,
460
461 #[serde(rename = "setShowMessages")]
462 set_show_messages: bool,
463
464 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
465 undocumented: HashMap<String, JsonObject>,
466 },
467 #[serde(rename = "groupMemberUserRemoved")]
468 GroupMemberUserRemoved,
469 #[serde(rename = "groupMemberNotFound")]
470 GroupMemberNotFound,
471 #[serde(rename = "groupCantResendInvitation")]
472 GroupCantResendInvitation {
473 #[serde(rename = "groupInfo")]
474 group_info: GroupInfo,
475
476 #[serde(rename = "contactName")]
477 contact_name: String,
478
479 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
480 undocumented: HashMap<String, JsonObject>,
481 },
482 #[serde(rename = "groupInternal")]
483 GroupInternal {
484 #[serde(rename = "message")]
485 message: String,
486
487 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
488 undocumented: HashMap<String, JsonObject>,
489 },
490 #[serde(rename = "fileNotFound")]
491 FileNotFound {
492 #[serde(rename = "message")]
493 message: String,
494
495 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
496 undocumented: HashMap<String, JsonObject>,
497 },
498 #[serde(rename = "fileSize")]
499 FileSize {
500 #[serde(rename = "filePath")]
501 file_path: String,
502
503 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
504 undocumented: HashMap<String, JsonObject>,
505 },
506 #[serde(rename = "fileAlreadyReceiving")]
507 FileAlreadyReceiving {
508 #[serde(rename = "message")]
509 message: String,
510
511 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
512 undocumented: HashMap<String, JsonObject>,
513 },
514 #[serde(rename = "fileCancelled")]
515 FileCancelled {
516 #[serde(rename = "message")]
517 message: String,
518
519 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
520 undocumented: HashMap<String, JsonObject>,
521 },
522 #[serde(rename = "fileCancel")]
523 FileCancel {
524 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
525 file_id: i64,
526
527 #[serde(rename = "message")]
528 message: String,
529
530 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
531 undocumented: HashMap<String, JsonObject>,
532 },
533 #[serde(rename = "fileAlreadyExists")]
534 FileAlreadyExists {
535 #[serde(rename = "filePath")]
536 file_path: String,
537
538 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
539 undocumented: HashMap<String, JsonObject>,
540 },
541 #[serde(rename = "fileRead")]
542 FileRead {
543 #[serde(rename = "filePath")]
544 file_path: String,
545
546 #[serde(rename = "message")]
547 message: String,
548
549 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
550 undocumented: HashMap<String, JsonObject>,
551 },
552 #[serde(rename = "fileWrite")]
553 FileWrite {
554 #[serde(rename = "filePath")]
555 file_path: String,
556
557 #[serde(rename = "message")]
558 message: String,
559
560 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
561 undocumented: HashMap<String, JsonObject>,
562 },
563 #[serde(rename = "fileSend")]
564 FileSend {
565 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
566 file_id: i64,
567
568 #[serde(rename = "agentError")]
569 agent_error: AgentErrorType,
570
571 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
572 undocumented: HashMap<String, JsonObject>,
573 },
574 #[serde(rename = "fileRcvChunk")]
575 FileRcvChunk {
576 #[serde(rename = "message")]
577 message: String,
578
579 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
580 undocumented: HashMap<String, JsonObject>,
581 },
582 #[serde(rename = "fileInternal")]
583 FileInternal {
584 #[serde(rename = "message")]
585 message: String,
586
587 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
588 undocumented: HashMap<String, JsonObject>,
589 },
590 #[serde(rename = "fileImageType")]
591 FileImageType {
592 #[serde(rename = "filePath")]
593 file_path: String,
594
595 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
596 undocumented: HashMap<String, JsonObject>,
597 },
598 #[serde(rename = "fileImageSize")]
599 FileImageSize {
600 #[serde(rename = "filePath")]
601 file_path: String,
602
603 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
604 undocumented: HashMap<String, JsonObject>,
605 },
606 #[serde(rename = "fileNotReceived")]
607 FileNotReceived {
608 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
609 file_id: i64,
610
611 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
612 undocumented: HashMap<String, JsonObject>,
613 },
614 #[serde(rename = "fileNotApproved")]
615 FileNotApproved {
616 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
617 file_id: i64,
618
619 #[serde(rename = "unknownServers")]
620 unknown_servers: Vec<String>,
621
622 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
623 undocumented: HashMap<String, JsonObject>,
624 },
625 #[serde(rename = "fallbackToSMPProhibited")]
626 FallbackToSmpProhibited {
627 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
628 file_id: i64,
629
630 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
631 undocumented: HashMap<String, JsonObject>,
632 },
633 #[serde(rename = "inlineFileProhibited")]
634 InlineFileProhibited {
635 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
636 file_id: i64,
637
638 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
639 undocumented: HashMap<String, JsonObject>,
640 },
641 #[serde(rename = "invalidForward")]
642 InvalidForward,
643 #[serde(rename = "invalidChatItemUpdate")]
644 InvalidChatItemUpdate,
645 #[serde(rename = "invalidChatItemDelete")]
646 InvalidChatItemDelete,
647 #[serde(rename = "hasCurrentCall")]
648 HasCurrentCall,
649 #[serde(rename = "noCurrentCall")]
650 NoCurrentCall,
651 #[serde(rename = "callContact")]
652 CallContact {
653 #[serde(
654 rename = "contactId",
655 deserialize_with = "deserialize_number_from_string"
656 )]
657 contact_id: i64,
658
659 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
660 undocumented: HashMap<String, JsonObject>,
661 },
662 #[serde(rename = "directMessagesProhibited")]
663 DirectMessagesProhibited {
664 #[serde(rename = "direction")]
665 direction: MsgDirection,
666
667 #[serde(rename = "contact")]
668 contact: Contact,
669
670 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
671 undocumented: HashMap<String, JsonObject>,
672 },
673 #[serde(rename = "agentVersion")]
674 AgentVersion,
675 #[serde(rename = "agentNoSubResult")]
676 AgentNoSubResult {
677 #[serde(rename = "agentConnId")]
678 agent_conn_id: String,
679
680 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
681 undocumented: HashMap<String, JsonObject>,
682 },
683 #[serde(rename = "commandError")]
684 CommandError {
685 #[serde(rename = "message")]
686 message: String,
687
688 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
689 undocumented: HashMap<String, JsonObject>,
690 },
691 #[serde(rename = "agentCommandError")]
692 AgentCommandError {
693 #[serde(rename = "message")]
694 message: String,
695
696 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
697 undocumented: HashMap<String, JsonObject>,
698 },
699 #[serde(rename = "invalidFileDescription")]
700 InvalidFileDescription {
701 #[serde(rename = "message")]
702 message: String,
703
704 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
705 undocumented: HashMap<String, JsonObject>,
706 },
707 #[serde(rename = "connectionIncognitoChangeProhibited")]
708 ConnectionIncognitoChangeProhibited,
709 #[serde(rename = "connectionUserChangeProhibited")]
710 ConnectionUserChangeProhibited,
711 #[serde(rename = "peerChatVRangeIncompatible")]
712 PeerChatVRangeIncompatible,
713 #[serde(rename = "internalError")]
714 InternalError {
715 #[serde(rename = "message")]
716 message: String,
717
718 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
719 undocumented: HashMap<String, JsonObject>,
720 },
721 #[serde(rename = "exception")]
722 Exception {
723 #[serde(rename = "message")]
724 message: String,
725
726 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
727 undocumented: HashMap<String, JsonObject>,
728 },
729 #[serde(untagged)]
730 Undocumented(JsonObject),
731}
732
733#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
734#[serde(tag = "type")]
735#[non_exhaustive]
736pub enum CommandError {
737 #[serde(rename = "UNKNOWN")]
738 Unknown,
739 #[serde(rename = "SYNTAX")]
740 Syntax,
741 #[serde(rename = "PROHIBITED")]
742 Prohibited,
743 #[serde(rename = "NO_AUTH")]
744 NoAuth,
745 #[serde(rename = "HAS_AUTH")]
746 HasAuth,
747 #[serde(rename = "NO_ENTITY")]
748 NoEntity,
749 #[serde(untagged)]
750 Undocumented(JsonObject),
751}
752
753#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
754#[serde(tag = "type")]
755#[non_exhaustive]
756pub enum CommandErrorType {
757 #[serde(rename = "PROHIBITED")]
758 Prohibited,
759 #[serde(rename = "SYNTAX")]
760 Syntax,
761 #[serde(rename = "NO_CONN")]
762 NoConn,
763 #[serde(rename = "SIZE")]
764 Size,
765 #[serde(rename = "LARGE")]
766 Large,
767 #[serde(untagged)]
768 Undocumented(JsonObject),
769}
770
771#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
772#[serde(tag = "type")]
773#[non_exhaustive]
774pub enum ConnectionErrorType {
775 #[serde(rename = "NOT_FOUND")]
776 NotFound,
777 #[serde(rename = "DUPLICATE")]
778 Duplicate,
779 #[serde(rename = "SIMPLEX")]
780 Simplex,
781 #[serde(rename = "NOT_ACCEPTED")]
782 NotAccepted,
783 #[serde(rename = "NOT_AVAILABLE")]
784 NotAvailable,
785 #[serde(untagged)]
786 Undocumented(JsonObject),
787}
788
789#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
790#[serde(tag = "type")]
791#[non_exhaustive]
792pub enum ErrorType {
793 #[serde(rename = "BLOCK")]
794 Block,
795 #[serde(rename = "SESSION")]
796 Session,
797 #[serde(rename = "CMD")]
798 Cmd {
799 #[serde(rename = "cmdErr")]
800 cmd_err: CommandError,
801
802 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
803 undocumented: HashMap<String, JsonObject>,
804 },
805 #[serde(rename = "PROXY")]
806 Proxy {
807 #[serde(rename = "proxyErr")]
808 proxy_err: Arc<ProxyError>,
809
810 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
811 undocumented: HashMap<String, JsonObject>,
812 },
813 #[serde(rename = "AUTH")]
814 Auth,
815 #[serde(rename = "BLOCKED")]
816 Blocked {
817 #[serde(rename = "blockInfo")]
818 block_info: BlockingInfo,
819
820 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
821 undocumented: HashMap<String, JsonObject>,
822 },
823 #[serde(rename = "SERVICE")]
824 Service,
825 #[serde(rename = "CRYPTO")]
826 Crypto,
827 #[serde(rename = "QUOTA")]
828 Quota,
829 #[serde(rename = "STORE")]
830 Store {
831 #[serde(rename = "storeErr")]
832 store_err: String,
833
834 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
835 undocumented: HashMap<String, JsonObject>,
836 },
837 #[serde(rename = "NO_MSG")]
838 NoMsg,
839 #[serde(rename = "LARGE_MSG")]
840 LargeMsg,
841 #[serde(rename = "EXPIRED")]
842 Expired,
843 #[serde(rename = "INTERNAL")]
844 Internal,
845 #[serde(rename = "DUPLICATE_")]
846 Duplicate,
847 #[serde(untagged)]
848 Undocumented(JsonObject),
849}
850
851#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
852#[serde(tag = "type")]
853#[non_exhaustive]
854pub enum FileError {
855 #[serde(rename = "auth")]
856 Auth,
857 #[serde(rename = "blocked")]
858 Blocked {
859 #[serde(rename = "server")]
860 server: String,
861
862 #[serde(rename = "blockInfo")]
863 block_info: BlockingInfo,
864
865 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
866 undocumented: HashMap<String, JsonObject>,
867 },
868 #[serde(rename = "noFile")]
869 NoFile,
870 #[serde(rename = "relay")]
871 Relay {
872 #[serde(rename = "srvError")]
873 srv_error: SrvError,
874
875 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
876 undocumented: HashMap<String, JsonObject>,
877 },
878 #[serde(rename = "other")]
879 Other {
880 #[serde(rename = "fileError")]
881 file_error: String,
882
883 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
884 undocumented: HashMap<String, JsonObject>,
885 },
886 #[serde(untagged)]
887 Undocumented(JsonObject),
888}
889
890#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
891#[serde(tag = "type")]
892#[non_exhaustive]
893pub enum FileErrorType {
894 #[serde(rename = "NOT_APPROVED")]
895 NotApproved,
896 #[serde(rename = "SIZE")]
897 Size,
898 #[serde(rename = "REDIRECT")]
899 Redirect {
900 #[serde(rename = "redirectError")]
901 redirect_error: String,
902
903 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
904 undocumented: HashMap<String, JsonObject>,
905 },
906 #[serde(rename = "FILE_IO")]
907 FileIo {
908 #[serde(rename = "fileIOError")]
909 file_io_error: String,
910
911 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
912 undocumented: HashMap<String, JsonObject>,
913 },
914 #[serde(rename = "NO_FILE")]
915 NoFile,
916 #[serde(untagged)]
917 Undocumented(JsonObject),
918}
919
920#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
921#[non_exhaustive]
922pub enum HandshakeError {
923 #[default]
924 #[serde(rename = "PARSE")]
925 Parse,
926 #[serde(rename = "IDENTITY")]
927 Identity,
928 #[serde(rename = "BAD_AUTH")]
929 BadAuth,
930 #[serde(rename = "BAD_SERVICE")]
931 BadService,
932}
933
934#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
935#[non_exhaustive]
936pub enum MsgDecryptError {
937 #[default]
938 #[serde(rename = "ratchetHeader")]
939 RatchetHeader,
940 #[serde(rename = "tooManySkipped")]
941 TooManySkipped,
942 #[serde(rename = "ratchetEarlier")]
943 RatchetEarlier,
944 #[serde(rename = "other")]
945 Other,
946 #[serde(rename = "ratchetSync")]
947 RatchetSync,
948}
949
950#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
951#[serde(tag = "type")]
952#[non_exhaustive]
953pub enum MsgErrorType {
954 #[serde(rename = "msgSkipped")]
955 MsgSkipped {
956 #[serde(
957 rename = "fromMsgId",
958 deserialize_with = "deserialize_number_from_string"
959 )]
960 from_msg_id: i64,
961
962 #[serde(
963 rename = "toMsgId",
964 deserialize_with = "deserialize_number_from_string"
965 )]
966 to_msg_id: i64,
967
968 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
969 undocumented: HashMap<String, JsonObject>,
970 },
971 #[serde(rename = "msgBadId")]
972 MsgBadId {
973 #[serde(rename = "msgId", deserialize_with = "deserialize_number_from_string")]
974 msg_id: i64,
975
976 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
977 undocumented: HashMap<String, JsonObject>,
978 },
979 #[serde(rename = "msgBadHash")]
980 MsgBadHash,
981 #[serde(rename = "msgDuplicate")]
982 MsgDuplicate,
983 #[serde(untagged)]
984 Undocumented(JsonObject),
985}
986
987#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
988#[serde(tag = "type")]
989#[non_exhaustive]
990pub enum ProxyClientError {
991 #[serde(rename = "protocolError")]
992 ProtocolError {
993 #[serde(rename = "protocolErr")]
994 protocol_err: ErrorType,
995
996 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
997 undocumented: HashMap<String, JsonObject>,
998 },
999 #[serde(rename = "unexpectedResponse")]
1000 UnexpectedResponse {
1001 #[serde(rename = "responseStr")]
1002 response_str: String,
1003
1004 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1005 undocumented: HashMap<String, JsonObject>,
1006 },
1007 #[serde(rename = "responseError")]
1008 ResponseError {
1009 #[serde(rename = "responseErr")]
1010 response_err: ErrorType,
1011
1012 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1013 undocumented: HashMap<String, JsonObject>,
1014 },
1015 #[serde(untagged)]
1016 Undocumented(JsonObject),
1017}
1018
1019#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1020#[serde(tag = "type")]
1021#[non_exhaustive]
1022pub enum ProxyError {
1023 #[serde(rename = "PROTOCOL")]
1024 Protocol {
1025 #[serde(rename = "protocolErr")]
1026 protocol_err: ErrorType,
1027
1028 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1029 undocumented: HashMap<String, JsonObject>,
1030 },
1031 #[serde(rename = "BROKER")]
1032 Broker {
1033 #[serde(rename = "brokerErr")]
1034 broker_err: BrokerErrorType,
1035
1036 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1037 undocumented: HashMap<String, JsonObject>,
1038 },
1039 #[serde(rename = "BASIC_AUTH")]
1040 BasicAuth,
1041 #[serde(rename = "NO_SESSION")]
1042 NoSession,
1043 #[serde(untagged)]
1044 Undocumented(JsonObject),
1045}
1046
1047#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1048#[serde(tag = "type")]
1049#[non_exhaustive]
1050pub enum RCErrorType {
1051 #[serde(rename = "internal")]
1052 Internal {
1053 #[serde(rename = "internalErr")]
1054 internal_err: String,
1055
1056 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1057 undocumented: HashMap<String, JsonObject>,
1058 },
1059 #[serde(rename = "identity")]
1060 Identity,
1061 #[serde(rename = "noLocalAddress")]
1062 NoLocalAddress,
1063 #[serde(rename = "newController")]
1064 NewController,
1065 #[serde(rename = "notDiscovered")]
1066 NotDiscovered,
1067 #[serde(rename = "tLSStartFailed")]
1068 TLsStartFailed,
1069 #[serde(rename = "exception")]
1070 Exception {
1071 #[serde(rename = "exception")]
1072 exception: String,
1073
1074 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1075 undocumented: HashMap<String, JsonObject>,
1076 },
1077 #[serde(rename = "ctrlAuth")]
1078 CtrlAuth,
1079 #[serde(rename = "ctrlNotFound")]
1080 CtrlNotFound,
1081 #[serde(rename = "ctrlError")]
1082 CtrlError {
1083 #[serde(rename = "ctrlErr")]
1084 ctrl_err: String,
1085
1086 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1087 undocumented: HashMap<String, JsonObject>,
1088 },
1089 #[serde(rename = "invitation")]
1090 Invitation,
1091 #[serde(rename = "version")]
1092 Version,
1093 #[serde(rename = "encrypt")]
1094 Encrypt,
1095 #[serde(rename = "decrypt")]
1096 Decrypt,
1097 #[serde(rename = "blockSize")]
1098 BlockSize,
1099 #[serde(rename = "syntax")]
1100 Syntax {
1101 #[serde(rename = "syntaxErr")]
1102 syntax_err: String,
1103
1104 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1105 undocumented: HashMap<String, JsonObject>,
1106 },
1107 #[serde(untagged)]
1108 Undocumented(JsonObject),
1109}
1110
1111#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1112#[serde(tag = "type")]
1113#[non_exhaustive]
1114pub enum SMPAgentError {
1115 #[serde(rename = "A_MESSAGE")]
1116 AMessage,
1117 #[serde(rename = "A_PROHIBITED")]
1118 AProhibited {
1119 #[serde(rename = "prohibitedErr")]
1120 prohibited_err: String,
1121
1122 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1123 undocumented: HashMap<String, JsonObject>,
1124 },
1125 #[serde(rename = "A_VERSION")]
1126 AVersion,
1127 #[serde(rename = "A_LINK")]
1128 ALink {
1129 #[serde(rename = "linkErr")]
1130 link_err: String,
1131
1132 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1133 undocumented: HashMap<String, JsonObject>,
1134 },
1135 #[serde(rename = "A_CRYPTO")]
1136 ACrypto {
1137 #[serde(rename = "cryptoErr")]
1138 crypto_err: AgentCryptoError,
1139
1140 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1141 undocumented: HashMap<String, JsonObject>,
1142 },
1143 #[serde(rename = "A_DUPLICATE")]
1144 ADuplicate,
1145 #[serde(rename = "A_QUEUE")]
1146 AQueue {
1147 #[serde(rename = "queueErr")]
1148 queue_err: String,
1149
1150 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1151 undocumented: HashMap<String, JsonObject>,
1152 },
1153 #[serde(untagged)]
1154 Undocumented(JsonObject),
1155}
1156
1157#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1158#[serde(tag = "type")]
1159#[non_exhaustive]
1160pub enum SndError {
1161 #[serde(rename = "auth")]
1162 Auth,
1163 #[serde(rename = "quota")]
1164 Quota,
1165 #[serde(rename = "expired")]
1166 Expired,
1167 #[serde(rename = "relay")]
1168 Relay {
1169 #[serde(rename = "srvError")]
1170 srv_error: SrvError,
1171
1172 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1173 undocumented: HashMap<String, JsonObject>,
1174 },
1175 #[serde(rename = "proxy")]
1176 Proxy {
1177 #[serde(rename = "proxyServer")]
1178 proxy_server: String,
1179
1180 #[serde(rename = "srvError")]
1181 srv_error: SrvError,
1182
1183 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1184 undocumented: HashMap<String, JsonObject>,
1185 },
1186 #[serde(rename = "proxyRelay")]
1187 ProxyRelay {
1188 #[serde(rename = "proxyServer")]
1189 proxy_server: String,
1190
1191 #[serde(rename = "srvError")]
1192 srv_error: SrvError,
1193
1194 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1195 undocumented: HashMap<String, JsonObject>,
1196 },
1197 #[serde(rename = "other")]
1198 Other {
1199 #[serde(rename = "sndError")]
1200 snd_error: String,
1201
1202 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1203 undocumented: HashMap<String, JsonObject>,
1204 },
1205 #[serde(untagged)]
1206 Undocumented(JsonObject),
1207}
1208
1209#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1210#[serde(tag = "type")]
1211#[non_exhaustive]
1212pub enum SrvError {
1213 #[serde(rename = "host")]
1214 Host,
1215 #[serde(rename = "version")]
1216 Version,
1217 #[serde(rename = "other")]
1218 Other {
1219 #[serde(rename = "srvError")]
1220 srv_error: String,
1221
1222 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1223 undocumented: HashMap<String, JsonObject>,
1224 },
1225 #[serde(untagged)]
1226 Undocumented(JsonObject),
1227}
1228
1229#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1230#[serde(tag = "type")]
1231#[non_exhaustive]
1232pub enum StoreError {
1233 #[serde(rename = "duplicateName")]
1234 DuplicateName,
1235 #[serde(rename = "userNotFound")]
1236 UserNotFound {
1237 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
1238 user_id: i64,
1239
1240 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1241 undocumented: HashMap<String, JsonObject>,
1242 },
1243 #[serde(rename = "userNotFoundByName")]
1244 UserNotFoundByName {
1245 #[serde(rename = "contactName")]
1246 contact_name: String,
1247
1248 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1249 undocumented: HashMap<String, JsonObject>,
1250 },
1251 #[serde(rename = "userNotFoundByContactId")]
1252 UserNotFoundByContactId {
1253 #[serde(
1254 rename = "contactId",
1255 deserialize_with = "deserialize_number_from_string"
1256 )]
1257 contact_id: i64,
1258
1259 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1260 undocumented: HashMap<String, JsonObject>,
1261 },
1262 #[serde(rename = "userNotFoundByGroupId")]
1263 UserNotFoundByGroupId {
1264 #[serde(
1265 rename = "groupId",
1266 deserialize_with = "deserialize_number_from_string"
1267 )]
1268 group_id: i64,
1269
1270 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1271 undocumented: HashMap<String, JsonObject>,
1272 },
1273 #[serde(rename = "userNotFoundByFileId")]
1274 UserNotFoundByFileId {
1275 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1276 file_id: i64,
1277
1278 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1279 undocumented: HashMap<String, JsonObject>,
1280 },
1281 #[serde(rename = "userNotFoundByContactRequestId")]
1282 UserNotFoundByContactRequestId {
1283 #[serde(
1284 rename = "contactRequestId",
1285 deserialize_with = "deserialize_number_from_string"
1286 )]
1287 contact_request_id: i64,
1288
1289 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1290 undocumented: HashMap<String, JsonObject>,
1291 },
1292 #[serde(rename = "contactNotFound")]
1293 ContactNotFound {
1294 #[serde(
1295 rename = "contactId",
1296 deserialize_with = "deserialize_number_from_string"
1297 )]
1298 contact_id: i64,
1299
1300 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1301 undocumented: HashMap<String, JsonObject>,
1302 },
1303 #[serde(rename = "contactNotFoundByName")]
1304 ContactNotFoundByName {
1305 #[serde(rename = "contactName")]
1306 contact_name: String,
1307
1308 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1309 undocumented: HashMap<String, JsonObject>,
1310 },
1311 #[serde(rename = "contactNotFoundByMemberId")]
1312 ContactNotFoundByMemberId {
1313 #[serde(
1314 rename = "groupMemberId",
1315 deserialize_with = "deserialize_number_from_string"
1316 )]
1317 group_member_id: i64,
1318
1319 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1320 undocumented: HashMap<String, JsonObject>,
1321 },
1322 #[serde(rename = "contactNotReady")]
1323 ContactNotReady {
1324 #[serde(rename = "contactName")]
1325 contact_name: String,
1326
1327 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1328 undocumented: HashMap<String, JsonObject>,
1329 },
1330 #[serde(rename = "duplicateContactLink")]
1331 DuplicateContactLink,
1332 #[serde(rename = "userContactLinkNotFound")]
1333 UserContactLinkNotFound,
1334 #[serde(rename = "contactRequestNotFound")]
1335 ContactRequestNotFound {
1336 #[serde(
1337 rename = "contactRequestId",
1338 deserialize_with = "deserialize_number_from_string"
1339 )]
1340 contact_request_id: i64,
1341
1342 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1343 undocumented: HashMap<String, JsonObject>,
1344 },
1345 #[serde(rename = "contactRequestNotFoundByName")]
1346 ContactRequestNotFoundByName {
1347 #[serde(rename = "contactName")]
1348 contact_name: String,
1349
1350 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1351 undocumented: HashMap<String, JsonObject>,
1352 },
1353 #[serde(rename = "invalidContactRequestEntity")]
1354 InvalidContactRequestEntity {
1355 #[serde(
1356 rename = "contactRequestId",
1357 deserialize_with = "deserialize_number_from_string"
1358 )]
1359 contact_request_id: i64,
1360
1361 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1362 undocumented: HashMap<String, JsonObject>,
1363 },
1364 #[serde(rename = "invalidBusinessChatContactRequest")]
1365 InvalidBusinessChatContactRequest,
1366 #[serde(rename = "groupNotFound")]
1367 GroupNotFound {
1368 #[serde(
1369 rename = "groupId",
1370 deserialize_with = "deserialize_number_from_string"
1371 )]
1372 group_id: i64,
1373
1374 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1375 undocumented: HashMap<String, JsonObject>,
1376 },
1377 #[serde(rename = "groupNotFoundByName")]
1378 GroupNotFoundByName {
1379 #[serde(rename = "groupName")]
1380 group_name: String,
1381
1382 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1383 undocumented: HashMap<String, JsonObject>,
1384 },
1385 #[serde(rename = "groupMemberNameNotFound")]
1386 GroupMemberNameNotFound {
1387 #[serde(
1388 rename = "groupId",
1389 deserialize_with = "deserialize_number_from_string"
1390 )]
1391 group_id: i64,
1392
1393 #[serde(rename = "groupMemberName")]
1394 group_member_name: String,
1395
1396 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1397 undocumented: HashMap<String, JsonObject>,
1398 },
1399 #[serde(rename = "groupMemberNotFound")]
1400 GroupMemberNotFound {
1401 #[serde(
1402 rename = "groupMemberId",
1403 deserialize_with = "deserialize_number_from_string"
1404 )]
1405 group_member_id: i64,
1406
1407 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1408 undocumented: HashMap<String, JsonObject>,
1409 },
1410 #[serde(rename = "groupHostMemberNotFound")]
1411 GroupHostMemberNotFound {
1412 #[serde(
1413 rename = "groupId",
1414 deserialize_with = "deserialize_number_from_string"
1415 )]
1416 group_id: i64,
1417
1418 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1419 undocumented: HashMap<String, JsonObject>,
1420 },
1421 #[serde(rename = "groupMemberNotFoundByMemberId")]
1422 GroupMemberNotFoundByMemberId {
1423 #[serde(rename = "memberId")]
1424 member_id: String,
1425
1426 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1427 undocumented: HashMap<String, JsonObject>,
1428 },
1429 #[serde(rename = "memberContactGroupMemberNotFound")]
1430 MemberContactGroupMemberNotFound {
1431 #[serde(
1432 rename = "contactId",
1433 deserialize_with = "deserialize_number_from_string"
1434 )]
1435 contact_id: i64,
1436
1437 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1438 undocumented: HashMap<String, JsonObject>,
1439 },
1440 #[serde(rename = "groupWithoutUser")]
1441 GroupWithoutUser,
1442 #[serde(rename = "duplicateGroupMember")]
1443 DuplicateGroupMember,
1444 #[serde(rename = "groupAlreadyJoined")]
1445 GroupAlreadyJoined,
1446 #[serde(rename = "groupInvitationNotFound")]
1447 GroupInvitationNotFound,
1448 #[serde(rename = "noteFolderAlreadyExists")]
1449 NoteFolderAlreadyExists {
1450 #[serde(
1451 rename = "noteFolderId",
1452 deserialize_with = "deserialize_number_from_string"
1453 )]
1454 note_folder_id: i64,
1455
1456 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1457 undocumented: HashMap<String, JsonObject>,
1458 },
1459 #[serde(rename = "noteFolderNotFound")]
1460 NoteFolderNotFound {
1461 #[serde(
1462 rename = "noteFolderId",
1463 deserialize_with = "deserialize_number_from_string"
1464 )]
1465 note_folder_id: i64,
1466
1467 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1468 undocumented: HashMap<String, JsonObject>,
1469 },
1470 #[serde(rename = "userNoteFolderNotFound")]
1471 UserNoteFolderNotFound,
1472 #[serde(rename = "sndFileNotFound")]
1473 SndFileNotFound {
1474 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1475 file_id: i64,
1476
1477 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1478 undocumented: HashMap<String, JsonObject>,
1479 },
1480 #[serde(rename = "sndFileInvalid")]
1481 SndFileInvalid {
1482 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1483 file_id: i64,
1484
1485 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1486 undocumented: HashMap<String, JsonObject>,
1487 },
1488 #[serde(rename = "rcvFileNotFound")]
1489 RcvFileNotFound {
1490 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1491 file_id: i64,
1492
1493 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1494 undocumented: HashMap<String, JsonObject>,
1495 },
1496 #[serde(rename = "rcvFileDescrNotFound")]
1497 RcvFileDescrNotFound {
1498 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1499 file_id: i64,
1500
1501 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1502 undocumented: HashMap<String, JsonObject>,
1503 },
1504 #[serde(rename = "fileNotFound")]
1505 FileNotFound {
1506 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1507 file_id: i64,
1508
1509 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1510 undocumented: HashMap<String, JsonObject>,
1511 },
1512 #[serde(rename = "rcvFileInvalid")]
1513 RcvFileInvalid {
1514 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1515 file_id: i64,
1516
1517 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1518 undocumented: HashMap<String, JsonObject>,
1519 },
1520 #[serde(rename = "rcvFileInvalidDescrPart")]
1521 RcvFileInvalidDescrPart,
1522 #[serde(rename = "localFileNoTransfer")]
1523 LocalFileNoTransfer {
1524 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1525 file_id: i64,
1526
1527 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1528 undocumented: HashMap<String, JsonObject>,
1529 },
1530 #[serde(rename = "sharedMsgIdNotFoundByFileId")]
1531 SharedMsgIdNotFoundByFileId {
1532 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1533 file_id: i64,
1534
1535 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1536 undocumented: HashMap<String, JsonObject>,
1537 },
1538 #[serde(rename = "fileIdNotFoundBySharedMsgId")]
1539 FileIdNotFoundBySharedMsgId {
1540 #[serde(rename = "sharedMsgId")]
1541 shared_msg_id: String,
1542
1543 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1544 undocumented: HashMap<String, JsonObject>,
1545 },
1546 #[serde(rename = "sndFileNotFoundXFTP")]
1547 SndFileNotFoundXftp {
1548 #[serde(rename = "agentSndFileId")]
1549 agent_snd_file_id: String,
1550
1551 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1552 undocumented: HashMap<String, JsonObject>,
1553 },
1554 #[serde(rename = "rcvFileNotFoundXFTP")]
1555 RcvFileNotFoundXftp {
1556 #[serde(rename = "agentRcvFileId")]
1557 agent_rcv_file_id: String,
1558
1559 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1560 undocumented: HashMap<String, JsonObject>,
1561 },
1562 #[serde(rename = "connectionNotFound")]
1563 ConnectionNotFound {
1564 #[serde(rename = "agentConnId")]
1565 agent_conn_id: String,
1566
1567 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1568 undocumented: HashMap<String, JsonObject>,
1569 },
1570 #[serde(rename = "connectionNotFoundById")]
1571 ConnectionNotFoundById {
1572 #[serde(rename = "connId", deserialize_with = "deserialize_number_from_string")]
1573 conn_id: i64,
1574
1575 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1576 undocumented: HashMap<String, JsonObject>,
1577 },
1578 #[serde(rename = "connectionNotFoundByMemberId")]
1579 ConnectionNotFoundByMemberId {
1580 #[serde(
1581 rename = "groupMemberId",
1582 deserialize_with = "deserialize_number_from_string"
1583 )]
1584 group_member_id: i64,
1585
1586 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1587 undocumented: HashMap<String, JsonObject>,
1588 },
1589 #[serde(rename = "pendingConnectionNotFound")]
1590 PendingConnectionNotFound {
1591 #[serde(rename = "connId", deserialize_with = "deserialize_number_from_string")]
1592 conn_id: i64,
1593
1594 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1595 undocumented: HashMap<String, JsonObject>,
1596 },
1597 #[serde(rename = "introNotFound")]
1598 IntroNotFound,
1599 #[serde(rename = "uniqueID")]
1600 UniqueId,
1601 #[serde(rename = "largeMsg")]
1602 LargeMsg,
1603 #[serde(rename = "internalError")]
1604 InternalError {
1605 #[serde(rename = "message")]
1606 message: String,
1607
1608 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1609 undocumented: HashMap<String, JsonObject>,
1610 },
1611 #[serde(rename = "dBException")]
1612 DBException {
1613 #[serde(rename = "message")]
1614 message: String,
1615
1616 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1617 undocumented: HashMap<String, JsonObject>,
1618 },
1619 #[serde(rename = "dBBusyError")]
1620 DBBusyError {
1621 #[serde(rename = "message")]
1622 message: String,
1623
1624 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1625 undocumented: HashMap<String, JsonObject>,
1626 },
1627 #[serde(rename = "badChatItem")]
1628 BadChatItem {
1629 #[serde(rename = "itemId", deserialize_with = "deserialize_number_from_string")]
1630 item_id: i64,
1631
1632 #[serde(rename = "itemTs", skip_serializing_if = "Option::is_none")]
1633 item_ts: Option<UtcTime>,
1634
1635 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1636 undocumented: HashMap<String, JsonObject>,
1637 },
1638 #[serde(rename = "chatItemNotFound")]
1639 ChatItemNotFound {
1640 #[serde(rename = "itemId", deserialize_with = "deserialize_number_from_string")]
1641 item_id: i64,
1642
1643 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1644 undocumented: HashMap<String, JsonObject>,
1645 },
1646 #[serde(rename = "chatItemNotFoundByText")]
1647 ChatItemNotFoundByText {
1648 #[serde(rename = "text")]
1649 text: String,
1650
1651 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1652 undocumented: HashMap<String, JsonObject>,
1653 },
1654 #[serde(rename = "chatItemSharedMsgIdNotFound")]
1655 ChatItemSharedMsgIdNotFound {
1656 #[serde(rename = "sharedMsgId")]
1657 shared_msg_id: String,
1658
1659 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1660 undocumented: HashMap<String, JsonObject>,
1661 },
1662 #[serde(rename = "chatItemNotFoundByFileId")]
1663 ChatItemNotFoundByFileId {
1664 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1665 file_id: i64,
1666
1667 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1668 undocumented: HashMap<String, JsonObject>,
1669 },
1670 #[serde(rename = "chatItemNotFoundByContactId")]
1671 ChatItemNotFoundByContactId {
1672 #[serde(
1673 rename = "contactId",
1674 deserialize_with = "deserialize_number_from_string"
1675 )]
1676 contact_id: i64,
1677
1678 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1679 undocumented: HashMap<String, JsonObject>,
1680 },
1681 #[serde(rename = "chatItemNotFoundByGroupId")]
1682 ChatItemNotFoundByGroupId {
1683 #[serde(
1684 rename = "groupId",
1685 deserialize_with = "deserialize_number_from_string"
1686 )]
1687 group_id: i64,
1688
1689 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1690 undocumented: HashMap<String, JsonObject>,
1691 },
1692 #[serde(rename = "profileNotFound")]
1693 ProfileNotFound {
1694 #[serde(
1695 rename = "profileId",
1696 deserialize_with = "deserialize_number_from_string"
1697 )]
1698 profile_id: i64,
1699
1700 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1701 undocumented: HashMap<String, JsonObject>,
1702 },
1703 #[serde(rename = "duplicateGroupLink")]
1704 DuplicateGroupLink {
1705 #[serde(rename = "groupInfo")]
1706 group_info: GroupInfo,
1707
1708 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1709 undocumented: HashMap<String, JsonObject>,
1710 },
1711 #[serde(rename = "groupLinkNotFound")]
1712 GroupLinkNotFound {
1713 #[serde(rename = "groupInfo")]
1714 group_info: GroupInfo,
1715
1716 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1717 undocumented: HashMap<String, JsonObject>,
1718 },
1719 #[serde(rename = "hostMemberIdNotFound")]
1720 HostMemberIdNotFound {
1721 #[serde(
1722 rename = "groupId",
1723 deserialize_with = "deserialize_number_from_string"
1724 )]
1725 group_id: i64,
1726
1727 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1728 undocumented: HashMap<String, JsonObject>,
1729 },
1730 #[serde(rename = "contactNotFoundByFileId")]
1731 ContactNotFoundByFileId {
1732 #[serde(rename = "fileId", deserialize_with = "deserialize_number_from_string")]
1733 file_id: i64,
1734
1735 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1736 undocumented: HashMap<String, JsonObject>,
1737 },
1738 #[serde(rename = "noGroupSndStatus")]
1739 NoGroupSndStatus {
1740 #[serde(rename = "itemId", deserialize_with = "deserialize_number_from_string")]
1741 item_id: i64,
1742
1743 #[serde(
1744 rename = "groupMemberId",
1745 deserialize_with = "deserialize_number_from_string"
1746 )]
1747 group_member_id: i64,
1748
1749 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1750 undocumented: HashMap<String, JsonObject>,
1751 },
1752 #[serde(rename = "duplicateGroupMessage")]
1753 DuplicateGroupMessage {
1754 #[serde(
1755 rename = "groupId",
1756 deserialize_with = "deserialize_number_from_string"
1757 )]
1758 group_id: i64,
1759
1760 #[serde(rename = "sharedMsgId")]
1761 shared_msg_id: String,
1762
1763 #[serde(
1764 rename = "authorGroupMemberId",
1765 skip_serializing_if = "Option::is_none",
1766 deserialize_with = "deserialize_option_number_from_string",
1767 default
1768 )]
1769 author_group_member_id: Option<i64>,
1770
1771 #[serde(
1772 rename = "forwardedByGroupMemberId",
1773 skip_serializing_if = "Option::is_none",
1774 deserialize_with = "deserialize_option_number_from_string",
1775 default
1776 )]
1777 forwarded_by_group_member_id: Option<i64>,
1778
1779 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1780 undocumented: HashMap<String, JsonObject>,
1781 },
1782 #[serde(rename = "remoteHostNotFound")]
1783 RemoteHostNotFound {
1784 #[serde(
1785 rename = "remoteHostId",
1786 deserialize_with = "deserialize_number_from_string"
1787 )]
1788 remote_host_id: i64,
1789
1790 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1791 undocumented: HashMap<String, JsonObject>,
1792 },
1793 #[serde(rename = "remoteHostUnknown")]
1794 RemoteHostUnknown,
1795 #[serde(rename = "remoteHostDuplicateCA")]
1796 RemoteHostDuplicateCa,
1797 #[serde(rename = "remoteCtrlNotFound")]
1798 RemoteCtrlNotFound {
1799 #[serde(
1800 rename = "remoteCtrlId",
1801 deserialize_with = "deserialize_number_from_string"
1802 )]
1803 remote_ctrl_id: i64,
1804
1805 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1806 undocumented: HashMap<String, JsonObject>,
1807 },
1808 #[serde(rename = "remoteCtrlDuplicateCA")]
1809 RemoteCtrlDuplicateCa,
1810 #[serde(rename = "prohibitedDeleteUser")]
1811 ProhibitedDeleteUser {
1812 #[serde(rename = "userId", deserialize_with = "deserialize_number_from_string")]
1813 user_id: i64,
1814
1815 #[serde(
1816 rename = "contactId",
1817 deserialize_with = "deserialize_number_from_string"
1818 )]
1819 contact_id: i64,
1820
1821 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1822 undocumented: HashMap<String, JsonObject>,
1823 },
1824 #[serde(rename = "operatorNotFound")]
1825 OperatorNotFound {
1826 #[serde(
1827 rename = "serverOperatorId",
1828 deserialize_with = "deserialize_number_from_string"
1829 )]
1830 server_operator_id: i64,
1831
1832 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1833 undocumented: HashMap<String, JsonObject>,
1834 },
1835 #[serde(rename = "usageConditionsNotFound")]
1836 UsageConditionsNotFound,
1837 #[serde(rename = "invalidQuote")]
1838 InvalidQuote,
1839 #[serde(rename = "invalidMention")]
1840 InvalidMention,
1841 #[serde(untagged)]
1842 Undocumented(JsonObject),
1843}
1844
1845#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1846#[serde(tag = "type")]
1847#[non_exhaustive]
1848pub enum TransportError {
1849 #[serde(rename = "badBlock")]
1850 BadBlock,
1851 #[serde(rename = "version")]
1852 Version,
1853 #[serde(rename = "largeMsg")]
1854 LargeMsg,
1855 #[serde(rename = "badSession")]
1856 BadSession,
1857 #[serde(rename = "noServerAuth")]
1858 NoServerAuth,
1859 #[serde(rename = "handshake")]
1860 Handshake {
1861 #[serde(rename = "handshakeErr")]
1862 handshake_err: HandshakeError,
1863
1864 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1865 undocumented: HashMap<String, JsonObject>,
1866 },
1867 #[serde(untagged)]
1868 Undocumented(JsonObject),
1869}
1870
1871#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
1872#[serde(tag = "type")]
1873#[non_exhaustive]
1874pub enum XFTPErrorType {
1875 #[serde(rename = "BLOCK")]
1876 Block,
1877 #[serde(rename = "SESSION")]
1878 Session,
1879 #[serde(rename = "HANDSHAKE")]
1880 Handshake,
1881 #[serde(rename = "CMD")]
1882 Cmd {
1883 #[serde(rename = "cmdErr")]
1884 cmd_err: CommandError,
1885
1886 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1887 undocumented: HashMap<String, JsonObject>,
1888 },
1889 #[serde(rename = "AUTH")]
1890 Auth,
1891 #[serde(rename = "BLOCKED")]
1892 Blocked {
1893 #[serde(rename = "blockInfo")]
1894 block_info: BlockingInfo,
1895
1896 #[serde(flatten, skip_serializing_if = "HashMap::is_empty")]
1897 undocumented: HashMap<String, JsonObject>,
1898 },
1899 #[serde(rename = "SIZE")]
1900 Size,
1901 #[serde(rename = "QUOTA")]
1902 Quota,
1903 #[serde(rename = "DIGEST")]
1904 Digest,
1905 #[serde(rename = "CRYPTO")]
1906 Crypto,
1907 #[serde(rename = "NO_FILE")]
1908 NoFile,
1909 #[serde(rename = "HAS_FILE")]
1910 HasFile,
1911 #[serde(rename = "FILE_IO")]
1912 FileIo,
1913 #[serde(rename = "TIMEOUT")]
1914 Timeout,
1915 #[serde(rename = "INTERNAL")]
1916 Internal,
1917 #[serde(rename = "DUPLICATE_")]
1918 Duplicate,
1919 #[serde(untagged)]
1920 Undocumented(JsonObject),
1921}
1922
1923macro_rules! impl_error {
1924 ($($t:ty),+ $(,)?) => (
1925 $(
1926 impl std::fmt::Display for $t {
1927 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1928 write!(f, "{:#?}", self)
1929 }
1930 }
1931
1932 impl std::error::Error for $t {}
1933 )+
1934 );
1935}
1936
1937impl_error!(
1938 AgentCryptoError,
1939 AgentErrorType,
1940 BrokerErrorType,
1941 ChatError,
1942 ChatErrorType,
1943 CommandError,
1944 CommandErrorType,
1945 ConnectionErrorType,
1946 ErrorType,
1947 FileError,
1948 FileErrorType,
1949 HandshakeError,
1950 MsgDecryptError,
1951 MsgErrorType,
1952 ProxyClientError,
1953 ProxyError,
1954 RCErrorType,
1955 SMPAgentError,
1956 SndError,
1957 SrvError,
1958 StoreError,
1959 TransportError,
1960 XFTPErrorType
1961);