async-matrix 0.1.2 → 1.0.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 (341) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +131 -0
  3. data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
  4. data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
  5. data/data/matrix-spec/api/client-server/admin.yaml +512 -0
  6. data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
  7. data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
  8. data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
  9. data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
  10. data/data/matrix-spec/api/client-server/banning.yaml +177 -0
  11. data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
  12. data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
  13. data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
  14. data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
  15. data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
  16. data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
  17. data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
  18. data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
  19. data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
  20. data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
  21. data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
  22. data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
  23. data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
  24. data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
  25. data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
  26. data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
  27. data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
  28. data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
  29. data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
  30. data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
  31. data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
  32. data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
  33. data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
  34. data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
  35. data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
  36. data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
  37. data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
  38. data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
  39. data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
  40. data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
  41. data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
  42. data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
  43. data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
  44. data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
  45. data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
  46. data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
  47. data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
  48. data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
  49. data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
  50. data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
  51. data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
  52. data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
  53. data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
  54. data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
  55. data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
  56. data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
  57. data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
  58. data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
  59. data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
  60. data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
  61. data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
  62. data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
  63. data/data/matrix-spec/api/client-server/directory.yaml +318 -0
  64. data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
  65. data/data/matrix-spec/api/client-server/filter.yaml +224 -0
  66. data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
  67. data/data/matrix-spec/api/client-server/joining.yaml +238 -0
  68. data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
  69. data/data/matrix-spec/api/client-server/keys.yaml +482 -0
  70. data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
  71. data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
  72. data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
  73. data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
  74. data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
  75. data/data/matrix-spec/api/client-server/login.yaml +321 -0
  76. data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
  77. data/data/matrix-spec/api/client-server/logout.yaml +86 -0
  78. data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
  79. data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
  80. data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
  81. data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
  82. data/data/matrix-spec/api/client-server/openid.yaml +98 -0
  83. data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
  84. data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
  85. data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
  86. data/data/matrix-spec/api/client-server/presence.yaml +169 -0
  87. data/data/matrix-spec/api/client-server/profile.yaml +366 -0
  88. data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
  89. data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
  90. data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
  91. data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
  92. data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
  93. data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
  94. data/data/matrix-spec/api/client-server/registration.yaml +488 -0
  95. data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
  96. data/data/matrix-spec/api/client-server/relations.yaml +382 -0
  97. data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
  98. data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
  99. data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
  100. data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
  101. data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
  102. data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
  103. data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
  104. data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
  105. data/data/matrix-spec/api/client-server/search.yaml +385 -0
  106. data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
  107. data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
  108. data/data/matrix-spec/api/client-server/support.yaml +142 -0
  109. data/data/matrix-spec/api/client-server/sync.yaml +692 -0
  110. data/data/matrix-spec/api/client-server/tags.yaml +183 -0
  111. data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
  112. data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
  113. data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
  114. data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
  115. data/data/matrix-spec/api/client-server/typing.yaml +103 -0
  116. data/data/matrix-spec/api/client-server/users.yaml +136 -0
  117. data/data/matrix-spec/api/client-server/versions.yaml +108 -0
  118. data/data/matrix-spec/api/client-server/voip.yaml +93 -0
  119. data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
  120. data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
  121. data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
  122. data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
  123. data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
  124. data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
  125. data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
  126. data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
  127. data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
  128. data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
  129. data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
  130. data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
  131. data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
  132. data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
  133. data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
  134. data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
  135. data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
  136. data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
  137. data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
  138. data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
  139. data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
  140. data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
  141. data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
  142. data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
  143. data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
  144. data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
  145. data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
  146. data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
  147. data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
  148. data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
  149. data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
  150. data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
  151. data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
  152. data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
  153. data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
  154. data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
  155. data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
  156. data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
  157. data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
  158. data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
  159. data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
  160. data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
  161. data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
  162. data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
  163. data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
  164. data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
  165. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
  166. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
  167. data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
  168. data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
  169. data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
  170. data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
  171. data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
  172. data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
  173. data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
  174. data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
  175. data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
  176. data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
  177. data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
  178. data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
  179. data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
  180. data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
  181. data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
  182. data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
  183. data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
  184. data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
  185. data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
  186. data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
  187. data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
  188. data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
  189. data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
  190. data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
  191. data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
  192. data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
  193. data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
  194. data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
  195. data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
  196. data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
  197. data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
  198. data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
  199. data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
  200. data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
  201. data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
  202. data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
  203. data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
  204. data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
  205. data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
  206. data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
  207. data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
  208. data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
  209. data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
  210. data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
  211. data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
  212. data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
  213. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
  214. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
  215. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
  216. data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
  217. data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
  218. data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
  219. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
  220. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
  221. data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
  222. data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
  223. data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
  224. data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
  225. data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
  226. data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
  227. data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
  228. data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
  229. data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
  230. data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
  231. data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
  232. data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
  233. data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
  234. data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
  235. data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
  236. data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
  237. data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
  238. data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
  239. data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
  240. data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
  241. data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
  242. data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
  243. data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
  244. data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
  245. data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
  246. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
  247. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
  248. data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
  249. data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
  250. data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
  251. data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
  252. data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
  253. data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
  254. data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
  255. data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
  256. data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
  257. data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
  258. data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
  259. data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
  260. data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
  261. data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
  262. data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
  263. data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
  264. data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
  265. data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
  266. data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
  267. data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
  268. data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
  269. data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
  270. data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
  271. data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
  272. data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
  273. data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
  274. data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
  275. data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
  276. data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
  277. data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
  278. data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
  279. data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
  280. data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
  281. data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
  282. data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
  283. data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
  284. data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
  285. data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
  286. data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
  287. data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
  288. data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
  289. data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
  290. data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
  291. data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
  292. data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
  293. data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
  294. data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
  295. data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
  296. data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
  297. data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
  298. data/lib/async/matrix/api/chain.rb +575 -0
  299. data/lib/async/matrix/api/concat.rb +105 -0
  300. data/lib/async/matrix/api/path_tree.rb +208 -0
  301. data/lib/async/matrix/api.rb +204 -0
  302. data/lib/async/matrix/application_service/bot.rb +235 -0
  303. data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
  304. data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
  305. data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
  306. data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
  307. data/lib/async/matrix/application_service/config/schema/config.json +61 -0
  308. data/lib/async/matrix/application_service/config/schema/database.json +38 -0
  309. data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
  310. data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
  311. data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
  312. data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
  313. data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
  314. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
  315. data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
  316. data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
  317. data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
  318. data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
  319. data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
  320. data/lib/async/matrix/application_service/config/vivify.rb +110 -0
  321. data/lib/async/matrix/application_service/config.rb +214 -123
  322. data/lib/async/matrix/application_service/dispatcher.rb +115 -113
  323. data/lib/async/matrix/application_service/error_response.rb +26 -26
  324. data/lib/async/matrix/application_service/event.rb +217 -1
  325. data/lib/async/matrix/application_service/server.rb +286 -215
  326. data/lib/async/matrix/application_service/transaction.rb +52 -52
  327. data/lib/async/matrix/application_service/transaction_store.rb +62 -62
  328. data/lib/async/matrix/client.rb +919 -179
  329. data/lib/async/matrix/connection.rb +8 -8
  330. data/lib/async/matrix/endpoint.rb +45 -45
  331. data/lib/async/matrix/error.rb +49 -43
  332. data/lib/async/matrix/media_client.rb +173 -0
  333. data/lib/async/matrix/notifier.rb +92 -92
  334. data/lib/async/matrix/schema/registry.rb +355 -0
  335. data/lib/async/matrix/schema/validation_error.rb +226 -0
  336. data/lib/async/matrix/schema.rb +174 -0
  337. data/lib/async/matrix/server.rb +7 -7
  338. data/lib/async/matrix/stream.rb +7 -7
  339. data/lib/async/matrix/version.rb +1 -1
  340. data/lib/async/matrix.rb +5 -2
  341. metadata +353 -1
