def.proto 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. syntax = "proto2";
  2. package proto;
  3. message FingerprintData {
  4. optional string publicKey = 1;
  5. optional string identifier = 2;
  6. }
  7. message CombinedFingerprint {
  8. optional uint32 version = 1;
  9. optional FingerprintData localFingerprint = 2;
  10. optional FingerprintData remoteFingerprint = 3;
  11. }
  12. message MessageKey {
  13. optional string remoteJid = 1;
  14. optional bool fromMe = 2;
  15. optional string id = 3;
  16. optional string participant = 4;
  17. }
  18. message SenderKeyDistributionMessage {
  19. optional string groupId = 1;
  20. optional bytes axolotlSenderKeyDistributionMessage = 2;
  21. }
  22. message ImageMessage {
  23. optional string url = 1;
  24. optional string mimetype = 2;
  25. optional string caption = 3;
  26. optional bytes fileSha256 = 4;
  27. optional uint64 fileLength = 5;
  28. optional uint32 height = 6;
  29. optional uint32 width = 7;
  30. optional bytes mediaKey = 8;
  31. optional bytes fileEncSha256 = 9;
  32. repeated InteractiveAnnotation interactiveAnnotations = 10;
  33. optional string directPath = 11;
  34. optional bytes jpegThumbnail = 16;
  35. optional ContextInfo contextInfo = 17;
  36. optional bytes firstScanSidecar = 18;
  37. optional uint32 firstScanLength = 19;
  38. }
  39. message ContactMessage {
  40. optional string displayName = 1;
  41. optional string vcard = 16;
  42. optional ContextInfo contextInfo = 17;
  43. }
  44. message LocationMessage {
  45. optional double degreesLatitude = 1;
  46. optional double degreesLongitude = 2;
  47. optional string name = 3;
  48. optional string address = 4;
  49. optional string url = 5;
  50. optional bytes jpegThumbnail = 16;
  51. optional ContextInfo contextInfo = 17;
  52. }
  53. message ExtendedTextMessage {
  54. optional string text = 1;
  55. optional string matchedText = 2;
  56. optional string canonicalUrl = 4;
  57. optional string description = 5;
  58. optional string title = 6;
  59. optional fixed32 textArgb = 7;
  60. optional fixed32 backgroundArgb = 8;
  61. enum FONTTYPE {
  62. SANS_SERIF = 0;
  63. SERIF = 1;
  64. NORICAN_REGULAR = 2;
  65. BRYNDAN_WRITE = 3;
  66. BEBASNEUE_REGULAR = 4;
  67. OSWALD_HEAVY = 5;
  68. }
  69. optional FONTTYPE font = 9;
  70. optional bytes jpegThumbnail = 16;
  71. optional ContextInfo contextInfo = 17;
  72. }
  73. message DocumentMessage {
  74. optional string url = 1;
  75. optional string mimetype = 2;
  76. optional string title = 3;
  77. optional bytes fileSha256 = 4;
  78. optional uint64 fileLength = 5;
  79. optional uint32 pageCount = 6;
  80. optional bytes mediaKey = 7;
  81. optional string fileName = 8;
  82. optional bytes fileEncSha256 = 9;
  83. optional string directPath = 10;
  84. optional bytes jpegThumbnail = 16;
  85. optional ContextInfo contextInfo = 17;
  86. }
  87. message AudioMessage {
  88. optional string url = 1;
  89. optional string mimetype = 2;
  90. optional bytes fileSha256 = 3;
  91. optional uint64 fileLength = 4;
  92. optional uint32 seconds = 5;
  93. optional bool ptt = 6;
  94. optional bytes mediaKey = 7;
  95. optional bytes fileEncSha256 = 8;
  96. optional string directPath = 9;
  97. optional ContextInfo contextInfo = 17;
  98. optional bytes streamingSidecar = 18;
  99. }
  100. message VideoMessage {
  101. optional string url = 1;
  102. optional string mimetype = 2;
  103. optional bytes fileSha256 = 3;
  104. optional uint64 fileLength = 4;
  105. optional uint32 seconds = 5;
  106. optional bytes mediaKey = 6;
  107. optional string caption = 7;
  108. optional bool gifPlayback = 8;
  109. optional uint32 height = 9;
  110. optional uint32 width = 10;
  111. optional bytes fileEncSha256 = 11;
  112. repeated InteractiveAnnotation interactiveAnnotations = 12;
  113. optional string directPath = 13;
  114. optional bytes jpegThumbnail = 16;
  115. optional ContextInfo contextInfo = 17;
  116. optional bytes streamingSidecar = 18;
  117. enum ATTRIBUTION {
  118. NONE = 0;
  119. GIPHY = 1;
  120. TENOR = 2;
  121. }
  122. optional ATTRIBUTION gifAttribution = 19;
  123. }
  124. message Call {
  125. optional bytes callKey = 1;
  126. }
  127. message Chat {
  128. optional string displayName = 1;
  129. optional string id = 2;
  130. }
  131. message ProtocolMessage {
  132. optional MessageKey key = 1;
  133. enum TYPE {
  134. REVOKE = 0;
  135. }
  136. optional TYPE type = 2;
  137. }
  138. message ContactsArrayMessage {
  139. optional string displayName = 1;
  140. repeated ContactMessage contacts = 2;
  141. optional ContextInfo contextInfo = 17;
  142. }
  143. message HSMCurrency {
  144. optional string currencyCode = 1;
  145. optional int64 amount1000 = 2;
  146. }
  147. message HSMDateTimeComponent {
  148. enum DAYOFWEEKTYPE {
  149. MONDAY = 1;
  150. TUESDAY = 2;
  151. WEDNESDAY = 3;
  152. THURSDAY = 4;
  153. FRIDAY = 5;
  154. SATURDAY = 6;
  155. SUNDAY = 7;
  156. }
  157. optional DAYOFWEEKTYPE dayOfWeek = 1;
  158. optional uint32 year = 2;
  159. optional uint32 month = 3;
  160. optional uint32 dayOfMonth = 4;
  161. optional uint32 hour = 5;
  162. optional uint32 minute = 6;
  163. enum CALENDARTYPE {
  164. GREGORIAN = 1;
  165. SOLAR_HIJRI = 2;
  166. }
  167. optional CALENDARTYPE calendar = 7;
  168. }
  169. message HSMDateTimeUnixEpoch {
  170. optional int64 timestamp = 1;
  171. }
  172. message HSMDateTime {
  173. oneof datetimeOneof {
  174. HSMDateTimeComponent component = 1;
  175. HSMDateTimeUnixEpoch unixEpoch = 2;
  176. }
  177. }
  178. message HSMLocalizableParameter {
  179. optional string default = 1;
  180. oneof paramOneof {
  181. HSMCurrency currency = 2;
  182. HSMDateTime dateTime = 3;
  183. }
  184. }
  185. message HighlyStructuredMessage {
  186. optional string namespace = 1;
  187. optional string elementName = 2;
  188. repeated string params = 3;
  189. optional string fallbackLg = 4;
  190. optional string fallbackLc = 5;
  191. repeated HSMLocalizableParameter localizableParams = 6;
  192. }
  193. message SendPaymentMessage {
  194. optional Message noteMessage = 2;
  195. }
  196. message RequestPaymentMessage {
  197. optional string currencyCodeIso4217 = 1;
  198. optional uint64 amount1000 = 2;
  199. optional string requestFrom = 3;
  200. optional Message noteMessage = 4;
  201. }
  202. message LiveLocationMessage {
  203. optional double degreesLatitude = 1;
  204. optional double degreesLongitude = 2;
  205. optional uint32 accuracyInMeters = 3;
  206. optional float speedInMps = 4;
  207. optional uint32 degreesClockwiseFromMagneticNorth = 5;
  208. optional string caption = 6;
  209. optional int64 sequenceNumber = 7;
  210. optional bytes jpegThumbnail = 16;
  211. optional ContextInfo contextInfo = 17;
  212. }
  213. message StickerMessage {
  214. optional string url = 1;
  215. optional bytes fileSha256 = 2;
  216. optional bytes fileEncSha256 = 3;
  217. optional bytes mediaKey = 4;
  218. optional string mimetype = 5;
  219. optional uint32 height = 6;
  220. optional uint32 width = 7;
  221. optional string directPath = 8;
  222. optional uint64 fileLength = 9;
  223. optional bytes pngThumbnail = 16;
  224. optional ContextInfo contextInfo = 17;
  225. }
  226. message Message {
  227. optional string conversation = 1;
  228. optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2;
  229. optional ImageMessage imageMessage = 3;
  230. optional ContactMessage contactMessage = 4;
  231. optional LocationMessage locationMessage = 5;
  232. optional ExtendedTextMessage extendedTextMessage = 6;
  233. optional DocumentMessage documentMessage = 7;
  234. optional AudioMessage audioMessage = 8;
  235. optional VideoMessage videoMessage = 9;
  236. optional Call call = 10;
  237. optional Chat chat = 11;
  238. optional ProtocolMessage protocolMessage = 12;
  239. optional ContactsArrayMessage contactsArrayMessage = 13;
  240. optional HighlyStructuredMessage highlyStructuredMessage = 14;
  241. optional SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15;
  242. optional SendPaymentMessage sendPaymentMessage = 16;
  243. optional RequestPaymentMessage requestPaymentMessage = 17;
  244. optional LiveLocationMessage liveLocationMessage = 18;
  245. optional StickerMessage stickerMessage = 20;
  246. }
  247. message ContextInfo {
  248. optional string stanzaId = 1;
  249. optional string participant = 2;
  250. repeated Message quotedMessage = 3;
  251. optional string remoteJid = 4;
  252. repeated string mentionedJid = 15;
  253. optional string conversionSource = 18;
  254. optional bytes conversionData = 19;
  255. optional uint32 conversionDelaySeconds = 20;
  256. optional bool isForwarded = 22;
  257. reserved 16, 17;
  258. }
  259. message InteractiveAnnotation {
  260. repeated Point polygonVertices = 1;
  261. oneof action {
  262. Location location = 2;
  263. }
  264. }
  265. message Point {
  266. optional double x = 3;
  267. optional double y = 4;
  268. }
  269. message Location {
  270. optional double degreesLatitude = 1;
  271. optional double degreesLongitude = 2;
  272. optional string name = 3;
  273. }
  274. message WebMessageInfo {
  275. required MessageKey key = 1;
  276. optional Message message = 2;
  277. optional uint64 messageTimestamp = 3;
  278. enum STATUS {
  279. ERROR = 0;
  280. PENDING = 1;
  281. SERVER_ACK = 2;
  282. DELIVERY_ACK = 3;
  283. READ = 4;
  284. PLAYED = 5;
  285. }
  286. optional STATUS status = 4 [default=PENDING];
  287. optional string participant = 5;
  288. optional bool ignore = 16;
  289. optional bool starred = 17;
  290. optional bool broadcast = 18;
  291. optional string pushName = 19;
  292. optional bytes mediaCiphertextSha256 = 20;
  293. optional bool multicast = 21;
  294. optional bool urlText = 22;
  295. optional bool urlNumber = 23;
  296. enum STUBTYPE {
  297. UNKNOWN = 0;
  298. REVOKE = 1;
  299. CIPHERTEXT = 2;
  300. FUTUREPROOF = 3;
  301. NON_VERIFIED_TRANSITION = 4;
  302. UNVERIFIED_TRANSITION = 5;
  303. VERIFIED_TRANSITION = 6;
  304. VERIFIED_LOW_UNKNOWN = 7;
  305. VERIFIED_HIGH = 8;
  306. VERIFIED_INITIAL_UNKNOWN = 9;
  307. VERIFIED_INITIAL_LOW = 10;
  308. VERIFIED_INITIAL_HIGH = 11;
  309. VERIFIED_TRANSITION_ANY_TO_NONE = 12;
  310. VERIFIED_TRANSITION_ANY_TO_HIGH = 13;
  311. VERIFIED_TRANSITION_HIGH_TO_LOW = 14;
  312. VERIFIED_TRANSITION_HIGH_TO_UNKNOWN = 15;
  313. VERIFIED_TRANSITION_UNKNOWN_TO_LOW = 16;
  314. VERIFIED_TRANSITION_LOW_TO_UNKNOWN = 17;
  315. VERIFIED_TRANSITION_NONE_TO_LOW = 18;
  316. VERIFIED_TRANSITION_NONE_TO_UNKNOWN = 19;
  317. GROUP_CREATE = 20;
  318. GROUP_CHANGE_SUBJECT = 21;
  319. GROUP_CHANGE_ICON = 22;
  320. GROUP_CHANGE_INVITE_LINK = 23;
  321. GROUP_CHANGE_DESCRIPTION = 24;
  322. GROUP_CHANGE_RESTRICT = 25;
  323. GROUP_CHANGE_ANNOUNCE = 26;
  324. GROUP_PARTICIPANT_ADD = 27;
  325. GROUP_PARTICIPANT_REMOVE = 28;
  326. GROUP_PARTICIPANT_PROMOTE = 29;
  327. GROUP_PARTICIPANT_DEMOTE = 30;
  328. GROUP_PARTICIPANT_INVITE = 31;
  329. GROUP_PARTICIPANT_LEAVE = 32;
  330. GROUP_PARTICIPANT_CHANGE_NUMBER = 33;
  331. BROADCAST_CREATE = 34;
  332. BROADCAST_ADD = 35;
  333. BROADCAST_REMOVE = 36;
  334. GENERIC_NOTIFICATION = 37;
  335. E2E_IDENTITY_CHANGED = 38;
  336. E2E_ENCRYPTED = 39;
  337. CALL_MISSED_VOICE = 40;
  338. CALL_MISSED_VIDEO = 41;
  339. INDIVIDUAL_CHANGE_NUMBER = 42;
  340. GROUP_DELETE = 43;
  341. }
  342. optional STUBTYPE messageStubType = 24;
  343. optional bool clearMedia = 25;
  344. repeated string messageStubParameters = 26;
  345. optional uint32 duration = 27;
  346. repeated string labels = 28;
  347. }
  348. message WebNotificationsInfo {
  349. optional uint64 timestamp = 2;
  350. optional uint32 unreadChats = 3;
  351. optional uint32 notifyMessageCount = 4;
  352. repeated Message notifyMessages = 5;
  353. }
  354. message NotificationMessageInfo {
  355. optional MessageKey key = 1;
  356. optional Message message = 2;
  357. optional uint64 messageTimestamp = 3;
  358. optional string participant = 4;
  359. }
  360. message TabletNotificationsInfo {
  361. optional uint64 timestamp = 2;
  362. optional uint32 unreadChats = 3;
  363. optional uint32 notifyMessageCount = 4;
  364. repeated Message notifyMessage = 5;
  365. }
  366. message WebFeatures {
  367. enum FLAG {
  368. NOT_IMPLEMENTED = 0;
  369. IMPLEMENTED = 1;
  370. OPTIONAL = 2;
  371. }
  372. optional FLAG labelsDisplay = 1;
  373. optional FLAG voipIndividualOutgoing = 2;
  374. optional FLAG groupsV3 = 3;
  375. optional FLAG groupsV3Create = 4;
  376. optional FLAG changeNumberV2 = 5;
  377. optional FLAG queryStatusV3Thumbnail = 6;
  378. optional FLAG liveLocations = 7;
  379. optional FLAG queryVname = 8;
  380. optional FLAG voipIndividualIncoming = 9;
  381. optional FLAG quickRepliesQuery = 10;
  382. }