async-matrix 0.1.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +131 -0
  3. data/data/discord-api-spec/openapi.json +40404 -0
  4. data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
  5. data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
  6. data/data/matrix-spec/api/client-server/admin.yaml +512 -0
  7. data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
  8. data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
  9. data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
  10. data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
  11. data/data/matrix-spec/api/client-server/banning.yaml +177 -0
  12. data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
  13. data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
  14. data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
  15. data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
  16. data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
  17. data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
  18. data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
  19. data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
  20. data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
  21. data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
  22. data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
  23. data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
  24. data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
  25. data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
  26. data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
  27. data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
  28. data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
  29. data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
  30. data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
  31. data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
  32. data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
  33. data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
  34. data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
  35. data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
  36. data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
  37. data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
  38. data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
  39. data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
  40. data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
  41. data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
  42. data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
  43. data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
  44. data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
  45. data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
  46. data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
  47. data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
  48. data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
  49. data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
  50. data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
  51. data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
  52. data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
  53. data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
  54. data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
  55. data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
  56. data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
  57. data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
  58. data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
  59. data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
  60. data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
  61. data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
  62. data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
  63. data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
  64. data/data/matrix-spec/api/client-server/directory.yaml +318 -0
  65. data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
  66. data/data/matrix-spec/api/client-server/filter.yaml +224 -0
  67. data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
  68. data/data/matrix-spec/api/client-server/joining.yaml +238 -0
  69. data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
  70. data/data/matrix-spec/api/client-server/keys.yaml +482 -0
  71. data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
  72. data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
  73. data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
  74. data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
  75. data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
  76. data/data/matrix-spec/api/client-server/login.yaml +321 -0
  77. data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
  78. data/data/matrix-spec/api/client-server/logout.yaml +86 -0
  79. data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
  80. data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
  81. data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
  82. data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
  83. data/data/matrix-spec/api/client-server/openid.yaml +98 -0
  84. data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
  85. data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
  86. data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
  87. data/data/matrix-spec/api/client-server/presence.yaml +169 -0
  88. data/data/matrix-spec/api/client-server/profile.yaml +366 -0
  89. data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
  90. data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
  91. data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
  92. data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
  93. data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
  94. data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
  95. data/data/matrix-spec/api/client-server/registration.yaml +488 -0
  96. data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
  97. data/data/matrix-spec/api/client-server/relations.yaml +382 -0
  98. data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
  99. data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
  100. data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
  101. data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
  102. data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
  103. data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
  104. data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
  105. data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
  106. data/data/matrix-spec/api/client-server/search.yaml +385 -0
  107. data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
  108. data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
  109. data/data/matrix-spec/api/client-server/support.yaml +142 -0
  110. data/data/matrix-spec/api/client-server/sync.yaml +692 -0
  111. data/data/matrix-spec/api/client-server/tags.yaml +183 -0
  112. data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
  113. data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
  114. data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
  115. data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
  116. data/data/matrix-spec/api/client-server/typing.yaml +103 -0
  117. data/data/matrix-spec/api/client-server/users.yaml +136 -0
  118. data/data/matrix-spec/api/client-server/versions.yaml +108 -0
  119. data/data/matrix-spec/api/client-server/voip.yaml +93 -0
  120. data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
  121. data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
  122. data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
  123. data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
  124. data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
  125. data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
  126. data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
  127. data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
  128. data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
  129. data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
  130. data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
  131. data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
  132. data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
  133. data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
  134. data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
  135. data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
  136. data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
  137. data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
  138. data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
  139. data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
  140. data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
  141. data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
  142. data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
  143. data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
  144. data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
  145. data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
  146. data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
  147. data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
  148. data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
  149. data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
  150. data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
  151. data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
  152. data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
  153. data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
  154. data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
  155. data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
  156. data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
  157. data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
  158. data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
  159. data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
  160. data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
  161. data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
  162. data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
  163. data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
  164. data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
  165. data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
  166. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
  167. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
  168. data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
  169. data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
  170. data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
  171. data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
  172. data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
  173. data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
  174. data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
  175. data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
  176. data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
  177. data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
  178. data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
  179. data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
  180. data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
  181. data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
  182. data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
  183. data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
  184. data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
  185. data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
  186. data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
  187. data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
  188. data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
  189. data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
  190. data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
  191. data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
  192. data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
  193. data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
  194. data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
  195. data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
  196. data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
  197. data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
  198. data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
  199. data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
  200. data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
  201. data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
  202. data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
  203. data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
  204. data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
  205. data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
  206. data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
  207. data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
  208. data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
  209. data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
  210. data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
  211. data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
  212. data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
  213. data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
  214. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
  215. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
  216. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
  217. data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
  218. data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
  219. data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
  220. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
  221. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
  222. data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
  223. data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
  224. data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
  225. data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
  226. data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
  227. data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
  228. data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
  229. data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
  230. data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
  231. data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
  232. data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
  233. data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
  234. data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
  235. data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
  236. data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
  237. data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
  238. data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
  239. data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
  240. data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
  241. data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
  242. data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
  243. data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
  244. data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
  245. data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
  246. data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
  247. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
  248. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
  249. data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
  250. data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
  251. data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
  252. data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
  253. data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
  254. data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
  255. data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
  256. data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
  257. data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
  258. data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
  259. data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
  260. data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
  261. data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
  262. data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
  263. data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
  264. data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
  265. data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
  266. data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
  267. data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
  268. data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
  269. data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
  270. data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
  271. data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
  272. data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
  273. data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
  274. data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
  275. data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
  276. data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
  277. data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
  278. data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
  279. data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
  280. data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
  281. data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
  282. data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
  283. data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
  284. data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
  285. data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
  286. data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
  287. data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
  288. data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
  289. data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
  290. data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
  291. data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
  292. data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
  293. data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
  294. data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
  295. data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
  296. data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
  297. data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
  298. data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
  299. data/lib/async/discord/api/path_tree.rb +130 -0
  300. data/lib/async/discord/api.rb +156 -0
  301. data/lib/async/discord/client.rb +286 -0
  302. data/lib/async/discord/error.rb +88 -0
  303. data/lib/async/discord/gateway.rb +362 -0
  304. data/lib/async/discord.rb +16 -0
  305. data/lib/async/matrix/api/chain.rb +584 -0
  306. data/lib/async/matrix/api/concat.rb +105 -0
  307. data/lib/async/matrix/api/path_tree.rb +208 -0
  308. data/lib/async/matrix/api.rb +204 -0
  309. data/lib/async/matrix/application_service/bot.rb +235 -0
  310. data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
  311. data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
  312. data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
  313. data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
  314. data/lib/async/matrix/application_service/config/schema/config.json +61 -0
  315. data/lib/async/matrix/application_service/config/schema/database.json +38 -0
  316. data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
  317. data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
  318. data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
  319. data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
  320. data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
  321. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
  322. data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
  323. data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
  324. data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
  325. data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
  326. data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
  327. data/lib/async/matrix/application_service/config/vivify.rb +113 -0
  328. data/lib/async/matrix/application_service/config.rb +214 -123
  329. data/lib/async/matrix/application_service/dispatcher.rb +115 -113
  330. data/lib/async/matrix/application_service/error_response.rb +26 -26
  331. data/lib/async/matrix/application_service/event.rb +206 -1
  332. data/lib/async/matrix/application_service/server.rb +286 -215
  333. data/lib/async/matrix/application_service/transaction.rb +52 -52
  334. data/lib/async/matrix/application_service/transaction_store.rb +62 -62
  335. data/lib/async/matrix/bridge/discord/db/connection.rb +143 -0
  336. data/lib/async/matrix/bridge/discord/db/file.rb +120 -0
  337. data/lib/async/matrix/bridge/discord/db/guild.rb +122 -0
  338. data/lib/async/matrix/bridge/discord/db/message.rb +162 -0
  339. data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +14 -0
  340. data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +14 -0
  341. data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +23 -0
  342. data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +19 -0
  343. data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +20 -0
  344. data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +19 -0
  345. data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +18 -0
  346. data/lib/async/matrix/bridge/discord/db/portal.rb +152 -0
  347. data/lib/async/matrix/bridge/discord/db/puppet.rb +130 -0
  348. data/lib/async/matrix/bridge/discord/db/reaction.rb +167 -0
  349. data/lib/async/matrix/bridge/discord/db/user.rb +114 -0
  350. data/lib/async/matrix/bridge/discord/db.rb +140 -0
  351. data/lib/async/matrix/client.rb +919 -179
  352. data/lib/async/matrix/connection.rb +8 -8
  353. data/lib/async/matrix/double_puppet_client.rb +84 -0
  354. data/lib/async/matrix/endpoint.rb +45 -45
  355. data/lib/async/matrix/error.rb +49 -43
  356. data/lib/async/matrix/media_client.rb +173 -0
  357. data/lib/async/matrix/notifier.rb +92 -92
  358. data/lib/async/matrix/schema/registry.rb +355 -0
  359. data/lib/async/matrix/schema/validation_error.rb +226 -0
  360. data/lib/async/matrix/schema.rb +174 -0
  361. data/lib/async/matrix/server.rb +8 -7
  362. data/lib/async/matrix/stream.rb +7 -7
  363. data/lib/async/matrix/version.rb +1 -1
  364. data/lib/async/matrix.rb +4 -2
  365. metadata +419 -1
