/* This file is generated by scripts/generate-proto-docs.mjs. */ import type { ProtoLayer } from '../types/proto'; export const protoLayers = [ { "version": 1, "description": "", "source": "layer.1.yml", "enums": [ { "name": "AttachmentType", "type": "int8", "description": "", "yaml": "AttachmentType:\n type: int8\n values:\n - id: 0\n name: IMAGE\n - id: 1\n name: MESSAGES\n - id: 2\n name: FILE\n - id: 3\n name: AVATAR\n - id: 4\n name: CALL\n - id: 5\n name: VOICE\n - id: 6\n name: VIDEO_CIRCLE", "values": [ { "id": 0, "name": "IMAGE", "description": "Image" }, { "id": 1, "name": "MESSAGES", "description": "Reply/Forwarded messages" }, { "id": 2, "name": "FILE", "description": "File" }, { "id": 3, "name": "AVATAR", "description": "Avatar" }, { "id": 4, "name": "CALL", "description": "Call" }, { "id": 5, "name": "VOICE", "description": "Voice message" }, { "id": 6, "name": "VIDEO_CIRCLE", "description": "Video circle" } ] }, { "name": "DeviceSolution", "type": "int8", "description": "Solution by device after accept or decline request to attach new device", "yaml": "DeviceSolution:\n type: int8\n values:\n - id: 0\n name: ACCEPT\n - id: 1\n name: DECLINE", "values": [ { "id": 0, "name": "ACCEPT", "description": "Accept device to log in to account" }, { "id": 1, "name": "DECLINE", "description": "Decline device" } ] }, { "name": "HandshakeStage", "type": "int8", "description": "Handshake Stage (need for set device confirm view after pass seed)", "yaml": "HandshakeStage:\n type: int8\n values:\n - id: 0\n name: COMPLETED\n - id: 1\n name: NEED_DEVICE_VERIFICATION", "values": [ { "id": 0, "name": "COMPLETED", "description": "" }, { "id": 1, "name": "NEED_DEVICE_VERIFICATION", "description": "" } ] }, { "name": "GroupStatus", "type": "int8", "description": "", "yaml": "GroupStatus:\n type: int8\n values:\n - id: 0\n name: JOINED\n - id: 1\n name: INVALID\n - id: 2\n name: NOT_JOINED\n - id: 3\n name: BANNED", "values": [ { "id": 0, "name": "JOINED", "description": "" }, { "id": 1, "name": "INVALID", "description": "" }, { "id": 2, "name": "NOT_JOINED", "description": "" }, { "id": 3, "name": "BANNED", "description": "" } ] }, { "name": "NotificationAction", "type": "int8", "description": "", "yaml": "NotificationAction:\n type: int8\n values:\n - id: 0\n name: SUBSCRIBE\n - id: 1\n name: UNSUBSCRIBE", "values": [ { "id": 0, "name": "SUBSCRIBE", "description": "" }, { "id": 1, "name": "UNSUBSCRIBE", "description": "" } ] }, { "name": "SignalType", "type": "int8", "description": "", "yaml": "SignalType:\n type: int8\n values:\n - id: 0\n name: CALL\n - id: 1\n name: KEY_EXCHANGE\n - id: 2\n name: ACTIVE_CALL\n - id: 3\n name: END_CALL\n - id: 4\n name: ACTIVE\n - id: 5\n name: END_CALL_BECAUSE_PEER_DISCONNECTED\n - id: 6\n name: END_CALL_BECAUSE_BUSY\n - id: 7\n name: ACCEPT\n - id: 8\n name: RINGING_TIMEOUT", "values": [ { "id": 0, "name": "CALL", "description": "" }, { "id": 1, "name": "KEY_EXCHANGE", "description": "" }, { "id": 2, "name": "ACTIVE_CALL", "description": "" }, { "id": 3, "name": "END_CALL", "description": "" }, { "id": 4, "name": "ACTIVE", "description": "" }, { "id": 5, "name": "END_CALL_BECAUSE_PEER_DISCONNECTED", "description": "" }, { "id": 6, "name": "END_CALL_BECAUSE_BUSY", "description": "" }, { "id": 7, "name": "ACCEPT", "description": "" }, { "id": 8, "name": "RINGING_TIMEOUT", "description": "" } ] }, { "name": "NetworkStatus", "type": "int8", "description": "", "yaml": "NetworkStatus:\n type: int8\n values:\n - id: 0\n name: ONLINE\n - id: 1\n name: OFFLINE", "values": [ { "id": 0, "name": "ONLINE", "description": "" }, { "id": 1, "name": "OFFLINE", "description": "" } ] }, { "name": "SyncStatus", "type": "int8", "description": "", "yaml": "SyncStatus:\n type: int8\n values:\n - id: 0\n name: NOT_NEEDED\n - id: 1\n name: BATCH_START\n - id: 2\n name: BATCH_END", "values": [ { "id": 0, "name": "NOT_NEEDED", "description": "" }, { "id": 1, "name": "BATCH_START", "description": "" }, { "id": 2, "name": "BATCH_END", "description": "" } ] }, { "name": "WebRTCType", "type": "int8", "description": "", "yaml": "WebRTCType:\n type: int8\n values:\n - id: 0\n name: OFFER\n - id: 1\n name: ANSWER\n - id: 2\n name: ICE_CANDIDATE", "values": [ { "id": 0, "name": "OFFER", "description": "" }, { "id": 1, "name": "ANSWER", "description": "" }, { "id": 2, "name": "ICE_CANDIDATE", "description": "" } ] }, { "name": "ResultCode", "type": "int8", "description": "", "yaml": "ResultCode:\n type: int8\n values:\n - id: 0\n name: SUCCESS\n - id: 1\n name: ERROR\n - id: 2\n name: INVALID\n - id: 3\n name: USERNAME_TAKEN", "values": [ { "id": 0, "name": "SUCCESS", "description": "" }, { "id": 1, "name": "ERROR", "description": "" }, { "id": 2, "name": "INVALID", "description": "" }, { "id": 3, "name": "USERNAME_TAKEN", "description": "" } ] }, { "name": "TokenType", "type": "int8", "description": "", "yaml": "TokenType:\n type: int8\n values:\n - id: 0\n name: FCM\n - id: 1\n name: VoIPApns", "values": [ { "id": 0, "name": "FCM", "description": "" }, { "id": 1, "name": "VoIPApns", "description": "" } ] } ], "types": [ { "name": "Attachment", "description": "", "yaml": "Attachment:\n fields:\n - id: 1\n name: id\n type: string\n - id: 2\n name: blob?\n type: string\n - id: 3\n name: type\n type: AttachmentType\n - id: 4\n name: preview\n type: string\n - id: 5\n name: transport\n type: AttachmentTransport", "fields": [ { "id": 1, "name": "id", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "blob", "type": "string", "optional": true, "description": "" }, { "id": 3, "name": "type", "type": "AttachmentType", "optional": false, "description": "" }, { "id": 4, "name": "preview", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "transport", "type": "AttachmentTransport", "optional": false, "description": "" } ] }, { "name": "AttachmentTransport", "description": "", "yaml": "AttachmentTransport:\n fields:\n - id: 1\n name: transportTag\n type: string\n - id: 2\n name: transportServer\n type: string", "fields": [ { "id": 1, "name": "transportTag", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "transportServer", "type": "string", "optional": false, "description": "" } ] }, { "name": "NetworkDevice", "description": "", "yaml": "NetworkDevice:\n fields:\n - id: 1\n name: networkStatus\n type: NetworkStatus\n - id: 2\n name: deviceName\n type: string\n - id: 3\n name: deviceOs\n type: string\n - id: 4\n name: deviceId\n type: string\n - id: 5\n name: deviceSolution\n type: DeviceSolution", "fields": [ { "id": 1, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" }, { "id": 2, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceOs", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "deviceSolution", "type": "DeviceSolution", "optional": false, "description": "" } ] }, { "name": "PKNetworkStatus", "description": "", "yaml": "PKNetworkStatus:\n fields:\n - id: 1\n name: publicKey\n type: string\n - id: 2\n name: networkStatus\n type: NetworkStatus", "fields": [ { "id": 1, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" } ] }, { "name": "SearchInfo", "description": "", "yaml": "SearchInfo:\n fields:\n - id: 1\n name: username\n type: string\n - id: 2\n name: title\n type: string\n - id: 3\n name: publicKey\n type: string\n - id: 4\n name: verified\n type: int32\n - id: 5\n name: networkStatus\n type: NetworkStatus", "fields": [ { "id": 1, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "title", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "verified", "type": "int32", "optional": false, "description": "" }, { "id": 5, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" } ] }, { "name": "RTCIceServer", "description": "", "yaml": "RTCIceServer:\n fields:\n - id: 1\n name: url\n type: string\n - id: 2\n name: username\n type: string\n - id: 3\n name: credential\n type: string\n - id: 4\n name: transport\n type: string", "fields": [ { "id": 1, "name": "url", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "credential", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "transport", "type": "string", "optional": false, "description": "" } ] } ], "packets": [ { "name": "Handshake", "id": 0, "description": "", "yaml": "Handshake:\n id: 0\n fields:\n - id: 1\n name: publicKey\n type: string\n - id: 2\n name: privateKey\n type: string\n - id: 3\n name: deviceId\n type: string\n - id: 4\n name: deviceName\n type: string\n - id: 5\n name: deviceOs\n type: string\n - id: 6\n name: handshakeStage?\n type: HandshakeStage", "fields": [ { "id": 1, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "deviceOs", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "handshakeStage", "type": "HandshakeStage", "optional": true, "description": "" } ] }, { "name": "UserInfo", "id": 1, "description": "", "yaml": "UserInfo:\n id: 1\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: username\n type: string\n - id: 3\n name: title\n type: string", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "title", "type": "string", "optional": false, "description": "" } ] }, { "name": "Result", "id": 2, "description": "", "yaml": "Result:\n id: 2\n fields:\n - id: 1\n name: resultCode\n type: ResultCode", "fields": [ { "id": 1, "name": "resultCode", "type": "ResultCode", "optional": false, "description": "" } ] }, { "name": "Search", "id": 3, "description": "", "yaml": "Search:\n id: 3\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: search\n type: string\n - id: 3\n name: searchInfo?\n type: SearchInfo[]", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "search", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "searchInfo", "type": "SearchInfo[]", "optional": true, "description": "" } ] }, { "name": "OnlineSubscribe", "id": 4, "description": "", "yaml": "OnlineSubscribe:\n id: 4\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: publicKeys\n type: string[]", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "publicKeys", "type": "string[]", "optional": false, "description": "" } ] }, { "name": "OnlineState", "id": 5, "description": "", "yaml": "OnlineState:\n id: 5\n fields:\n - id: 1\n name: pkNetworkStatuses\n type: PKNetworkStatus[]", "fields": [ { "id": 1, "name": "pkNetworkStatuses", "type": "PKNetworkStatus[]", "optional": false, "description": "" } ] }, { "name": "Message", "id": 6, "description": "", "yaml": "Message:\n id: 6\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 3\n name: privateKey\n type: string\n - id: 4\n name: content\n type: string\n - id: 5\n name: chachaKey\n type: string\n - id: 6\n name: timestamp\n type: int64\n - id: 7\n name: messageId\n type: string\n - id: 8\n name: attachments?\n type: Attachment[]\n - id: 9\n name: aesChachaKey\n type: string", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "content", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "chachaKey", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "timestamp", "type": "int64", "optional": false, "description": "" }, { "id": 7, "name": "messageId", "type": "string", "optional": false, "description": "" }, { "id": 8, "name": "attachments", "type": "Attachment[]", "optional": true, "description": "" }, { "id": 9, "name": "aesChachaKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "Read", "id": 7, "description": "", "yaml": "Read:\n id: 7\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 3\n name: privateKey\n type: string", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "privateKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "Delivery", "id": 8, "description": "", "yaml": "Delivery:\n id: 8\n fields:\n - id: 1\n name: messageId\n type: string\n - id: 2\n name: toPublicKey\n type: string", "fields": [ { "id": 1, "name": "messageId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "DeviceNew", "id": 9, "description": "", "yaml": "DeviceNew:\n id: 9\n fields:\n - id: 1\n name: ipAddress\n type: string\n - id: 2\n name: deviceId\n type: string\n - id: 3\n name: deviceName\n type: string\n - id: 4\n name: deviceOs\n type: string", "fields": [ { "id": 1, "name": "ipAddress", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceOs", "type": "string", "optional": false, "description": "" } ] }, { "name": "RequestUpdate", "id": 10, "description": "", "yaml": "RequestUpdate:\n id: 10\n fields:\n - id: 1\n name: server?\n type: string", "fields": [ { "id": 1, "name": "server", "type": "string", "optional": true, "description": "" } ] }, { "name": "Typeing", "id": 11, "description": "", "yaml": "Typeing:\n id: 11\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 3\n name: privateKey\n type: string", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "privateKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "RequestTransport", "id": 15, "description": "", "yaml": "RequestTransport:\n id: 15\n fields:\n - id: 1\n name: server?\n type: string", "fields": [ { "id": 1, "name": "server", "type": "string", "optional": true, "description": "" } ] }, { "name": "PushNotification", "id": 16, "description": "", "yaml": "PushNotification:\n id: 16\n fields:\n - id: 1\n name: notificationToken\n type: string\n - id: 2\n name: action\n type: NotificationAction\n - id: 3\n name: tokenType\n type: TokenType\n - id: 4\n name: deviceId\n type: string", "fields": [ { "id": 1, "name": "notificationToken", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "action", "type": "NotificationAction", "optional": false, "description": "" }, { "id": 3, "name": "tokenType", "type": "TokenType", "optional": false, "description": "" }, { "id": 4, "name": "deviceId", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupCreate", "id": 17, "description": "", "yaml": "GroupCreate:\n id: 17\n fields:\n - id: 1\n name: groupId\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupInfo", "id": 18, "description": "", "yaml": "GroupInfo:\n id: 18\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: membersPKs?\n type: string[]", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "membersPKs", "type": "string[]", "optional": true, "description": "" } ] }, { "name": "GroupInviteInfo", "id": 19, "description": "", "yaml": "GroupInviteInfo:\n id: 19\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: membersCount?\n type: int32\n - id: 3\n name: status?\n type: GroupStatus", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "membersCount", "type": "int32", "optional": true, "description": "" }, { "id": 3, "name": "status", "type": "GroupStatus", "optional": true, "description": "" } ] }, { "name": "GroupJoin", "id": 20, "description": "", "yaml": "GroupJoin:\n id: 20\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: status?\n type: GroupStatus\n - id: 3\n name: groupString\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "status", "type": "GroupStatus", "optional": true, "description": "" }, { "id": 3, "name": "groupString", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupLeave", "id": 21, "description": "", "yaml": "GroupLeave:\n id: 21\n fields:\n - id: 1\n name: groupId\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupBan", "id": 22, "description": "", "yaml": "GroupBan:\n id: 22\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: publicKey\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "publicKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "DeviceList", "id": 23, "description": "", "yaml": "DeviceList:\n id: 23\n fields:\n - id: 1\n name: devices\n type: NetworkDevice[]", "fields": [ { "id": 1, "name": "devices", "type": "NetworkDevice[]", "optional": false, "description": "" } ] }, { "name": "DeviceResolve", "id": 24, "description": "", "yaml": "DeviceResolve:\n id: 24\n fields:\n - id: 1\n name: deviceId\n type: string\n - id: 2\n name: solution\n type: DeviceSolution", "fields": [ { "id": 1, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "solution", "type": "DeviceSolution", "optional": false, "description": "" } ] }, { "name": "Sync", "id": 25, "description": "", "yaml": "Sync:\n id: 25\n fields:\n - id: 1\n name: syncStatus\n type: SyncStatus\n - id: 2\n name: timestamp\n type: int64", "fields": [ { "id": 1, "name": "syncStatus", "type": "SyncStatus", "optional": false, "description": "" }, { "id": 2, "name": "timestamp", "type": "int64", "optional": false, "description": "" } ] }, { "name": "SignalPeer", "id": 26, "description": "", "yaml": "SignalPeer:\n id: 26\n fields:\n - id: 1\n name: src\n type: string\n - id: 2\n name: dst\n type: string\n - id: 3\n name: sharedPublic\n type: string\n - id: 4\n name: signalType\n type: SignalType\n - id: 5\n name: callId\n type: string\n - id: 6\n name: joinToken\n type: string", "fields": [ { "id": 1, "name": "src", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "dst", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "sharedPublic", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "signalType", "type": "SignalType", "optional": false, "description": "" }, { "id": 5, "name": "callId", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "joinToken", "type": "string", "optional": false, "description": "" } ] }, { "name": "WebRTC", "id": 27, "description": "", "yaml": "WebRTC:\n id: 27\n fields:\n - id: 1\n name: sdpOrCandidate\n type: string\n - id: 2\n name: type\n type: WebRTCType", "fields": [ { "id": 1, "name": "sdpOrCandidate", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "type", "type": "WebRTCType", "optional": false, "description": "" } ] }, { "name": "IceServers", "id": 28, "description": "", "yaml": "IceServers:\n id: 28\n fields:\n - id: 1\n name: iceServers?\n type: RTCIceServer[]", "fields": [ { "id": 1, "name": "iceServers", "type": "RTCIceServer[]", "optional": true, "description": "" } ] } ] }, { "version": 2, "description": "Remove avatars as attachments, add video", "source": "layer.2.yml", "enums": [ { "name": "AttachmentType", "type": "int8", "description": "", "yaml": "AttachmentType:\n type: int8\n values:\n - id: 0\n name: IMAGE\n - id: 1\n name: MESSAGES\n - id: 2\n name: FILE\n - id: 4\n name: CALL\n - id: 5\n name: VOICE\n - id: 6\n name: VIDEO_CIRCLE\n - id: 7\n name: VIDEO", "values": [ { "id": 0, "name": "IMAGE", "description": "" }, { "id": 1, "name": "MESSAGES", "description": "" }, { "id": 2, "name": "FILE", "description": "" }, { "id": 4, "name": "CALL", "description": "" }, { "id": 5, "name": "VOICE", "description": "" }, { "id": 6, "name": "VIDEO_CIRCLE", "description": "" }, { "id": 7, "name": "VIDEO", "description": "" } ] }, { "name": "DeviceSolution", "type": "int8", "description": "", "yaml": "DeviceSolution:\n type: int8\n values:\n - id: 0\n name: ACCEPT\n - id: 1\n name: DECLINE", "values": [ { "id": 0, "name": "ACCEPT", "description": "" }, { "id": 1, "name": "DECLINE", "description": "" } ] }, { "name": "HandshakeStage", "type": "int8", "description": "", "yaml": "HandshakeStage:\n type: int8\n values:\n - id: 0\n name: COMPLETED\n - id: 1\n name: NEED_DEVICE_VERIFICATION", "values": [ { "id": 0, "name": "COMPLETED", "description": "" }, { "id": 1, "name": "NEED_DEVICE_VERIFICATION", "description": "" } ] }, { "name": "GroupStatus", "type": "int8", "description": "", "yaml": "GroupStatus:\n type: int8\n values:\n - id: 0\n name: JOINED\n - id: 1\n name: INVALID\n - id: 2\n name: NOT_JOINED\n - id: 3\n name: BANNED", "values": [ { "id": 0, "name": "JOINED", "description": "" }, { "id": 1, "name": "INVALID", "description": "" }, { "id": 2, "name": "NOT_JOINED", "description": "" }, { "id": 3, "name": "BANNED", "description": "" } ] }, { "name": "NotificationAction", "type": "int8", "description": "", "yaml": "NotificationAction:\n type: int8\n values:\n - id: 0\n name: SUBSCRIBE\n - id: 1\n name: UNSUBSCRIBE", "values": [ { "id": 0, "name": "SUBSCRIBE", "description": "" }, { "id": 1, "name": "UNSUBSCRIBE", "description": "" } ] }, { "name": "SignalType", "type": "int8", "description": "", "yaml": "SignalType:\n type: int8\n values:\n - id: 0\n name: CALL\n - id: 1\n name: KEY_EXCHANGE\n - id: 2\n name: ACTIVE_CALL\n - id: 3\n name: END_CALL\n - id: 4\n name: ACTIVE\n - id: 5\n name: END_CALL_BECAUSE_PEER_DISCONNECTED\n - id: 6\n name: END_CALL_BECAUSE_BUSY\n - id: 7\n name: ACCEPT\n - id: 8\n name: RINGING_TIMEOUT", "values": [ { "id": 0, "name": "CALL", "description": "" }, { "id": 1, "name": "KEY_EXCHANGE", "description": "" }, { "id": 2, "name": "ACTIVE_CALL", "description": "" }, { "id": 3, "name": "END_CALL", "description": "" }, { "id": 4, "name": "ACTIVE", "description": "" }, { "id": 5, "name": "END_CALL_BECAUSE_PEER_DISCONNECTED", "description": "" }, { "id": 6, "name": "END_CALL_BECAUSE_BUSY", "description": "" }, { "id": 7, "name": "ACCEPT", "description": "" }, { "id": 8, "name": "RINGING_TIMEOUT", "description": "" } ] }, { "name": "NetworkStatus", "type": "int8", "description": "", "yaml": "NetworkStatus:\n type: int8\n values:\n - id: 0\n name: ONLINE\n - id: 1\n name: OFFLINE", "values": [ { "id": 0, "name": "ONLINE", "description": "" }, { "id": 1, "name": "OFFLINE", "description": "" } ] }, { "name": "SyncStatus", "type": "int8", "description": "", "yaml": "SyncStatus:\n type: int8\n values:\n - id: 0\n name: NOT_NEEDED\n - id: 1\n name: BATCH_START\n - id: 2\n name: BATCH_END", "values": [ { "id": 0, "name": "NOT_NEEDED", "description": "" }, { "id": 1, "name": "BATCH_START", "description": "" }, { "id": 2, "name": "BATCH_END", "description": "" } ] }, { "name": "WebRTCType", "type": "int8", "description": "", "yaml": "WebRTCType:\n type: int8\n values:\n - id: 0\n name: OFFER\n - id: 1\n name: ANSWER\n - id: 2\n name: ICE_CANDIDATE", "values": [ { "id": 0, "name": "OFFER", "description": "" }, { "id": 1, "name": "ANSWER", "description": "" }, { "id": 2, "name": "ICE_CANDIDATE", "description": "" } ] }, { "name": "ResultCode", "type": "int8", "description": "", "yaml": "ResultCode:\n type: int8\n values:\n - id: 0\n name: SUCCESS\n - id: 1\n name: ERROR\n - id: 2\n name: INVALID\n - id: 3\n name: USERNAME_TAKEN", "values": [ { "id": 0, "name": "SUCCESS", "description": "" }, { "id": 1, "name": "ERROR", "description": "" }, { "id": 2, "name": "INVALID", "description": "" }, { "id": 3, "name": "USERNAME_TAKEN", "description": "" } ] }, { "name": "TokenType", "type": "int8", "description": "", "yaml": "TokenType:\n type: int8\n values:\n - id: 0\n name: FCM\n - id: 1\n name: VoIPApns", "values": [ { "id": 0, "name": "FCM", "description": "" }, { "id": 1, "name": "VoIPApns", "description": "" } ] } ], "types": [ { "name": "Attachment", "description": "", "yaml": "Attachment:\n fields:\n - id: 1\n name: id\n type: string\n - id: 2\n name: blob?\n type: string\n - id: 3\n name: type\n type: AttachmentType\n - id: 4\n name: preview\n type: string\n - id: 5\n name: transport\n type: AttachmentTransport", "fields": [ { "id": 1, "name": "id", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "blob", "type": "string", "optional": true, "description": "" }, { "id": 3, "name": "type", "type": "AttachmentType", "optional": false, "description": "" }, { "id": 4, "name": "preview", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "transport", "type": "AttachmentTransport", "optional": false, "description": "" } ] }, { "name": "AttachmentTransport", "description": "", "yaml": "AttachmentTransport:\n fields:\n - id: 1\n name: transportTag\n type: string\n - id: 2\n name: transportServer\n type: string", "fields": [ { "id": 1, "name": "transportTag", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "transportServer", "type": "string", "optional": false, "description": "" } ] }, { "name": "NetworkDevice", "description": "", "yaml": "NetworkDevice:\n fields:\n - id: 1\n name: networkStatus\n type: NetworkStatus\n - id: 2\n name: deviceName\n type: string\n - id: 3\n name: deviceOs\n type: string\n - id: 4\n name: deviceId\n type: string\n - id: 5\n name: deviceSolution\n type: DeviceSolution", "fields": [ { "id": 1, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" }, { "id": 2, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceOs", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "deviceSolution", "type": "DeviceSolution", "optional": false, "description": "" } ] }, { "name": "PKNetworkStatus", "description": "", "yaml": "PKNetworkStatus:\n fields:\n - id: 1\n name: publicKey\n type: string\n - id: 2\n name: networkStatus\n type: NetworkStatus", "fields": [ { "id": 1, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" } ] }, { "name": "SearchInfo", "description": "", "yaml": "SearchInfo:\n fields:\n - id: 1\n name: username\n type: string\n - id: 2\n name: title\n type: string\n - id: 3\n name: publicKey\n type: string\n - id: 4\n name: verified\n type: int32\n - id: 5\n name: networkStatus\n type: NetworkStatus", "fields": [ { "id": 1, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "title", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "verified", "type": "int32", "optional": false, "description": "" }, { "id": 5, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" } ] }, { "name": "RTCIceServer", "description": "", "yaml": "RTCIceServer:\n fields:\n - id: 1\n name: url\n type: string\n - id: 2\n name: username\n type: string\n - id: 3\n name: credential\n type: string\n - id: 4\n name: transport\n type: string", "fields": [ { "id": 1, "name": "url", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "credential", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "transport", "type": "string", "optional": false, "description": "" } ] } ], "packets": [ { "name": "Handshake", "id": 0, "description": "", "yaml": "Handshake:\n id: 0\n fields:\n - id: 1\n name: publicKey\n type: string\n - id: 2\n name: privateKey\n type: string\n - id: 3\n name: deviceId\n type: string\n - id: 4\n name: deviceName\n type: string\n - id: 5\n name: deviceOs\n type: string\n - id: 6\n name: handshakeStage?\n type: HandshakeStage", "fields": [ { "id": 1, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "deviceOs", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "handshakeStage", "type": "HandshakeStage", "optional": true, "description": "" } ] }, { "name": "UserInfo", "id": 1, "description": "", "yaml": "UserInfo:\n id: 1\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: username\n type: string\n - id: 3\n name: title\n type: string", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "title", "type": "string", "optional": false, "description": "" } ] }, { "name": "Result", "id": 2, "description": "", "yaml": "Result:\n id: 2\n fields:\n - id: 1\n name: resultCode\n type: ResultCode", "fields": [ { "id": 1, "name": "resultCode", "type": "ResultCode", "optional": false, "description": "" } ] }, { "name": "Search", "id": 3, "description": "", "yaml": "Search:\n id: 3\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: search\n type: string\n - id: 3\n name: searchInfo?\n type: SearchInfo[]", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "search", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "searchInfo", "type": "SearchInfo[]", "optional": true, "description": "" } ] }, { "name": "OnlineSubscribe", "id": 4, "description": "", "yaml": "OnlineSubscribe:\n id: 4\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: publicKeys\n type: string[]", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "publicKeys", "type": "string[]", "optional": false, "description": "" } ] }, { "name": "OnlineState", "id": 5, "description": "", "yaml": "OnlineState:\n id: 5\n fields:\n - id: 1\n name: pkNetworkStatuses\n type: PKNetworkStatus[]", "fields": [ { "id": 1, "name": "pkNetworkStatuses", "type": "PKNetworkStatus[]", "optional": false, "description": "" } ] }, { "name": "Message", "id": 6, "description": "", "yaml": "Message:\n id: 6\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 3\n name: privateKey\n type: string\n - id: 4\n name: content\n type: string\n - id: 5\n name: chachaKey\n type: string\n - id: 6\n name: timestamp\n type: int64\n - id: 7\n name: messageId\n type: string\n - id: 8\n name: attachments?\n type: Attachment[]\n - id: 9\n name: aesChachaKey\n type: string", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "content", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "chachaKey", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "timestamp", "type": "int64", "optional": false, "description": "" }, { "id": 7, "name": "messageId", "type": "string", "optional": false, "description": "" }, { "id": 8, "name": "attachments", "type": "Attachment[]", "optional": true, "description": "" }, { "id": 9, "name": "aesChachaKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "Read", "id": 7, "description": "", "yaml": "Read:\n id: 7\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 4\n name: timestamp\n type: int64", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "timestamp", "type": "int64", "optional": false, "description": "" } ] }, { "name": "Delivery", "id": 8, "description": "", "yaml": "Delivery:\n id: 8\n fields:\n - id: 1\n name: messageId\n type: string\n - id: 2\n name: toPublicKey\n type: string", "fields": [ { "id": 1, "name": "messageId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "DeviceNew", "id": 9, "description": "", "yaml": "DeviceNew:\n id: 9\n fields:\n - id: 1\n name: ipAddress\n type: string\n - id: 2\n name: deviceId\n type: string\n - id: 3\n name: deviceName\n type: string\n - id: 4\n name: deviceOs\n type: string", "fields": [ { "id": 1, "name": "ipAddress", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceOs", "type": "string", "optional": false, "description": "" } ] }, { "name": "RequestUpdate", "id": 10, "description": "", "yaml": "RequestUpdate:\n id: 10\n fields:\n - id: 1\n name: server?\n type: string", "fields": [ { "id": 1, "name": "server", "type": "string", "optional": true, "description": "" } ] }, { "name": "Typeing", "id": 11, "description": "", "yaml": "Typeing:\n id: 11\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 3\n name: privateKey\n type: string", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "privateKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "RequestTransport", "id": 15, "description": "", "yaml": "RequestTransport:\n id: 15\n fields:\n - id: 1\n name: server?\n type: string", "fields": [ { "id": 1, "name": "server", "type": "string", "optional": true, "description": "" } ] }, { "name": "PushNotification", "id": 16, "description": "", "yaml": "PushNotification:\n id: 16\n fields:\n - id: 1\n name: notificationToken\n type: string\n - id: 2\n name: action\n type: NotificationAction\n - id: 3\n name: tokenType\n type: TokenType\n - id: 4\n name: deviceId\n type: string", "fields": [ { "id": 1, "name": "notificationToken", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "action", "type": "NotificationAction", "optional": false, "description": "" }, { "id": 3, "name": "tokenType", "type": "TokenType", "optional": false, "description": "" }, { "id": 4, "name": "deviceId", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupCreate", "id": 17, "description": "", "yaml": "GroupCreate:\n id: 17\n fields:\n - id: 1\n name: groupId?\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": true, "description": "" } ] }, { "name": "GroupInfo", "id": 18, "description": "", "yaml": "GroupInfo:\n id: 18\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: membersPKs?\n type: string[]", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "membersPKs", "type": "string[]", "optional": true, "description": "" } ] }, { "name": "GroupInviteInfo", "id": 19, "description": "", "yaml": "GroupInviteInfo:\n id: 19\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: membersCount?\n type: int32\n - id: 3\n name: status?\n type: GroupStatus", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "membersCount", "type": "int32", "optional": true, "description": "" }, { "id": 3, "name": "status", "type": "GroupStatus", "optional": true, "description": "" } ] }, { "name": "GroupJoin", "id": 20, "description": "", "yaml": "GroupJoin:\n id: 20\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: status?\n type: GroupStatus\n - id: 3\n name: groupString\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "status", "type": "GroupStatus", "optional": true, "description": "" }, { "id": 3, "name": "groupString", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupLeave", "id": 21, "description": "", "yaml": "GroupLeave:\n id: 21\n fields:\n - id: 1\n name: groupId\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupBan", "id": 22, "description": "", "yaml": "GroupBan:\n id: 22\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: publicKey\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "publicKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "DeviceList", "id": 23, "description": "", "yaml": "DeviceList:\n id: 23\n fields:\n - id: 1\n name: devices\n type: NetworkDevice[]", "fields": [ { "id": 1, "name": "devices", "type": "NetworkDevice[]", "optional": false, "description": "" } ] }, { "name": "DeviceResolve", "id": 24, "description": "", "yaml": "DeviceResolve:\n id: 24\n fields:\n - id: 1\n name: deviceId\n type: string\n - id: 2\n name: solution\n type: DeviceSolution", "fields": [ { "id": 1, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "solution", "type": "DeviceSolution", "optional": false, "description": "" } ] }, { "name": "Sync", "id": 25, "description": "", "yaml": "Sync:\n id: 25\n fields:\n - id: 1\n name: syncStatus\n type: SyncStatus\n - id: 2\n name: timestamp\n type: int64", "fields": [ { "id": 1, "name": "syncStatus", "type": "SyncStatus", "optional": false, "description": "" }, { "id": 2, "name": "timestamp", "type": "int64", "optional": false, "description": "" } ] }, { "name": "SignalPeer", "id": 26, "description": "", "yaml": "SignalPeer:\n id: 26\n fields:\n - id: 1\n name: src\n type: string\n - id: 2\n name: dst\n type: string\n - id: 3\n name: sharedPublic?\n type: string\n - id: 4\n name: signalType\n type: SignalType\n - id: 5\n name: callId?\n type: string\n - id: 6\n name: joinToken?\n type: string", "fields": [ { "id": 1, "name": "src", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "dst", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "sharedPublic", "type": "string", "optional": true, "description": "" }, { "id": 4, "name": "signalType", "type": "SignalType", "optional": false, "description": "" }, { "id": 5, "name": "callId", "type": "string", "optional": true, "description": "" }, { "id": 6, "name": "joinToken", "type": "string", "optional": true, "description": "" } ] }, { "name": "WebRTC", "id": 27, "description": "", "yaml": "WebRTC:\n id: 27\n fields:\n - id: 1\n name: sdpOrCandidate\n type: string\n - id: 2\n name: type\n type: WebRTCType", "fields": [ { "id": 1, "name": "sdpOrCandidate", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "type", "type": "WebRTCType", "optional": false, "description": "" } ] }, { "name": "IceServers", "id": 28, "description": "", "yaml": "IceServers:\n id: 28\n fields:\n - id: 1\n name: iceServers?\n type: RTCIceServer[]", "fields": [ { "id": 1, "name": "iceServers", "type": "RTCIceServer[]", "optional": true, "description": "" } ] } ] }, { "version": 3, "description": "Add avatars and more CDN safety, remove transport server", "source": "layer.3.yml", "enums": [ { "name": "AttachmentType", "type": "int8", "description": "", "yaml": "AttachmentType:\n type: int8\n values:\n - id: 0\n name: IMAGE\n - id: 1\n name: MESSAGES\n - id: 2\n name: FILE\n - id: 4\n name: CALL\n - id: 5\n name: VOICE\n - id: 6\n name: VIDEO_CIRCLE\n - id: 7\n name: VIDEO", "values": [ { "id": 0, "name": "IMAGE", "description": "" }, { "id": 1, "name": "MESSAGES", "description": "" }, { "id": 2, "name": "FILE", "description": "" }, { "id": 4, "name": "CALL", "description": "" }, { "id": 5, "name": "VOICE", "description": "" }, { "id": 6, "name": "VIDEO_CIRCLE", "description": "" }, { "id": 7, "name": "VIDEO", "description": "" } ] }, { "name": "DeviceSolution", "type": "int8", "description": "", "yaml": "DeviceSolution:\n type: int8\n values:\n - id: 0\n name: ACCEPT\n - id: 1\n name: DECLINE", "values": [ { "id": 0, "name": "ACCEPT", "description": "" }, { "id": 1, "name": "DECLINE", "description": "" } ] }, { "name": "HandshakeStage", "type": "int8", "description": "", "yaml": "HandshakeStage:\n type: int8\n values:\n - id: 0\n name: COMPLETED\n - id: 1\n name: NEED_DEVICE_VERIFICATION", "values": [ { "id": 0, "name": "COMPLETED", "description": "" }, { "id": 1, "name": "NEED_DEVICE_VERIFICATION", "description": "" } ] }, { "name": "GroupStatus", "type": "int8", "description": "", "yaml": "GroupStatus:\n type: int8\n values:\n - id: 0\n name: JOINED\n - id: 1\n name: INVALID\n - id: 2\n name: NOT_JOINED\n - id: 3\n name: BANNED", "values": [ { "id": 0, "name": "JOINED", "description": "" }, { "id": 1, "name": "INVALID", "description": "" }, { "id": 2, "name": "NOT_JOINED", "description": "" }, { "id": 3, "name": "BANNED", "description": "" } ] }, { "name": "NotificationAction", "type": "int8", "description": "", "yaml": "NotificationAction:\n type: int8\n values:\n - id: 0\n name: SUBSCRIBE\n - id: 1\n name: UNSUBSCRIBE", "values": [ { "id": 0, "name": "SUBSCRIBE", "description": "" }, { "id": 1, "name": "UNSUBSCRIBE", "description": "" } ] }, { "name": "SignalType", "type": "int8", "description": "", "yaml": "SignalType:\n type: int8\n values:\n - id: 0\n name: CALL\n - id: 1\n name: KEY_EXCHANGE\n - id: 2\n name: ACTIVE_CALL\n - id: 3\n name: END_CALL\n - id: 4\n name: ACTIVE\n - id: 5\n name: END_CALL_BECAUSE_PEER_DISCONNECTED\n - id: 6\n name: END_CALL_BECAUSE_BUSY\n - id: 7\n name: ACCEPT\n - id: 8\n name: RINGING_TIMEOUT", "values": [ { "id": 0, "name": "CALL", "description": "" }, { "id": 1, "name": "KEY_EXCHANGE", "description": "" }, { "id": 2, "name": "ACTIVE_CALL", "description": "" }, { "id": 3, "name": "END_CALL", "description": "" }, { "id": 4, "name": "ACTIVE", "description": "" }, { "id": 5, "name": "END_CALL_BECAUSE_PEER_DISCONNECTED", "description": "" }, { "id": 6, "name": "END_CALL_BECAUSE_BUSY", "description": "" }, { "id": 7, "name": "ACCEPT", "description": "" }, { "id": 8, "name": "RINGING_TIMEOUT", "description": "" } ] }, { "name": "NetworkStatus", "type": "int8", "description": "", "yaml": "NetworkStatus:\n type: int8\n values:\n - id: 0\n name: ONLINE\n - id: 1\n name: OFFLINE", "values": [ { "id": 0, "name": "ONLINE", "description": "" }, { "id": 1, "name": "OFFLINE", "description": "" } ] }, { "name": "SyncStatus", "type": "int8", "description": "", "yaml": "SyncStatus:\n type: int8\n values:\n - id: 0\n name: NOT_NEEDED\n - id: 1\n name: BATCH_START\n - id: 2\n name: BATCH_END", "values": [ { "id": 0, "name": "NOT_NEEDED", "description": "" }, { "id": 1, "name": "BATCH_START", "description": "" }, { "id": 2, "name": "BATCH_END", "description": "" } ] }, { "name": "WebRTCType", "type": "int8", "description": "", "yaml": "WebRTCType:\n type: int8\n values:\n - id: 0\n name: OFFER\n - id: 1\n name: ANSWER\n - id: 2\n name: ICE_CANDIDATE", "values": [ { "id": 0, "name": "OFFER", "description": "" }, { "id": 1, "name": "ANSWER", "description": "" }, { "id": 2, "name": "ICE_CANDIDATE", "description": "" } ] }, { "name": "ResultCode", "type": "int8", "description": "", "yaml": "ResultCode:\n type: int8\n values:\n - id: 0\n name: SUCCESS\n - id: 1\n name: ERROR\n - id: 2\n name: INVALID\n - id: 3\n name: USERNAME_TAKEN\n - id: 4\n name: OVERSIZE\n - id: 5\n name: OVERLIFE", "values": [ { "id": 0, "name": "SUCCESS", "description": "" }, { "id": 1, "name": "ERROR", "description": "" }, { "id": 2, "name": "INVALID", "description": "любая ошибка смысл которой зависит от контекста, например в случае с файловой системой - нет файла" }, { "id": 3, "name": "USERNAME_TAKEN", "description": "" }, { "id": 4, "name": "OVERSIZE", "description": "слишком большой размер файла" }, { "id": 5, "name": "OVERLIFE", "description": "слишком большой TTL" } ] }, { "name": "TokenType", "type": "int8", "description": "", "yaml": "TokenType:\n type: int8\n values:\n - id: 0\n name: FCM\n - id: 1\n name: VoIPApns", "values": [ { "id": 0, "name": "FCM", "description": "" }, { "id": 1, "name": "VoIPApns", "description": "" } ] }, { "name": "ProfileMediaType", "type": "uint8", "description": "Тип медиа файла профиля (пока только фото)", "yaml": "ProfileMediaType:\n type: uint8\n values:\n - id: 0\n name: PROFILE_PHOTO", "values": [ { "id": 0, "name": "PROFILE_PHOTO", "description": "" } ] } ], "types": [ { "name": "Attachment", "description": "", "yaml": "Attachment:\n fields:\n - id: 1\n name: id\n type: string\n - id: 2\n name: blob?\n type: string\n - id: 3\n name: type\n type: AttachmentType\n - id: 4\n name: preview\n type: string\n - id: 6\n name: objectId\n type: string", "fields": [ { "id": 1, "name": "id", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "blob", "type": "string", "optional": true, "description": "" }, { "id": 3, "name": "type", "type": "AttachmentType", "optional": false, "description": "" }, { "id": 4, "name": "preview", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "objectId", "type": "string", "optional": false, "description": "" } ] }, { "name": "ProfileMedia", "description": "Медиа-файлы профиля такие как аватарки (фото) и будущие истории", "yaml": "ProfileMedia:\n fields:\n - id: 1\n name: preview\n type: string\n - id: 2\n name: objectId\n type: string\n - id: 3\n name: type\n type: ProfileMediaType\n - id: 4\n name: timestamp\n type: int64\n - id: 5\n name: mediaKey\n type: string", "fields": [ { "id": 1, "name": "preview", "type": "string", "optional": false, "description": "превью (для фото blurhash)" }, { "id": 2, "name": "objectId", "type": "string", "optional": false, "description": "обьект на cdn" }, { "id": 3, "name": "type", "type": "ProfileMediaType", "optional": false, "description": "тип медиа" }, { "id": 4, "name": "timestamp", "type": "int64", "optional": false, "description": "дата публикации" }, { "id": 5, "name": "mediaKey", "type": "string", "optional": false, "description": "ключ шифрования от медиа" } ] }, { "name": "NetworkDevice", "description": "", "yaml": "NetworkDevice:\n fields:\n - id: 1\n name: networkStatus\n type: NetworkStatus\n - id: 2\n name: deviceName\n type: string\n - id: 3\n name: deviceOs\n type: string\n - id: 4\n name: deviceId\n type: string\n - id: 5\n name: deviceSolution\n type: DeviceSolution", "fields": [ { "id": 1, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" }, { "id": 2, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceOs", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "deviceSolution", "type": "DeviceSolution", "optional": false, "description": "" } ] }, { "name": "PKNetworkStatus", "description": "", "yaml": "PKNetworkStatus:\n fields:\n - id: 1\n name: publicKey\n type: string\n - id: 2\n name: networkStatus\n type: NetworkStatus", "fields": [ { "id": 1, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "" } ] }, { "name": "SearchInfo", "description": "Информация при поиске пользователя (приходит в ответ на пакет PacketSearch)", "yaml": "SearchInfo:\n fields:\n - id: 1\n name: username\n type: string\n - id: 2\n name: title\n type: string\n - id: 3\n name: publicKey\n type: string\n - id: 4\n name: verified\n type: int32\n - id: 5\n name: networkStatus\n type: NetworkStatus\n - id: 6\n name: avatar?\n type: ProfileMedia", "fields": [ { "id": 1, "name": "username", "type": "string", "optional": false, "description": "имя для поиска" }, { "id": 2, "name": "title", "type": "string", "optional": false, "description": "отображаемое имя пользователя" }, { "id": 3, "name": "publicKey", "type": "string", "optional": false, "description": "публичный ключ" }, { "id": 4, "name": "verified", "type": "int32", "optional": false, "description": "верификация" }, { "id": 5, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "онлайн пользователь или нет" }, { "id": 6, "name": "avatar", "type": "ProfileMedia", "optional": true, "description": "аватар пользователя если есть" } ] }, { "name": "ProfileInfo", "description": "Информация которая используется только при входе в профиль пользователя", "yaml": "ProfileInfo:\n fields:\n - id: 1\n name: username\n type: string\n - id: 2\n name: title\n type: string\n - id: 3\n name: publicKey\n type: string\n - id: 4\n name: verified\n type: int32\n - id: 5\n name: networkStatus\n type: NetworkStatus\n - id: 6\n name: media?\n type: ProfileMedia[]", "fields": [ { "id": 1, "name": "username", "type": "string", "optional": false, "description": "имя для поиска" }, { "id": 2, "name": "title", "type": "string", "optional": false, "description": "отображаемое имя пользователя" }, { "id": 3, "name": "publicKey", "type": "string", "optional": false, "description": "публичный ключ" }, { "id": 4, "name": "verified", "type": "int32", "optional": false, "description": "верификация" }, { "id": 5, "name": "networkStatus", "type": "NetworkStatus", "optional": false, "description": "онлайн пользователь или нет" }, { "id": 6, "name": "media", "type": "ProfileMedia[]", "optional": true, "description": "все активное медиа (включая будущие истории)" } ] }, { "name": "RTCIceServer", "description": "", "yaml": "RTCIceServer:\n fields:\n - id: 1\n name: url\n type: string\n - id: 2\n name: username\n type: string\n - id: 3\n name: credential\n type: string\n - id: 4\n name: transport\n type: string", "fields": [ { "id": 1, "name": "url", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "credential", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "transport", "type": "string", "optional": false, "description": "" } ] } ], "packets": [ { "name": "Handshake", "id": 0, "description": "", "yaml": "Handshake:\n id: 0\n fields:\n - id: 1\n name: publicKey\n type: string\n - id: 2\n name: privateKey\n type: string\n - id: 3\n name: deviceId\n type: string\n - id: 4\n name: deviceName\n type: string\n - id: 5\n name: deviceOs\n type: string\n - id: 6\n name: handshakeStage?\n type: HandshakeStage", "fields": [ { "id": 1, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "deviceOs", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "handshakeStage", "type": "HandshakeStage", "optional": true, "description": "" } ] }, { "name": "UserInfo", "id": 1, "description": "", "yaml": "UserInfo:\n id: 1\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: username\n type: string\n - id: 3\n name: title\n type: string", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "username", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "title", "type": "string", "optional": false, "description": "" } ] }, { "name": "Result", "id": 2, "description": "", "yaml": "Result:\n id: 2\n fields:\n - id: 1\n name: resultCode\n type: ResultCode", "fields": [ { "id": 1, "name": "resultCode", "type": "ResultCode", "optional": false, "description": "" } ] }, { "name": "Search", "id": 3, "description": "", "yaml": "Search:\n id: 3\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: search\n type: string\n - id: 3\n name: searchInfo?\n type: SearchInfo[]", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "search", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "searchInfo", "type": "SearchInfo[]", "optional": true, "description": "" } ] }, { "name": "OnlineSubscribe", "id": 4, "description": "", "yaml": "OnlineSubscribe:\n id: 4\n fields:\n - id: 1\n name: privateKey\n type: string\n - id: 2\n name: publicKeys\n type: string[]", "fields": [ { "id": 1, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "publicKeys", "type": "string[]", "optional": false, "description": "" } ] }, { "name": "OnlineState", "id": 5, "description": "", "yaml": "OnlineState:\n id: 5\n fields:\n - id: 1\n name: pkNetworkStatuses\n type: PKNetworkStatus[]", "fields": [ { "id": 1, "name": "pkNetworkStatuses", "type": "PKNetworkStatus[]", "optional": false, "description": "" } ] }, { "name": "Message", "id": 6, "description": "", "yaml": "Message:\n id: 6\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 3\n name: privateKey\n type: string\n - id: 4\n name: content\n type: string\n - id: 5\n name: chachaKey\n type: string\n - id: 6\n name: timestamp\n type: int64\n - id: 7\n name: messageId\n type: string\n - id: 8\n name: attachments?\n type: Attachment[]\n - id: 9\n name: aesChachaKey\n type: string", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "privateKey", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "content", "type": "string", "optional": false, "description": "" }, { "id": 5, "name": "chachaKey", "type": "string", "optional": false, "description": "" }, { "id": 6, "name": "timestamp", "type": "int64", "optional": false, "description": "" }, { "id": 7, "name": "messageId", "type": "string", "optional": false, "description": "" }, { "id": 8, "name": "attachments", "type": "Attachment[]", "optional": true, "description": "" }, { "id": 9, "name": "aesChachaKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "Read", "id": 7, "description": "", "yaml": "Read:\n id: 7\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 4\n name: timestamp\n type: int64", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "timestamp", "type": "int64", "optional": false, "description": "" } ] }, { "name": "Delivery", "id": 8, "description": "", "yaml": "Delivery:\n id: 8\n fields:\n - id: 1\n name: messageId\n type: string\n - id: 2\n name: toPublicKey\n type: string", "fields": [ { "id": 1, "name": "messageId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "DeviceNew", "id": 9, "description": "", "yaml": "DeviceNew:\n id: 9\n fields:\n - id: 1\n name: ipAddress\n type: string\n - id: 2\n name: deviceId\n type: string\n - id: 3\n name: deviceName\n type: string\n - id: 4\n name: deviceOs\n type: string", "fields": [ { "id": 1, "name": "ipAddress", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "deviceName", "type": "string", "optional": false, "description": "" }, { "id": 4, "name": "deviceOs", "type": "string", "optional": false, "description": "" } ] }, { "name": "RequestUpdate", "id": 10, "description": "", "yaml": "RequestUpdate:\n id: 10\n fields:\n - id: 1\n name: server?\n type: string", "fields": [ { "id": 1, "name": "server", "type": "string", "optional": true, "description": "" } ] }, { "name": "Typeing", "id": 11, "description": "", "yaml": "Typeing:\n id: 11\n fields:\n - id: 1\n name: fromPublicKey\n type: string\n - id: 2\n name: toPublicKey\n type: string\n - id: 3\n name: privateKey\n type: string", "fields": [ { "id": 1, "name": "fromPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "toPublicKey", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "privateKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "RequestTransport", "id": 15, "description": "Запрос транспортного сервера", "yaml": "RequestTransport:\n id: 15\n fields:\n - id: 1\n name: server?\n type: string", "fields": [ { "id": 1, "name": "server", "type": "string", "optional": true, "description": "выбранный транспортный сервер" } ] }, { "name": "PushNotification", "id": 16, "description": "", "yaml": "PushNotification:\n id: 16\n fields:\n - id: 1\n name: notificationToken\n type: string\n - id: 2\n name: action\n type: NotificationAction\n - id: 3\n name: tokenType\n type: TokenType\n - id: 4\n name: deviceId\n type: string", "fields": [ { "id": 1, "name": "notificationToken", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "action", "type": "NotificationAction", "optional": false, "description": "" }, { "id": 3, "name": "tokenType", "type": "TokenType", "optional": false, "description": "" }, { "id": 4, "name": "deviceId", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupCreate", "id": 17, "description": "", "yaml": "GroupCreate:\n id: 17\n fields:\n - id: 1\n name: groupId?\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": true, "description": "" } ] }, { "name": "GroupInfo", "id": 18, "description": "", "yaml": "GroupInfo:\n id: 18\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: membersPKs?\n type: string[]", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "membersPKs", "type": "string[]", "optional": true, "description": "" } ] }, { "name": "GroupInviteInfo", "id": 19, "description": "", "yaml": "GroupInviteInfo:\n id: 19\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: membersCount?\n type: int32\n - id: 3\n name: status?\n type: GroupStatus", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "membersCount", "type": "int32", "optional": true, "description": "" }, { "id": 3, "name": "status", "type": "GroupStatus", "optional": true, "description": "" } ] }, { "name": "GroupJoin", "id": 20, "description": "", "yaml": "GroupJoin:\n id: 20\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: status?\n type: GroupStatus\n - id: 3\n name: groupString\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "status", "type": "GroupStatus", "optional": true, "description": "" }, { "id": 3, "name": "groupString", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupLeave", "id": 21, "description": "", "yaml": "GroupLeave:\n id: 21\n fields:\n - id: 1\n name: groupId\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" } ] }, { "name": "GroupBan", "id": 22, "description": "", "yaml": "GroupBan:\n id: 22\n fields:\n - id: 1\n name: groupId\n type: string\n - id: 2\n name: publicKey\n type: string", "fields": [ { "id": 1, "name": "groupId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "publicKey", "type": "string", "optional": false, "description": "" } ] }, { "name": "DeviceList", "id": 23, "description": "", "yaml": "DeviceList:\n id: 23\n fields:\n - id: 1\n name: devices\n type: NetworkDevice[]", "fields": [ { "id": 1, "name": "devices", "type": "NetworkDevice[]", "optional": false, "description": "" } ] }, { "name": "DeviceResolve", "id": 24, "description": "", "yaml": "DeviceResolve:\n id: 24\n fields:\n - id: 1\n name: deviceId\n type: string\n - id: 2\n name: solution\n type: DeviceSolution", "fields": [ { "id": 1, "name": "deviceId", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "solution", "type": "DeviceSolution", "optional": false, "description": "" } ] }, { "name": "Sync", "id": 25, "description": "", "yaml": "Sync:\n id: 25\n fields:\n - id: 1\n name: syncStatus\n type: SyncStatus\n - id: 2\n name: timestamp\n type: int64", "fields": [ { "id": 1, "name": "syncStatus", "type": "SyncStatus", "optional": false, "description": "" }, { "id": 2, "name": "timestamp", "type": "int64", "optional": false, "description": "" } ] }, { "name": "SignalPeer", "id": 26, "description": "", "yaml": "SignalPeer:\n id: 26\n fields:\n - id: 1\n name: src\n type: string\n - id: 2\n name: dst\n type: string\n - id: 3\n name: sharedPublic?\n type: string\n - id: 4\n name: signalType\n type: SignalType\n - id: 5\n name: callId?\n type: string\n - id: 6\n name: joinToken?\n type: string", "fields": [ { "id": 1, "name": "src", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "dst", "type": "string", "optional": false, "description": "" }, { "id": 3, "name": "sharedPublic", "type": "string", "optional": true, "description": "" }, { "id": 4, "name": "signalType", "type": "SignalType", "optional": false, "description": "" }, { "id": 5, "name": "callId", "type": "string", "optional": true, "description": "" }, { "id": 6, "name": "joinToken", "type": "string", "optional": true, "description": "" } ] }, { "name": "WebRTC", "id": 27, "description": "", "yaml": "WebRTC:\n id: 27\n fields:\n - id: 1\n name: sdpOrCandidate\n type: string\n - id: 2\n name: type\n type: WebRTCType", "fields": [ { "id": 1, "name": "sdpOrCandidate", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "type", "type": "WebRTCType", "optional": false, "description": "" } ] }, { "name": "IceServers", "id": 28, "description": "", "yaml": "IceServers:\n id: 28\n fields:\n - id: 1\n name: iceServers?\n type: RTCIceServer[]", "fields": [ { "id": 1, "name": "iceServers", "type": "RTCIceServer[]", "optional": true, "description": "" } ] }, { "name": "UploadCandidate", "id": 29, "description": "Запрос \"посадочного места\" у сервера при загрузке файла", "yaml": "UploadCandidate:\n id: 29\n fields:\n - id: 1\n name: size\n type: uint32\n - id: 2\n name: objectId?\n type: string\n - id: 3\n name: chunkLength?\n type: uint32\n - id: 4\n name: chunks?\n type: uint32\n - id: 5\n name: host?\n type: string\n - id: 6\n name: ttl?\n type: uint32", "fields": [ { "id": 1, "name": "size", "type": "uint32", "optional": false, "description": "размер загружаемого файла (декларируемый)" }, { "id": 2, "name": "objectId", "type": "string", "optional": true, "description": "выделенный сервером objectId" }, { "id": 3, "name": "chunkLength", "type": "uint32", "optional": true, "description": "размер чанка" }, { "id": 4, "name": "chunks", "type": "uint32", "optional": true, "description": "количество чанков" }, { "id": 5, "name": "host", "type": "string", "optional": true, "description": "хост, где сохранен файл" }, { "id": 6, "name": "ttl", "type": "uint32", "optional": true, "description": "ttl в секундах, после которого файл будет удален с CDN и с таблицы, по умолчанию 7 дней, не допускается использование слишком больших значений" } ] }, { "name": "DownloadCandidate", "id": 30, "description": "Запрос скачивания файла с сервера, нужно передать objectId, а дальнейшую информацию вернет сервер", "yaml": "DownloadCandidate:\n id: 30\n fields:\n - id: 1\n name: size?\n type: uint32\n - id: 2\n name: objectId\n type: string\n - id: 3\n name: chunkLength?\n type: uint32\n - id: 4\n name: chunks?\n type: uint32\n - id: 5\n name: host?\n type: string", "fields": [ { "id": 1, "name": "size", "type": "uint32", "optional": true, "description": "размер файла" }, { "id": 2, "name": "objectId", "type": "string", "optional": false, "description": "выделенный сервером objectId" }, { "id": 3, "name": "chunkLength", "type": "uint32", "optional": true, "description": "размер чанка" }, { "id": 4, "name": "chunks", "type": "uint32", "optional": true, "description": "количество чанков" }, { "id": 5, "name": "host", "type": "string", "optional": true, "description": "сервер с которого скачивать файл" } ] }, { "name": "SetAvatar", "id": 31, "description": "Установить аватар профиля", "yaml": "SetAvatar:\n id: 31\n fields:\n - id: 1\n name: objectId\n type: string\n - id: 2\n name: blurhash\n type: string\n - id: 3\n name: mediaKey\n type: string", "fields": [ { "id": 1, "name": "objectId", "type": "string", "optional": false, "description": "выделенный сервером objectId при отправке пакета UploadCandidate" }, { "id": 2, "name": "blurhash", "type": "string", "optional": false, "description": "превью аватара, строка blurhash" }, { "id": 3, "name": "mediaKey", "type": "string", "optional": false, "description": "ключ шифрования" } ] }, { "name": "RemoveAvatar", "id": 32, "description": "Удаляет аватар или фотографию из профиля", "yaml": "RemoveAvatar:\n id: 32\n fields:\n - id: 1\n name: objectId\n type: string", "fields": [ { "id": 1, "name": "objectId", "type": "string", "optional": false, "description": "objectId аватара, аватар или фотография профиля должна при этом стоять у профиля отправителя пакета" } ] }, { "name": "Profile", "id": 33, "description": "Запрос профиля", "yaml": "Profile:\n id: 33\n fields:\n - id: 1\n name: publicKey\n type: string\n - id: 2\n name: info?\n type: ProfileInfo", "fields": [ { "id": 1, "name": "publicKey", "type": "string", "optional": false, "description": "" }, { "id": 2, "name": "info", "type": "ProfileInfo", "optional": true, "description": "" } ] } ] } ] satisfies ProtoLayer[];