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,161 @@
1
+ # Copyright 2016 OpenMarket Ltd
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 Event Context API
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/context/{eventId}":
20
+ get:
21
+ summary: Get events and state around the specified event.
22
+ description: |-
23
+ This API returns a number of events that happened just before and
24
+ after the specified event. This allows clients to get the context
25
+ surrounding an event.
26
+
27
+ *Note*: This endpoint supports lazy-loading of room member events. See
28
+ [Lazy-loading room members](/client-server-api/#lazy-loading-room-members) for more information.
29
+ operationId: getEventContext
30
+ security:
31
+ - accessTokenQuery: []
32
+ - accessTokenBearer: []
33
+ parameters:
34
+ - in: path
35
+ name: roomId
36
+ description: The room to get events from.
37
+ required: true
38
+ example: "!636q39766251:example.com"
39
+ schema:
40
+ type: string
41
+ - in: path
42
+ name: eventId
43
+ description: The event to get context around.
44
+ required: true
45
+ example: $f3h4d129462ha:example.com
46
+ schema:
47
+ type: string
48
+ - in: query
49
+ name: limit
50
+ description: |-
51
+ The maximum number of context events to return. The limit applies
52
+ to the sum of the `events_before` and `events_after` arrays. The
53
+ requested event ID is always returned in `event` even if `limit` is
54
+ 0. Defaults to 10.
55
+ example: 3
56
+ schema:
57
+ type: integer
58
+ - in: query
59
+ name: filter
60
+ description: |-
61
+ A JSON `RoomEventFilter` to filter the returned events with. The
62
+ filter is only applied to `events_before`, `events_after`, and
63
+ `state`. It is not applied to the `event` itself. The filter may
64
+ be applied before or/and after the `limit` parameter - whichever the
65
+ homeserver prefers.
66
+
67
+ See [Filtering](/client-server-api/#filtering) for more information.
68
+ example: 66696p746572
69
+ schema:
70
+ type: string
71
+ responses:
72
+ "200":
73
+ description: The events and state surrounding the requested event.
74
+ content:
75
+ application/json:
76
+ schema:
77
+ type: object
78
+ description: The events and state surrounding the requested event.
79
+ properties:
80
+ start:
81
+ type: string
82
+ description: A token that can be used to paginate backwards with.
83
+ end:
84
+ type: string
85
+ description: A token that can be used to paginate forwards with.
86
+ events_before:
87
+ type: array
88
+ description: |-
89
+ A list of room events that happened just before the
90
+ requested event, in reverse-chronological order.
91
+ items:
92
+ $ref: definitions/client_event.yaml
93
+ event:
94
+ description: Details of the requested event.
95
+ allOf:
96
+ - $ref: definitions/client_event.yaml
97
+ events_after:
98
+ type: array
99
+ description: |-
100
+ A list of room events that happened just after the
101
+ requested event, in chronological order.
102
+ items:
103
+ $ref: definitions/client_event.yaml
104
+ state:
105
+ type: array
106
+ description: The state of the room at the last event returned.
107
+ items:
108
+ $ref: definitions/client_event.yaml
109
+ examples:
110
+ response:
111
+ value: {
112
+ "end": "t29-57_2_0_2",
113
+ "events_after": [
114
+ {
115
+ "room_id": "!636q39766251:example.com",
116
+ "$ref": "../../event-schemas/examples/m.room.message$m.text.yaml"
117
+ }
118
+ ],
119
+ "event": {
120
+ "event_id": "$f3h4d129462ha:example.com",
121
+ "room_id": "!636q39766251:example.com",
122
+ "$ref": "../../event-schemas/examples/m.room.message$m.image.yaml"
123
+ },
124
+ "events_before": [
125
+ {
126
+ "room_id": "!636q39766251:example.com",
127
+ "$ref": "../../event-schemas/examples/m.room.message$m.file.yaml"
128
+ }
129
+ ],
130
+ "start": "t27-54_2_0_2",
131
+ "state": [
132
+ {
133
+ "room_id": "!636q39766251:example.com",
134
+ "$ref": "../../event-schemas/examples/m.room.create.yaml"
135
+ },
136
+ {
137
+ "room_id": "!636q39766251:example.com",
138
+ "$ref": "../../event-schemas/examples/m.room.member.yaml"
139
+ }
140
+ ]
141
+ }
142
+ tags:
143
+ - Room participation
144
+ servers:
145
+ - url: "{protocol}://{hostname}{basePath}"
146
+ variables:
147
+ protocol:
148
+ enum:
149
+ - http
150
+ - https
151
+ default: https
152
+ hostname:
153
+ default: localhost:8008
154
+ basePath:
155
+ default: /_matrix/client/v3
156
+ components:
157
+ securitySchemes:
158
+ accessTokenQuery:
159
+ $ref: definitions/security.yaml#/accessTokenQuery
160
+ accessTokenBearer:
161
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,224 @@
1
+ # Copyright 2016 OpenMarket Ltd
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 filter API
17
+ version: 1.0.0
18
+ paths:
19
+ "/user/{userId}/filter":
20
+ post:
21
+ summary: Upload a new filter.
22
+ description: |-
23
+ Uploads a new filter definition to the homeserver.
24
+ Returns a filter ID that may be used in future requests to
25
+ restrict which events are returned to the client.
26
+ operationId: defineFilter
27
+ security:
28
+ - accessTokenQuery: []
29
+ - accessTokenBearer: []
30
+ parameters:
31
+ - in: path
32
+ name: userId
33
+ required: true
34
+ description: The id of the user uploading the filter. The access token must be
35
+ authorized to make requests for this user id.
36
+ example: "@alice:example.com"
37
+ schema:
38
+ type: string
39
+ format: mx-user-id
40
+ pattern: "^@"
41
+ requestBody:
42
+ content:
43
+ application/json:
44
+ schema:
45
+ type: object
46
+ allOf:
47
+ - $ref: definitions/sync_filter.yaml
48
+ example: {
49
+ "room": {
50
+ "state": {
51
+ "types": [
52
+ "m.room.*"
53
+ ],
54
+ "not_rooms": [
55
+ "!726s6s6q:example.com"
56
+ ]
57
+ },
58
+ "timeline": {
59
+ "limit": 10,
60
+ "types": [
61
+ "m.room.message"
62
+ ],
63
+ "not_rooms": [
64
+ "!726s6s6q:example.com"
65
+ ],
66
+ "not_senders": [
67
+ "@spam:example.com"
68
+ ]
69
+ },
70
+ "ephemeral": {
71
+ "types": [
72
+ "m.receipt",
73
+ "m.typing"
74
+ ],
75
+ "not_rooms": [
76
+ "!726s6s6q:example.com"
77
+ ],
78
+ "not_senders": [
79
+ "@spam:example.com"
80
+ ]
81
+ }
82
+ },
83
+ "presence": {
84
+ "types": [
85
+ "m.presence"
86
+ ],
87
+ "not_senders": [
88
+ "@alice:example.com"
89
+ ]
90
+ },
91
+ "event_format": "client",
92
+ "event_fields": [
93
+ "type",
94
+ "content",
95
+ "sender"
96
+ ]
97
+ }
98
+ description: The filter to upload.
99
+ required: true
100
+ responses:
101
+ "200":
102
+ description: The filter was created.
103
+ content:
104
+ application/json:
105
+ schema:
106
+ type: object
107
+ properties:
108
+ filter_id:
109
+ type: string
110
+ description: |-
111
+ The ID of the filter that was created. Cannot start
112
+ with a `{` as this character is used to determine
113
+ if the filter provided is inline JSON or a previously
114
+ declared filter by homeservers on some APIs.
115
+ example: 66696p746572
116
+ required:
117
+ - filter_id
118
+ tags:
119
+ - Room participation
120
+ "/user/{userId}/filter/{filterId}":
121
+ get:
122
+ summary: Download a filter
123
+ operationId: getFilter
124
+ security:
125
+ - accessTokenQuery: []
126
+ - accessTokenBearer: []
127
+ parameters:
128
+ - in: path
129
+ name: userId
130
+ description: The user ID to download a filter for.
131
+ required: true
132
+ example: "@alice:example.com"
133
+ schema:
134
+ type: string
135
+ format: mx-user-id
136
+ pattern: "^@"
137
+ - in: path
138
+ name: filterId
139
+ description: The filter ID to download.
140
+ required: true
141
+ example: 66696p746572
142
+ schema:
143
+ type: string
144
+ responses:
145
+ "200":
146
+ description: The filter definition.
147
+ content:
148
+ application/json:
149
+ schema:
150
+ $ref: definitions/sync_filter.yaml
151
+ examples:
152
+ response:
153
+ value: {
154
+ "room": {
155
+ "state": {
156
+ "types": [
157
+ "m.room.*"
158
+ ],
159
+ "not_rooms": [
160
+ "!726s6s6q:example.com"
161
+ ]
162
+ },
163
+ "timeline": {
164
+ "limit": 10,
165
+ "types": [
166
+ "m.room.message"
167
+ ],
168
+ "not_rooms": [
169
+ "!726s6s6q:example.com"
170
+ ],
171
+ "not_senders": [
172
+ "@spam:example.com"
173
+ ]
174
+ },
175
+ "ephemeral": {
176
+ "types": [
177
+ "m.receipt",
178
+ "m.typing"
179
+ ],
180
+ "not_rooms": [
181
+ "!726s6s6q:example.com"
182
+ ],
183
+ "not_senders": [
184
+ "@spam:example.com"
185
+ ]
186
+ }
187
+ },
188
+ "presence": {
189
+ "types": [
190
+ "m.presence"
191
+ ],
192
+ "not_senders": [
193
+ "@alice:example.com"
194
+ ]
195
+ },
196
+ "event_format": "client",
197
+ "event_fields": [
198
+ "type",
199
+ "content",
200
+ "sender"
201
+ ]
202
+ }
203
+ "404":
204
+ description: Unknown filter.
205
+ tags:
206
+ - Room participation
207
+ servers:
208
+ - url: "{protocol}://{hostname}{basePath}"
209
+ variables:
210
+ protocol:
211
+ enum:
212
+ - http
213
+ - https
214
+ default: https
215
+ hostname:
216
+ default: localhost:8008
217
+ basePath:
218
+ default: /_matrix/client/v3
219
+ components:
220
+ securitySchemes:
221
+ accessTokenQuery:
222
+ $ref: definitions/security.yaml#/accessTokenQuery
223
+ accessTokenBearer:
224
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,149 @@
1
+ # Copyright 2016 OpenMarket Ltd
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 Room Joining API
17
+ version: 1.0.0
18
+ paths:
19
+ # With an extra " " to disambiguate from the 3pid invite endpoint
20
+ # The extra space makes it sort first for what I'm sure is a good reason.
21
+ "/rooms/{roomId}/invite ":
22
+ post:
23
+ summary: Invite a user to participate in a particular room.
24
+ description: |-
25
+ *Note that there are two forms of this API, which are documented separately.
26
+ This version of the API requires that the inviter knows the Matrix
27
+ identifier of the invitee. The other is documented in the
28
+ [third-party invites](/client-server-api/#third-party-invites) section.*
29
+
30
+ This API invites a user to participate in a particular room.
31
+ They do not start participating in the room until they actually join the
32
+ room.
33
+
34
+ Only users currently in a particular room can invite other users to
35
+ join that room.
36
+
37
+ If the user was invited to the room, the homeserver will append a
38
+ `m.room.member` event to the room.
39
+ operationId: inviteUser
40
+ security:
41
+ - accessTokenQuery: []
42
+ - accessTokenBearer: []
43
+ parameters:
44
+ - in: path
45
+ name: roomId
46
+ description: The room identifier (not alias) to which to invite the user.
47
+ required: true
48
+ example: "!d41d8cd:matrix.org"
49
+ schema:
50
+ type: string
51
+ requestBody:
52
+ content:
53
+ application/json:
54
+ schema:
55
+ type: object
56
+ example: {
57
+ "user_id": "@cheeky_monkey:matrix.org",
58
+ "reason": "Welcome to the team!"
59
+ }
60
+ properties:
61
+ user_id:
62
+ type: string
63
+ description: The fully qualified user ID of the invitee.
64
+ reason:
65
+ x-addedInMatrixVersion: "1.1"
66
+ type: string
67
+ description: |-
68
+ Optional reason to be included as the `reason` on the subsequent
69
+ membership event.
70
+ required:
71
+ - user_id
72
+ required: true
73
+ responses:
74
+ "200":
75
+ description: The user has been invited to join the room, or was already invited
76
+ to the room.
77
+ content:
78
+ application/json:
79
+ schema:
80
+ type: object
81
+ examples:
82
+ response:
83
+ value: {}
84
+ "400":
85
+ description: |-
86
+
87
+ The request is invalid. A meaningful `errcode` and description
88
+ error text will be returned. Example reasons for rejection include:
89
+
90
+ - The request body is malformed (`errcode` set to `M_BAD_JSON`
91
+ or `M_NOT_JSON`).
92
+
93
+ - One or more users being invited to the room are residents of a
94
+ homeserver which does not support the requested room version. The
95
+ `errcode` will be `M_UNSUPPORTED_ROOM_VERSION` in these cases.
96
+ content:
97
+ application/json:
98
+ schema:
99
+ $ref: definitions/errors/error.yaml
100
+ "403":
101
+ description: |-
102
+ You do not have permission to invite the user to the room. A
103
+ meaningful `errcode` and description error text will be returned.
104
+ Example reasons for rejections are:
105
+
106
+ - The invitee has been banned from the room.
107
+ - The invitee is already a member of the room.
108
+ - The inviter is not currently in the room.
109
+ - The inviter's power level is insufficient to invite users to the room.
110
+
111
+ {{% added-in v="1.18"%}} The `M_INVITE_BLOCKED` error code is used to
112
+ indicate that the homeserver rejected the invite due to
113
+ [invite blocking](/client-server-api/#invite-permission).
114
+ content:
115
+ application/json:
116
+ schema:
117
+ $ref: definitions/errors/error.yaml
118
+ examples:
119
+ response:
120
+ value: {
121
+ "errcode": "M_FORBIDDEN",
122
+ "error": "@cheeky_monkey:matrix.org is banned from the room"
123
+ }
124
+ "429":
125
+ description: This request was rate-limited.
126
+ content:
127
+ application/json:
128
+ schema:
129
+ $ref: definitions/errors/rate_limited.yaml
130
+ tags:
131
+ - Room membership
132
+ servers:
133
+ - url: "{protocol}://{hostname}{basePath}"
134
+ variables:
135
+ protocol:
136
+ enum:
137
+ - http
138
+ - https
139
+ default: https
140
+ hostname:
141
+ default: localhost:8008
142
+ basePath:
143
+ default: /_matrix/client/v3
144
+ components:
145
+ securitySchemes:
146
+ accessTokenQuery:
147
+ $ref: definitions/security.yaml#/accessTokenQuery
148
+ accessTokenBearer:
149
+ $ref: definitions/security.yaml#/accessTokenBearer