@@ -0,0 +1,692 @@
1
+ # Copyright 2016, 2021 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server sync API
17
+ version: 1.0.0
18
+ paths:
19
+ /sync:
20
+ get:
21
+ summary: Synchronise the client's state and receive new messages.
22
+ description: |-
23
+ Synchronise the client's state with the latest state on the server.
24
+ Clients use this API when they first log in to get an initial snapshot
25
+ of the state on the server, and then continue to call this API to get
26
+ incremental deltas to the state, and to receive new messages.
27
+
28
+ *Note*: This endpoint supports lazy-loading. See [Filtering](/client-server-api/#filtering)
29
+ for more information. Lazy-loading members is only supported on the `state` part of a
30
+ [`RoomFilter`](#post_matrixclientv3useruseridfilter_request_roomfilter)
31
+ for this endpoint. When lazy-loading is enabled, servers MUST include the
32
+ syncing user's own membership event when they join a room, or when the
33
+ full state of rooms is requested, to aid discovering the user's avatar &
34
+ displayname.
35
+
36
+ Further, like other members, the user's own membership event is eligible
37
+ for being considered redundant by the server. When a sync is `limited`,
38
+ the server MUST return membership events for events in the gap
39
+ (between `since` and the start of the returned timeline), regardless
40
+ as to whether or not they are redundant. This ensures that joins/leaves
41
+ and profile changes which occur during the gap are not lost.
42
+
43
+ Note that the default behaviour of `state` is to include all membership
44
+ events, alongside other state, when lazy-loading is not enabled.
45
+ operationId: sync
46
+ security:
47
+ - accessTokenQuery: []
48
+ - accessTokenBearer: []
49
+ parameters:
50
+ - in: query
51
+ name: filter
52
+ description: |-
53
+ The ID of a filter created using the filter API or a filter JSON
54
+ object encoded as a string. The server will detect whether it is
55
+ an ID or a JSON object by whether the first character is a `"{"`
56
+ open brace. Passing the JSON inline is best suited to one off
57
+ requests. Creating a filter using the filter API is recommended for
58
+ clients that reuse the same filter multiple times, for example in
59
+ long poll requests.
60
+
61
+ See [Filtering](/client-server-api/#filtering) for more information.
62
+ example: 66696p746572
63
+ schema:
64
+ type: string
65
+ - in: query
66
+ name: since
67
+ description: |-
68
+ A point in time to continue a sync from. This should be the
69
+ `next_batch` token returned by an earlier call to this endpoint.
70
+ example: s72594_4483_1934
71
+ schema:
72
+ type: string
73
+ - in: query
74
+ name: full_state
75
+ description: |-
76
+ Controls whether to include the full state for all rooms the user
77
+ is a member of.
78
+
79
+ If this is set to `true`, then all state events will be returned,
80
+ even if `since` is non-empty. The timeline will still be limited
81
+ by the `since` parameter. In this case, the `timeout` parameter
82
+ will be ignored and the query will return immediately, possibly with
83
+ an empty timeline.
84
+
85
+ If `false`, and `since` is non-empty, only state which has
86
+ changed since the point indicated by `since` will be returned.
87
+
88
+ By default, this is `false`.
89
+ example: false
90
+ schema:
91
+ type: boolean
92
+ - in: query
93
+ name: set_presence
94
+ description: |-
95
+ Controls whether the client is automatically marked as online by
96
+ polling this API. If this parameter is omitted then the client is
97
+ automatically marked as online when it uses this API. Otherwise if
98
+ the parameter is set to "offline" then the client is not marked as
99
+ being online when it uses this API. When set to "unavailable", the
100
+ client is marked as being idle.
101
+ example: offline
102
+ schema:
103
+ type: string
104
+ enum:
105
+ - offline
106
+ - online
107
+ - unavailable
108
+ - in: query
109
+ name: timeout
110
+ description: |-
111
+ The maximum time to wait, in milliseconds, before returning this
112
+ request. If no events (or other data) become available before this
113
+ time elapses, the server will return a response with empty fields.
114
+
115
+ By default, this is `0`, so the server will return immediately
116
+ even if the response is empty.
117
+ example: 30000
118
+ schema:
119
+ type: integer
120
+ - in: query
121
+ name: use_state_after
122
+ x-addedInMatrixVersion: "1.16"
123
+ description: |-
124
+ Controls whether to receive state changes between the previous sync
125
+ and the **start** of the timeline, or between the previous sync and
126
+ the **end** of the timeline.
127
+
128
+ If this is set to `true`, servers MUST respond with the state
129
+ between the previous sync and the **end** of the timeline in
130
+ `state_after` and MUST omit `state`.
131
+
132
+ If `false`, servers MUST respond with the state between the previous
133
+ sync and the **start** of the timeline in `state` and MUST omit
134
+ `state_after`.
135
+
136
+ Servers MAY implement this parameter ahead of declaring support for
137
+ the version of the spec in which it was introduced. Consequently,
138
+ clients MAY set this parameter to `true` regardless of the
139
+ [`/versions`](/client-server-api/#get_matrixclientversions) response.
140
+ If they do, they can infer whether the server actually supports this
141
+ parameter from the presence of `state_after` in the response. If
142
+ `state_after` is missing, clients MUST behave as if they had not
143
+ specified the parameter and update their local state with events
144
+ in `state` and `timeline`.
145
+
146
+ By default, this is `false`.
147
+ example: false
148
+ schema:
149
+ type: boolean
150
+ responses:
151
+ "200":
152
+ description: The initial snapshot or delta for the client to use to update their
153
+ state.
154
+ content:
155
+ application/json:
156
+ schema:
157
+ type: object
158
+ properties:
159
+ next_batch:
160
+ type: string
161
+ description: |-
162
+ The batch token to supply in the `since` param of the next
163
+ `/sync` request.
164
+ rooms:
165
+ title: Rooms
166
+ type: object
167
+ description: Updates to rooms.
168
+ properties:
169
+ join:
170
+ title: Joined Rooms
171
+ type: object
172
+ description: |-
173
+ The rooms that the user has joined, mapped as room ID to
174
+ room information.
175
+ patternProperties:
176
+ "^!":
177
+ x-pattern-format: mx-room-id
178
+ title: Joined Room
179
+ type: object
180
+ properties:
181
+ summary:
182
+ title: RoomSummary
183
+ type: object
184
+ description: |-
185
+ Information about the room which clients may need to
186
+ correctly render it to users.
187
+ properties:
188
+ m.heroes:
189
+ type: array
190
+ description: |-
191
+ The users which can be used to generate a room name
192
+ if the room does not have one. Required if the room's
193
+ `m.room.name` or `m.room.canonical_alias` state events
194
+ are unset or empty.
195
+
196
+ This should be the first 5 members of the room, ordered
197
+ by stream ordering, which are joined or invited. The
198
+ list must never include the client's own user ID. When
199
+ no joined or invited members are available, this should
200
+ consist of the banned and left users. More than 5 members
201
+ may be provided, however less than 5 should only be provided
202
+ when there are less than 5 members to represent.
203
+
204
+ When lazy-loading room members is enabled, the membership
205
+ events for the heroes MUST be included in the `state`,
206
+ unless they are redundant. When the list of users changes,
207
+ the server notifies the client by sending a fresh list of
208
+ heroes. If there are no changes since the last sync, this
209
+ field may be omitted.
210
+ items:
211
+ type: string
212
+ format: mx-user-id
213
+ pattern: "^@"
214
+ m.joined_member_count:
215
+ type: integer
216
+ description: |-
217
+ The number of users with `membership` of `join`,
218
+ including the client's own user ID. If this field has
219
+ not changed since the last sync, it may be omitted.
220
+ Required otherwise.
221
+ m.invited_member_count:
222
+ type: integer
223
+ description: |-
224
+ The number of users with `membership` of `invite`.
225
+ If this field has not changed since the last sync, it
226
+ may be omitted. Required otherwise.
227
+ state:
228
+ title: State
229
+ type: object
230
+ description: |-
231
+ Updates to the state, between the time indicated by
232
+ the `since` parameter, and the **start** of the
233
+ `timeline` (or all state up to the **start** of the
234
+ `timeline`, if `since` is not given, or
235
+ `full_state` is true).
236
+
237
+ {{% boxes/note %}}
238
+ State updates for `m.room.member` events will
239
+ be incomplete if `lazy_load_members` is enabled in
240
+ the `/sync` filter, and only return the member events
241
+ required to display the senders of the timeline events
242
+ in this response.
243
+ {{% /boxes/note %}}
244
+
245
+ MUST be omitted if `use_state_after` was set to `true`
246
+ in the request.
247
+ allOf:
248
+ - $ref: definitions/state_event_batch.yaml
249
+ state_after:
250
+ title: State
251
+ type: object
252
+ x-addedInMatrixVersion: "1.16"
253
+ description: |-
254
+ Updates to the state, between the time indicated by
255
+ the `since` parameter, and the **end** of the
256
+ `timeline` (or all state up to the **end** of the
257
+ `timeline`, if `since` is not given, or
258
+ `full_state` is true).
259
+
260
+ {{% boxes/note %}}
261
+ State updates for `m.room.member` events will
262
+ be incomplete if `lazy_load_members` is enabled in
263
+ the `/sync` filter, and only return the member events
264
+ required to display the senders of the timeline events
265
+ in this response.
266
+ {{% /boxes/note %}}
267
+
268
+ If this field is set, even if it is empty, clients MUST
269
+ only update their local state with events in this list,
270
+ and MUST NOT update their local state with events in
271
+ `timeline`. If this field is not set, clients MUST update
272
+ their local state with events in `state` and `timeline`.
273
+
274
+ **Required** if `use_state_after` was set to `true` in the
275
+ request, even if it is empty.
276
+ allOf:
277
+ - $ref: definitions/state_event_batch.yaml
278
+ timeline:
279
+ title: Timeline
280
+ type: object
281
+ description: |-
282
+ The timeline of messages and state changes in the
283
+ room.
284
+ allOf:
285
+ - $ref: definitions/timeline_batch.yaml
286
+ ephemeral:
287
+ title: Ephemeral
288
+ type: object
289
+ description: |-
290
+ The new ephemeral events in the room (events that
291
+ aren't recorded in the timeline or state of the
292
+ room). In this version of the spec, these are
293
+ [typing notification](/client-server-api/#typing-notifications)
294
+ and [read receipt](/client-server-api/#receipts) events.
295
+ allOf:
296
+ - $ref: definitions/event_batch.yaml
297
+ account_data:
298
+ title: Account Data
299
+ type: object
300
+ description: |-
301
+ The private data that this user has attached to
302
+ this room.
303
+ allOf:
304
+ - $ref: definitions/event_batch.yaml
305
+ unread_notifications:
306
+ title: Unread Notification Counts
307
+ type: object
308
+ description: |-
309
+ Counts of unread notifications for this room. See the
310
+ [Receiving notifications](/client-server-api/#receiving-notifications) section
311
+ for more information on how these are calculated.
312
+
313
+ If `unread_thread_notifications` was specified as `true` on the `RoomEventFilter`,
314
+ these counts will only be for the main timeline rather than all events in the room.
315
+ See the [threading module](/client-server-api/#threading) for more information.
316
+ x-changedInMatrixVersion:
317
+ "1.4": |
318
+ Updated to reflect behaviour of having `unread_thread_notifications` as `true` in
319
+ the `RoomEventFilter` for `/sync`.
320
+ properties:
321
+ highlight_count:
322
+ title: Highlighted notification count
323
+ type: integer
324
+ description: The number of unread notifications for this room with the highlight
325
+ flag set.
326
+ notification_count:
327
+ title: Total notification count
328
+ type: integer
329
+ description: The total number of unread notifications for this room.
330
+ unread_thread_notifications:
331
+ title: Unread Thread Notification Counts
332
+ type: object
333
+ description: |-
334
+ If `unread_thread_notifications` was specified as `true` on the `RoomEventFilter`,
335
+ the notification counts for each [thread](/client-server-api/#threading) in this room.
336
+ The object is keyed by thread root ID, with values matching `unread_notifications`.
337
+
338
+ If a thread does not have any notifications it can be omitted from this object. If
339
+ no threads have notification counts, this whole object can be omitted.
340
+ x-addedInMatrixVersion: "1.4"
341
+ patternProperties:
342
+ "^\\$":
343
+ x-pattern-format: mx-event-id
344
+ title: ThreadNotificationCounts
345
+ type: object
346
+ properties:
347
+ highlight_count:
348
+ title: ThreadedHighlightNotificationCount
349
+ type: integer
350
+ description: The number of unread notifications for this *thread* with the
351
+ highlight flag set.
352
+ notification_count:
353
+ title: ThreadedTotalNotificationCount
354
+ type: integer
355
+ description: The total number of unread notifications for this *thread*.
356
+ invite:
357
+ title: Invited Rooms
358
+ type: object
359
+ description: |-
360
+ The rooms that the user has been invited to, mapped as room ID to
361
+ room information.
362
+ patternProperties:
363
+ "^!":
364
+ x-pattern-format: mx-room-id
365
+ title: Invited Room
366
+ type: object
367
+ properties:
368
+ invite_state:
369
+ title: InviteState
370
+ type: object
371
+ description: |-
372
+ The [stripped state](/client-server-api/#stripped-state) of a room that the user has
373
+ been invited to.
374
+ properties:
375
+ events:
376
+ description: |-
377
+ The [stripped state events](/client-server-api/#stripped-state) that form the
378
+ invite state.
379
+ items:
380
+ $ref: ../../event-schemas/schema/core-event-schema/stripped_state.yaml
381
+ type: array
382
+ knock:
383
+ title: Knocked rooms
384
+ type: object
385
+ description: The rooms that the user has knocked upon, mapped as room ID to room
386
+ information.
387
+ patternProperties:
388
+ "^!":
389
+ x-pattern-format: mx-room-id
390
+ title: Knocked Room
391
+ type: object
392
+ properties:
393
+ knock_state:
394
+ title: KnockState
395
+ type: object
396
+ description: |-
397
+ The [stripped state](/client-server-api/#stripped-state) of a room that the user has
398
+ knocked upon.
399
+ properties:
400
+ events:
401
+ description: |-
402
+ The [stripped state events](/client-server-api/#stripped-state) that form the
403
+ knock state.
404
+ items:
405
+ $ref: ../../event-schemas/schema/core-event-schema/stripped_state.yaml
406
+ type: array
407
+ leave:
408
+ title: Left rooms
409
+ type: object
410
+ description: |-
411
+ The rooms that the user has left or been banned from, mapped as room ID to
412
+ room information.
413
+ patternProperties:
414
+ "^!":
415
+ x-pattern-format: mx-room-id
416
+ title: Left Room
417
+ type: object
418
+ properties:
419
+ state:
420
+ title: State
421
+ type: object
422
+ description: |-
423
+ The state updates for the room up to the **start** of the timeline.
424
+
425
+ MUST be omitted if `use_state_after` was set to `true` in the
426
+ request.
427
+ allOf:
428
+ - $ref: definitions/state_event_batch.yaml
429
+ state_after:
430
+ title: State
431
+ type: object
432
+ x-addedInMatrixVersion: "1.16"
433
+ description: |-
434
+ The state updates for the room up to the **end** of the timeline.
435
+
436
+ If this field is set, even if it is empty, clients MUST only
437
+ update their local state with events in this list, and MUST NOT
438
+ update their local state with events in `timeline`. If this field
439
+ is not set, clients MUST update their local state with events in
440
+ `state` and `timeline`.
441
+
442
+ **Required** if `use_state_after` was set to `true` in the
443
+ request, even if it is empty.
444
+ allOf:
445
+ - $ref: definitions/state_event_batch.yaml
446
+ timeline:
447
+ title: Timeline
448
+ type: object
449
+ description: |-
450
+ The timeline of messages and state changes in the
451
+ room up to the point when the user left.
452
+ allOf:
453
+ - $ref: definitions/timeline_batch.yaml
454
+ account_data:
455
+ title: Account Data
456
+ type: object
457
+ description: |-
458
+ The private data that this user has attached to
459
+ this room.
460
+ allOf:
461
+ - $ref: definitions/event_batch.yaml
462
+ presence:
463
+ title: Presence
464
+ type: object
465
+ description: The updates to the presence status of other users.
466
+ allOf:
467
+ - $ref: definitions/event_batch.yaml
468
+ account_data:
469
+ title: Account Data
470
+ type: object
471
+ description: The global private data created by this user.
472
+ allOf:
473
+ - $ref: definitions/event_batch.yaml
474
+ to_device:
475
+ title: ToDevice
476
+ type: object
477
+ description: |-
478
+ Information on the send-to-device messages for the client
479
+ device, as defined in [Send-to-Device messaging](/client-server-api/#extensions-to-sync).
480
+ device_lists:
481
+ title: DeviceLists
482
+ type: object
483
+ description: |-
484
+ Information on end-to-end device updates, as specified in
485
+ [End-to-end encryption](/client-server-api/#e2e-extensions-to-sync).
486
+ device_one_time_keys_count:
487
+ title: One-time keys count
488
+ type: object
489
+ additionalProperties:
490
+ type: integer
491
+ description: |-
492
+ Information on end-to-end encryption keys, as specified
493
+ in [End-to-end encryption](/client-server-api/#e2e-extensions-to-sync).
494
+ required:
495
+ - next_batch
496
+ examples:
497
+ response:
498
+ value: {
499
+ "next_batch": "s72595_4483_1934",
500
+ "presence": {
501
+ "events": [
502
+ {
503
+ "$ref": "../../event-schemas/examples/m.presence.yaml"
504
+ }
505
+ ]
506
+ },
507
+ "account_data": {
508
+ "events": [
509
+ {
510
+ "type": "org.example.custom.config",
511
+ "content": {
512
+ "custom_config_key": "custom_config_value"
513
+ }
514
+ }
515
+ ]
516
+ },
517
+ "rooms": {
518
+ "join": {
519
+ "!726s6s6q:example.com": {
520
+ "summary": {
521
+ "m.heroes": [
522
+ "@alice:example.com",
523
+ "@bob:example.com"
524
+ ],
525
+ "m.joined_member_count": 2,
526
+ "m.invited_member_count": 0
527
+ },
528
+ "state": {
529
+ "events": [
530
+ {
531
+ "content": {
532
+ "avatar_url": "mxc://example.org/SFHyPlCeYUSFFxlgbQYZmoEoe",
533
+ "displayname": "Example user",
534
+ "membership": "join"
535
+ },
536
+ "event_id": "$143273976499sgjks:example.org",
537
+ "origin_server_ts": 1432735824653,
538
+ "sender": "@example:example.org",
539
+ "state_key": "@example:example.org",
540
+ "type": "m.room.member",
541
+ "unsigned": {
542
+ "age": 45603,
543
+ "membership": "join"
544
+ }
545
+ }
546
+ ]
547
+ },
548
+ "timeline": {
549
+ "events": [
550
+ {
551
+ "content": {
552
+ "avatar_url": "mxc://example.org/SEsfnsuifSDFSSEF",
553
+ "displayname": "Alice Margatroid",
554
+ "membership": "join",
555
+ "reason": "Looking for support"
556
+ },
557
+ "event_id": "$143273582443PhrSn:example.org",
558
+ "origin_server_ts": 1432735824653,
559
+ "sender": "@alice:example.org",
560
+ "state_key": "@alice:example.org",
561
+ "type": "m.room.member",
562
+ "unsigned": {
563
+ "age": 1234,
564
+ "membership": "join"
565
+ }
566
+ },
567
+ {
568
+ "content": {
569
+ "body": "This is an example text message",
570
+ "format": "org.matrix.custom.html",
571
+ "formatted_body": "<b>This is an example text message</b>",
572
+ "msgtype": "m.text"
573
+ },
574
+ "event_id": "$143273582443PhrSn:example.org",
575
+ "origin_server_ts": 1432735824653,
576
+ "sender": "@example:example.org",
577
+ "type": "m.room.message",
578
+ "unsigned": {
579
+ "age": 1234,
580
+ "membership": "join"
581
+ }
582
+ }
583
+ ],
584
+ "limited": true,
585
+ "prev_batch": "t34-23535_0_0"
586
+ },
587
+ "ephemeral": {
588
+ "events": [
589
+ {
590
+ "$ref": "../../event-schemas/examples/m.typing.yaml"
591
+ },
592
+ {
593
+ "$ref": "../../event-schemas/examples/m.receipt.yaml"
594
+ }
595
+ ]
596
+ },
597
+ "account_data": {
598
+ "events": [
599
+ {
600
+ "$ref": "../../event-schemas/examples/m.tag.yaml"
601
+ },
602
+ {
603
+ "type": "org.example.custom.room.config",
604
+ "content": {
605
+ "custom_config_key": "custom_config_value"
606
+ }
607
+ }
608
+ ]
609
+ },
610
+ "unread_notifications": {
611
+ "highlight_count": 1,
612
+ "notification_count": 5
613
+ },
614
+ "unread_thread_notifications": {
615
+ "$threadroot": {
616
+ "highlight_count": 3,
617
+ "notification_count": 6
618
+ }
619
+ }
620
+ }
621
+ },
622
+ "invite": {
623
+ "!696r7674:example.com": {
624
+ "invite_state": {
625
+ "events": [
626
+ {
627
+ "sender": "@alice:example.com",
628
+ "type": "m.room.name",
629
+ "state_key": "",
630
+ "content": {
631
+ "name": "My Room Name"
632
+ }
633
+ },
634
+ {
635
+ "sender": "@alice:example.com",
636
+ "type": "m.room.member",
637
+ "state_key": "@bob:example.com",
638
+ "content": {
639
+ "membership": "invite"
640
+ }
641
+ }
642
+ ]
643
+ }
644
+ }
645
+ },
646
+ "knock": {
647
+ "!223asd456:example.com": {
648
+ "knock_state": {
649
+ "events": [
650
+ {
651
+ "sender": "@alice:example.com",
652
+ "type": "m.room.name",
653
+ "state_key": "",
654
+ "content": {
655
+ "name": "My Room Name"
656
+ }
657
+ },
658
+ {
659
+ "sender": "@bob:example.com",
660
+ "type": "m.room.member",
661
+ "state_key": "@bob:example.com",
662
+ "content": {
663
+ "membership": "knock"
664
+ }
665
+ }
666
+ ]
667
+ }
668
+ }
669
+ },
670
+ "leave": {}
671
+ }
672
+ }
673
+ tags:
674
+ - Room participation
675
+ servers:
676
+ - url: "{protocol}://{hostname}{basePath}"
677
+ variables:
678
+ protocol:
679
+ enum:
680
+ - http
681
+ - https
682
+ default: https
683
+ hostname:
684
+ default: localhost:8008
685
+ basePath:
686
+ default: /_matrix/client/v3
687
+ components:
688
+ securitySchemes:
689
+ accessTokenQuery:
690
+ $ref: definitions/security.yaml#/accessTokenQuery
691
+ accessTokenBearer:
692
+ $ref: definitions/security.yaml#/accessTokenBearer