@@ -0,0 +1,88 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ This event type is used to indicate that the sender is not sharing room keys
9
+ with the recipient. It is sent as a to-device event.
10
+
11
+ Possible values for `code` include:
12
+
13
+ * `m.blacklisted`: the user/device was blacklisted.
14
+ * `m.unverified`: the user/device was not verified, and the sender is only
15
+ sharing keys with verified users/devices.
16
+ * `m.unauthorised`: the user/device is not allowed to have the key. For
17
+ example, this could be sent in response to a key request if the user/device
18
+ was not in the room when the original message was sent.
19
+ * `m.unavailable`: sent in reply to a key request if the device that the
20
+ key is requested from does not have the requested key.
21
+ * `m.no_olm`: an olm session could not be established.
22
+
23
+ In most cases, this event refers to a specific room key. The one exception to
24
+ this is when the sender is unable to establish an olm session with the
25
+ recipient. When this happens, multiple sessions will be affected. In order
26
+ to avoid filling the recipient\'s device mailbox, the sender should only send
27
+ one `m.room_key.withheld` message with no `room_id` nor `session_id`
28
+ set. If the sender retries and fails to create an olm session again in the
29
+ future, it should not send another `m.room_key.withheld` message with a
30
+ `code` of `m.no_olm`, unless another olm session was previously
31
+ established successfully. In response to receiving an
32
+ `m.room_key.withheld` message with a `code` of `m.no_olm`, the
33
+ recipient may start an olm session with the sender and send an `m.dummy`
34
+ message to notify the sender of the new olm session. The recipient may
35
+ assume that this `m.room_key.withheld` message applies to all encrypted
36
+ room messages sent before it receives the message.
37
+ properties:
38
+ content:
39
+ properties:
40
+ algorithm:
41
+ type: string
42
+ enum: ["m.megolm.v1.aes-sha2"]
43
+ description: |-
44
+ The encryption algorithm for the key that this event is about.
45
+ room_id:
46
+ type: string
47
+ description: |-
48
+ Required if `code` is not `m.no_olm`. The room for the key that
49
+ this event is about.
50
+ session_id:
51
+ type: string
52
+ description: |-
53
+ Required if `code` is not `m.no_olm`. The session ID of the key
54
+ that this event is about.
55
+ sender_key:
56
+ type: string
57
+ description: |-
58
+ The unpadded base64-encoded device curve25519 key of the event\'s
59
+ sender.
60
+ code:
61
+ type: string
62
+ enum:
63
+ - m.blacklisted
64
+ - m.unverified
65
+ - m.unauthorised
66
+ - m.unavailable
67
+ - m.no_olm
68
+ description: |-
69
+ A machine-readable code for why the key was not sent. Codes beginning
70
+ with `m.` are reserved for codes defined in the Matrix
71
+ specification. Custom codes must use the Java package naming
72
+ convention.
73
+ reason:
74
+ type: string
75
+ description: |-
76
+ A human-readable reason for why the key was not sent. The receiving
77
+ client should only use this string if it does not understand the
78
+ `code`.
79
+ required:
80
+ - algorithm
81
+ - sender_key
82
+ - code
83
+ type: object
84
+ type:
85
+ enum:
86
+ - m.room_key.withheld
87
+ type: string
88
+ type: object
@@ -0,0 +1,38 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ This event type is used to exchange keys for end-to-end encryption.
9
+ It is encrypted as an `m.room.encrypted` event using [Olm](/client-server-api/#molmv1curve25519-aes-sha2),
10
+ then sent as a [to-device](/client-server-api/#send-to-device-messaging) event.
11
+ properties:
12
+ content:
13
+ properties:
14
+ algorithm:
15
+ type: string
16
+ enum: ["m.megolm.v1.aes-sha2"]
17
+ description: |-
18
+ The encryption algorithm the key in this event is to be used with.
19
+ room_id:
20
+ type: string
21
+ description: The room where the key is used.
22
+ session_id:
23
+ type: string
24
+ description: The ID of the session that the key is for.
25
+ session_key:
26
+ type: string
27
+ description: The key to be exchanged.
28
+ required:
29
+ - algorithm
30
+ - room_id
31
+ - session_id
32
+ - session_key
33
+ type: object
34
+ type:
35
+ enum:
36
+ - m.room_key
37
+ type: string
38
+ type: object
@@ -0,0 +1,73 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ This event type is used to request keys for end-to-end encryption. It is sent as an
9
+ unencrypted [to-device](/client-server-api/#send-to-device-messaging) event.
10
+ properties:
11
+ content:
12
+ properties:
13
+ body:
14
+ description: |-
15
+ Information about the requested key. Required when `action` is
16
+ `request`.
17
+ properties:
18
+ algorithm:
19
+ type: string
20
+ description: |-
21
+ The encryption algorithm the requested key in this event is to be used
22
+ with.
23
+ room_id:
24
+ type: string
25
+ description: The room where the key is used.
26
+ sender_key:
27
+ type: string
28
+ x-changedInMatrixVersion:
29
+ "1.3": |-
30
+ Previously this field was required, however given it offers no additional
31
+ security or privacy benefit it has been deprecated. See [`m.megolm.v1.aes-sha2`](/client-server-api/#mmegolmv1aes-sha2)
32
+ for more information.
33
+ description: |-
34
+ The Curve25519 key of the device which initiated the session originally.
35
+
36
+ **Deprecated**: This field provides no additional security or privacy benefit
37
+ and must not be read from. It should still be included on outgoing messages
38
+ (if the event for which keys are being requested for *also* has a `sender_key`),
39
+ however must not be used to find the corresponding session. See [`m.megolm.v1.aes-sha2`](/client-server-api/#mmegolmv1aes-sha2)
40
+ for more information.
41
+ session_id:
42
+ type: string
43
+ description: The ID of the session that the key is for.
44
+ required:
45
+ - algorithm
46
+ - room_id
47
+ - session_id
48
+ type: object
49
+ title: RequestedKeyInfo
50
+ action:
51
+ enum:
52
+ - request
53
+ - request_cancellation
54
+ type: string
55
+ requesting_device_id:
56
+ description: ID of the device requesting the key.
57
+ type: string
58
+ request_id:
59
+ description: |-
60
+ A random string uniquely identifying the request for a key. If the key is
61
+ requested multiple times, it should be reused. It should also reused in order
62
+ to cancel a request.
63
+ type: string
64
+ required:
65
+ - action
66
+ - requesting_device_id
67
+ - request_id
68
+ type: object
69
+ type:
70
+ enum:
71
+ - m.room_key_request
72
+ type: string
73
+ type: object
@@ -0,0 +1,42 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+ description: |-
7
+ Sent by a client to request a secret from another device or to cancel a
8
+ previous request. It is sent as an unencrypted to-device event.
9
+ properties:
10
+ content:
11
+ properties:
12
+ name:
13
+ type: string
14
+ description: |-
15
+ Required if `action` is `request`. The name of the secret that is
16
+ being requested.
17
+ action:
18
+ type: string
19
+ enum:
20
+ - request
21
+ - request_cancellation
22
+ requesting_device_id:
23
+ type: string
24
+ description: |-
25
+ The ID of the device requesting the secret.
26
+ request_id:
27
+ type: string
28
+ description: |-
29
+ A random string uniquely identifying (with respect to the requester
30
+ and the target) the target for a secret. If the secret is requested
31
+ from multiple devices at the same time, the same ID MAY be used for
32
+ every target. The same ID is also used in order to cancel a previous
33
+ request.
34
+ required:
35
+ - action
36
+ - requesting_device_id
37
+ - request_id
38
+ type:
39
+ enum:
40
+ - m.secret.request
41
+ type: string
42
+ type: object
@@ -0,0 +1,35 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+ description: |-
7
+ Sent by a client to share a secret with another device, in response to an
8
+ `m.secret.request` event. It must be encrypted as an `m.room.encrypted` event
9
+ using [Olm](/client-server-api/#molmv1curve25519-aes-sha2), then sent as a
10
+ to-device event.
11
+
12
+ The `request_id` must match the ID previously given in an `m.secret.request`
13
+ event. The recipient must ensure that this event comes from a device that the
14
+ `m.secret.request` event was originally sent to, and that the device is
15
+ a verified device owned by the recipient. This should be done by checking the
16
+ sender key of the Olm session that the event was sent over.
17
+ properties:
18
+ content:
19
+ properties:
20
+ request_id:
21
+ type: string
22
+ description: |-
23
+ The ID of the request that this is a response to.
24
+ secret:
25
+ type: string
26
+ description: |-
27
+ The contents of the secret
28
+ required:
29
+ - request_id
30
+ - secret
31
+ type:
32
+ enum:
33
+ - m.secret.send
34
+ type: string
35
+ type: object
@@ -0,0 +1,50 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: Defines the relationship of a child room to a space-room. Has no effect in rooms which are not [spaces](/client-server-api/#spaces).
7
+ properties:
8
+ content:
9
+ properties:
10
+ via:
11
+ type: array
12
+ description: |-
13
+ A list of servers to try and join through. See also: [Routing](/appendices/#routing).
14
+
15
+ When not present or invalid, the child room is not considered to be part of the space.
16
+ items:
17
+ type: string
18
+ order:
19
+ type: string
20
+ maxLength: 50
21
+ pattern: '^[\x20-\x7E]+$'
22
+ description: |-
23
+ Optional string to define ordering among space children. These are lexicographically
24
+ compared against other children's `order`, if present.
25
+
26
+ Must consist of ASCII characters within the range `\x20` (space) and `\x7E` (`~`),
27
+ inclusive. Must not exceed 50 characters.
28
+
29
+ `order` values with the wrong type, or otherwise invalid contents, are to be treated
30
+ as though the `order` key was not provided.
31
+
32
+ See [Ordering of children within a space](/client-server-api/#ordering-of-children-within-a-space) for information on how the ordering works.
33
+ suggested:
34
+ type: boolean
35
+ description: |-
36
+ Optional (default `false`) flag to denote whether the child is "suggested" or of interest
37
+ to members of the space. This is primarily intended as a rendering hint for clients to
38
+ display the room differently, such as eagerly rendering them in the room list.
39
+ required:
40
+ - via
41
+ type: object
42
+ state_key:
43
+ description: The child room ID being described.
44
+ type: string
45
+ type:
46
+ enum:
47
+ - m.space.child
48
+ type: string
49
+ title: Space child room
50
+ type: object
@@ -0,0 +1,36 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: Defines the relationship of a room to a parent space-room.
7
+ properties:
8
+ content:
9
+ properties:
10
+ via:
11
+ type: array
12
+ description: |-
13
+ A list of servers to try and join through. See also: [Routing](/appendices/#routing).
14
+
15
+ When not present or invalid, the room is not considered to be part of the parent space.
16
+ items:
17
+ type: string
18
+ canonical:
19
+ type: boolean
20
+ description: |-
21
+ Optional (default `false`) flag to denote this parent is the primary parent for the room.
22
+
23
+ When multiple `canonical` parents are found, the lowest parent when ordering by room ID
24
+ lexicographically by Unicode code-points should be used.
25
+ required:
26
+ - via
27
+ type: object
28
+ state_key:
29
+ description: The parent room ID.
30
+ type: string
31
+ type:
32
+ enum:
33
+ - m.space.parent
34
+ type: string
35
+ title: Room space parent
36
+ type: object
@@ -0,0 +1,36 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/room_event.yaml
6
+ description: This message represents a single sticker image.
7
+ properties:
8
+ content:
9
+ properties:
10
+ body:
11
+ description: |-
12
+ A textual representation or associated description of the sticker
13
+ image. This could be the alt text of the original image, or a message
14
+ to accompany and further describe the sticker.
15
+ type: string
16
+ info:
17
+ allOf:
18
+ - $ref: core-event-schema/msgtype_infos/image_info.yaml
19
+ description: |-
20
+ Metadata about the image referred to in `url` including a thumbnail
21
+ representation.
22
+ url:
23
+ description: |-
24
+ The URL to the sticker image. This must be a valid `mxc://` URI.
25
+ type: string
26
+ required:
27
+ - body
28
+ - info
29
+ - url
30
+ type: object
31
+ type:
32
+ enum:
33
+ - m.sticker
34
+ type: string
35
+ title: StickerMessage
36
+ type: object
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "title": "Tag Event",
5
+ "description": "Informs the client of tags on a room.",
6
+ "allOf": [{
7
+ "$ref": "core-event-schema/event.yaml"
8
+ }],
9
+ "properties": {
10
+ "type": {
11
+ "type": "string",
12
+ "enum": ["m.tag"]
13
+ },
14
+ "content": {
15
+ "type": "object",
16
+ "properties": {
17
+ "tags": {
18
+ "type": "object",
19
+ "description": "The tags on the room and their contents.",
20
+ "additionalProperties": {
21
+ "$ref": "../../api/client-server/definitions/tag.yaml"
22
+ }
23
+ }
24
+ }
25
+ }
26
+ },
27
+ "required": ["type", "content"]
28
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "title": "Typing Event",
5
+ "description": "Informs the client of the list of users currently typing.",
6
+ "allOf": [{
7
+ "$ref": "core-event-schema/event.yaml"
8
+ }],
9
+ "properties": {
10
+ "content": {
11
+ "type": "object",
12
+ "properties": {
13
+ "user_ids": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "string"
17
+ },
18
+ "description": "The list of user IDs typing in this room, if any."
19
+ }
20
+ },
21
+ "required": ["user_ids"]
22
+ },
23
+ "type": {
24
+ "type": "string",
25
+ "enum": ["m.typing"]
26
+ }
27
+ },
28
+ "required": ["type", "content"]
29
+ }