async-matrix 0.1.3 → 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 +2 -2
  341. metadata +353 -1
@@ -0,0 +1,17 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: A moderation policy rule which affects servers.
7
+ properties:
8
+ content:
9
+ $ref: "../moderation_policy_rule.yaml"
10
+ state_key:
11
+ description: An arbitrary string decided upon by the sender.
12
+ type: string
13
+ type:
14
+ enum:
15
+ - m.policy.rule.server
16
+ type: string
17
+ type: object
@@ -0,0 +1,17 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: A moderation policy rule which affects users.
7
+ properties:
8
+ content:
9
+ $ref: "../moderation_policy_rule.yaml"
10
+ state_key:
11
+ description: An arbitrary string decided upon by the sender.
12
+ type: string
13
+ type:
14
+ enum:
15
+ - m.policy.rule.user
16
+ type: string
17
+ type: object
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "title": "Presence Event",
5
+ "description": "Informs the client of a user's presence state change.",
6
+ "allOf": [{
7
+ "$ref": "core-event-schema/event.yaml"
8
+ }],
9
+ "properties": {
10
+ "content": {
11
+ "type": "object",
12
+ "properties": {
13
+ "avatar_url": {
14
+ "type": "string",
15
+ "description": "The current avatar URL for this user, if any."
16
+ },
17
+ "displayname": {
18
+ "type": "string",
19
+ "description": "The current display name for this user, if any."
20
+ },
21
+ "last_active_ago": {
22
+ "type": "number",
23
+ "description": "The last time since this used performed some action, in milliseconds."
24
+ },
25
+ "presence": {
26
+ "type": "string",
27
+ "description": "The presence state for this user.",
28
+ "enum": ["online", "offline", "unavailable"]
29
+ },
30
+ "currently_active": {
31
+ "type": boolean,
32
+ "description": "Whether the user is currently active"
33
+ },
34
+ "status_msg": {
35
+ "type": "string",
36
+ "description": "An optional description to accompany the presence."
37
+ }
38
+ },
39
+ "required": ["presence"]
40
+ },
41
+ "type": {
42
+ "type": "string",
43
+ "enum": ["m.presence"]
44
+ },
45
+ "sender": {
46
+ "type": "string"
47
+ }
48
+ },
49
+ "required": ["sender", "type", "content"]
50
+ }
@@ -0,0 +1,23 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+ description: Describes all push rules for this user.
7
+ properties:
8
+ content:
9
+ properties:
10
+ global:
11
+ type: object
12
+ title: Ruleset
13
+ description: The global ruleset
14
+ allOf:
15
+ - $ref: ../../api/client-server/definitions/push_ruleset.yaml
16
+ type: object
17
+ type:
18
+ enum:
19
+ - m.push_rules
20
+ type: string
21
+ title: Push rules
22
+ type: object
23
+
@@ -0,0 +1,45 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ allOf:
4
+ - $ref: core-event-schema/room_event.yaml
5
+ description: |-
6
+ Indicates a reaction to a previous event.
7
+
8
+ Has no defined `content` properties of its own. Its only purpose is to hold an
9
+ [`m.relates_to`](/client-server-api/#definition-mrelates_to) property.
10
+
11
+ Since they contain no content other than `m.relates_to`, `m.reaction` events
12
+ are normally not encrypted, as there would be no benefit in doing so.
13
+ type: object
14
+ properties:
15
+ content:
16
+ type: object
17
+ properties:
18
+ m.relates_to:
19
+ description: |-
20
+ Indicates the event being reacted to, and the type of reaction.
21
+ type: object
22
+ title: ReactionRelatesTo
23
+ properties:
24
+ rel_type:
25
+ type: string
26
+ enum: ["m.annotation"]
27
+ event_id:
28
+ type: string
29
+ description: |-
30
+ The event ID of the event that this is a reaction to.
31
+ example: "$some_event_id"
32
+ key:
33
+ type: string
34
+ description: |-
35
+ The reaction being made, usually an emoji.
36
+
37
+ If this is an emoji, it should include the unicode emoji
38
+ presentation selector (`\uFE0F`) for codepoints which allow it
39
+ (see the [emoji variation sequences
40
+ list](https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-variation-sequences.txt)).
41
+ example: "👍"
42
+ type:
43
+ enum:
44
+ - m.reaction
45
+ type: string
@@ -0,0 +1,65 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ type: object
4
+ title: Receipt Event
5
+ description: Informs the client of new receipts.
6
+ x-changedInMatrixVersion:
7
+ "1.4": |
8
+ Added `m.read.private` receipts to the event's `content`.
9
+ allOf:
10
+ - $ref: "core-event-schema/event.yaml"
11
+ properties:
12
+ content:
13
+ type: object
14
+ description: |-
15
+ The mapping of event ID to a collection of receipts for this
16
+ event ID. The event ID is the ID of the event being acknowledged
17
+ and *not* an ID for the receipt itself.
18
+ patternProperties:
19
+ "^\\$":
20
+ type: object
21
+ x-pattern-format: "mx-event-id"
22
+ title: Event Receipts
23
+ description: |-
24
+ The collection of receipts for this event ID.
25
+ properties:
26
+ "m.read":
27
+ type: object
28
+ description: |-
29
+ A collection of users who have sent `m.read` receipts for
30
+ this event. The string key is the user ID the receipt
31
+ belongs to.
32
+ patternProperties:
33
+ "^@": &receiptUserMap
34
+ type: object
35
+ title: Receipt
36
+ description: |-
37
+ The mapping of user ID to receipt. The user ID is the
38
+ entity who sent this receipt.
39
+ x-pattern-format: "mx-user-id"
40
+ properties:
41
+ ts:
42
+ type: integer
43
+ format: int64
44
+ description: The timestamp the receipt was sent at.
45
+ thread_id:
46
+ type: string
47
+ x-addedInMatrixVersion: "1.4"
48
+ description: |-
49
+ The root thread event's ID (or `main`) for which
50
+ thread this receipt is intended to be under. If
51
+ not specified, the read receipt is *unthreaded*
52
+ (default).
53
+ "m.read.private":
54
+ type: object
55
+ description: |-
56
+ Similar to `m.read`, the users who have sent `m.read.private`
57
+ receipts for this event. Due to the nature of private read
58
+ receipts, this should only ever have the current user's ID.
59
+ patternProperties:
60
+ "^@": *receiptUserMap
61
+ additionalProperties: false
62
+ type:
63
+ type: string
64
+ enum: ["m.receipt", "m.receipt.private"]
65
+ required: ["type", "content"]
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "title": "Recent Emoji Event",
5
+ "description": "Lets clients maintain a list of recently used emoji.",
6
+ "allOf": [{
7
+ "$ref": "core-event-schema/event.yaml"
8
+ }],
9
+ "properties": {
10
+ "type": {
11
+ "type": "string",
12
+ "enum": ["m.recent_emoji"]
13
+ },
14
+ "content": {
15
+ "type": "object",
16
+ "properties": {
17
+ "recent_emoji": {
18
+ "description": "The list of recently used emoji. Elements in the list are ordered descendingly by last usage time.",
19
+ "type": "array",
20
+ "items": {
21
+ "$ref": "../../api/client-server/definitions/recent_emoji.yaml"
22
+ },
23
+ }
24
+ },
25
+ "required": ["recent_emoji"]
26
+ }
27
+ },
28
+ "required": ["type", "content"]
29
+ }
@@ -0,0 +1,29 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: A picture that is associated with the room. This can be displayed alongside the room information.
7
+ properties:
8
+ content:
9
+ properties:
10
+ info:
11
+ allOf:
12
+ - $ref: core-event-schema/msgtype_infos/avatar_info.yaml
13
+ description: Metadata about the image referred to in `url`.
14
+ url:
15
+ description: |-
16
+ The URL to the image. If this property is not present, the room has no avatar. This can be useful
17
+ to remove a previous room avatar.
18
+ type: string
19
+ type: object
20
+ state_key:
21
+ description: A zero-length string.
22
+ pattern: '^$'
23
+ type: string
24
+ type:
25
+ enum:
26
+ - m.room.avatar
27
+ type: string
28
+ title: RoomAvatar
29
+ type: object
@@ -0,0 +1,40 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: |-
7
+ This event is used to inform the room about which alias should be
8
+ considered the canonical one, and which other aliases point to the room.
9
+ This could be for display purposes or as suggestion to users which alias
10
+ to use to advertise and access the room.
11
+ properties:
12
+ content:
13
+ properties:
14
+ alias:
15
+ description: |
16
+ The canonical alias for the room. If not present, null, or empty the
17
+ room should be considered to have no canonical alias.
18
+ type: string
19
+ format: mx-room-alias
20
+ pattern: "^#"
21
+ alt_aliases:
22
+ description: |
23
+ Alternative aliases the room advertises. This list can have aliases
24
+ despite the `alias` field being null, empty, or otherwise not present.
25
+ type: array
26
+ items:
27
+ type: string
28
+ format: mx-room-alias
29
+ pattern: "^#"
30
+ type: object
31
+ state_key:
32
+ description: A zero-length string.
33
+ pattern: '^$'
34
+ type: string
35
+ type:
36
+ enum:
37
+ - m.room.canonical_alias
38
+ type: string
39
+ title: Informs the room as to which alias is the canonical one.
40
+ type: object
@@ -0,0 +1,86 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: This is the first event in a room and cannot be changed. It acts as the root of all other events.
7
+ properties:
8
+ content:
9
+ properties:
10
+ creator:
11
+ description: |-
12
+ The `user_id` of the room creator. **Required** for, and only present in, room versions 1 - 10. Starting with
13
+ room version 11 the event `sender` should be used instead.
14
+ type: string
15
+ format: mx-user-id
16
+ pattern: "^@"
17
+ m.federate:
18
+ description: Whether users on other servers can join this room. Defaults to `true` if key does not exist.
19
+ type: boolean
20
+ room_version:
21
+ description: The version of the room. Defaults to `"1"` if the key does not exist.
22
+ type: string
23
+ type:
24
+ description: |-
25
+ Optional [room type](/client-server-api/#types) to denote a room's intended function outside of traditional
26
+ conversation.
27
+
28
+ Unspecified room types are possible using [Namespaced Identifiers](/appendices/#common-namespaced-identifier-grammar).
29
+ type: string
30
+ predecessor:
31
+ description: A reference to the room this room replaces, if the previous room was upgraded.
32
+ type: object
33
+ title: Previous Room
34
+ properties:
35
+ room_id:
36
+ type: string
37
+ format: mx-room-id
38
+ pattern: "^!"
39
+ description: The ID of the old room.
40
+ event_id:
41
+ type: string
42
+ format: mx-event-id
43
+ pattern: "^\\$"
44
+ deprecated: true
45
+ x-changedInMatrixVersion:
46
+ "1.16": |-
47
+ This field became deprecated and may not be present in all cases. It SHOULD still
48
+ be populated where possible/practical. Previously, it was required.
49
+ description: |-
50
+ The event ID of the last known event in the old room, if known.
51
+
52
+ If not set, clients SHOULD search for the `m.room.tombstone` state event to navigate to
53
+ when directing the user to the old room (potentially after joining the room, if requested
54
+ by the user).
55
+ required: [room_id]
56
+ additional_creators:
57
+ type: array
58
+ items:
59
+ type: string
60
+ format: mx-user-id
61
+ pattern: "^@"
62
+ description: Additional user ID to consider a creator of the room, if supported by the room version.
63
+ x-addedInMatrixVersion: "1.16"
64
+ description: |-
65
+ Starting with room version 12, the other user IDs to consider as creators for the room in
66
+ addition to the `sender` of this event. Each string MUST be a valid [user ID](/appendices#user-identifiers)
67
+ for the room version.
68
+
69
+ When not present or empty, the `sender` of the event is the only creator.
70
+
71
+ In room versions 1 through 11, this field serves no purpose and is not validated. Clients
72
+ SHOULD NOT attempt to parse or understand this field in these room versions.
73
+
74
+ **Note**: Because `creator` was removed in room version 11, the field is not used to determine
75
+ which user(s) are room creators in room version 12 and beyond either.
76
+ type: object
77
+ state_key:
78
+ description: A zero-length string.
79
+ pattern: '^$'
80
+ type: string
81
+ type:
82
+ enum:
83
+ - m.room.create
84
+ type: string
85
+ title: The first event in the room.
86
+ type: object
@@ -0,0 +1,91 @@
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 when sending encrypted events. It can be used either
9
+ within a room (in which case it will have all of the normal properties in
10
+ [Room events](/client-server-api/#room-event-format)), or
11
+ as a [to-device](/client-server-api/#send-to-device-messaging) event.
12
+
13
+ properties:
14
+ content:
15
+ properties:
16
+ algorithm:
17
+ type: string
18
+ enum:
19
+ - m.olm.v1.curve25519-aes-sha2
20
+ - m.megolm.v1.aes-sha2
21
+ description: |-
22
+ The encryption algorithm used to encrypt this event. The
23
+ value of this field determines which other properties will be
24
+ present.
25
+ ciphertext:
26
+ oneOf:
27
+ - type: string
28
+ - type: object
29
+ additionalProperties:
30
+ type: object
31
+ title: CiphertextInfo
32
+ properties:
33
+ body:
34
+ type: string
35
+ description: The encrypted payload.
36
+ type:
37
+ type: integer
38
+ description: The Olm message type.
39
+ description: |-
40
+ The encrypted content of the event. Either the encrypted payload
41
+ itself, in the case of a Megolm event, or a map from the recipient
42
+ Curve25519 identity key to ciphertext information, in the case of an
43
+ Olm event. For more details, see [Messaging Algorithms](/client-server-api/#messaging-algorithms).
44
+ sender_key:
45
+ type: string
46
+ deprecated: true
47
+ x-changedInMatrixVersion:
48
+ "1.3": |-
49
+ Previously this field was required, however given it offers no additional
50
+ security or privacy benefit it has been deprecated for Megolm messages.
51
+ See [`m.megolm.v1.aes-sha2`](/client-server-api/#mmegolmv1aes-sha2) for
52
+ more information.
53
+ description: |-
54
+ The Curve25519 key of the sender. Required (not deprecated) if not using Megolm.
55
+
56
+ **Deprecated**: This field provides no additional security or privacy benefit
57
+ for Megolm messages and must not be read from if the encrypted event is using
58
+ Megolm. It should still be included on outgoing messages, however must not be
59
+ used to find the corresponding session. See [`m.megolm.v1.aes-sha2`](/client-server-api/#mmegolmv1aes-sha2)
60
+ for more information.
61
+ device_id:
62
+ type: string
63
+ deprecated: true
64
+ x-changedInMatrixVersion:
65
+ "1.3": |-
66
+ Previously this field was required for Megolm messages, however given it
67
+ offers no additional security or privacy benefit it has been deprecated
68
+ for Megolm messages. See [`m.megolm.v1.aes-sha2`](/client-server-api/#mmegolmv1aes-sha2)
69
+ for more information.
70
+ description: |-
71
+ The ID of the sending device.
72
+
73
+ **Deprecated**: This field provides no additional security or privacy benefit
74
+ for Megolm messages and must not be read from if the encrypted event is using
75
+ Megolm. It should still be included on outgoing messages, however must not be
76
+ used to find the corresponding session. See [`m.megolm.v1.aes-sha2`](/client-server-api/#mmegolmv1aes-sha2)
77
+ for more information.
78
+ session_id:
79
+ type: string
80
+ description: |-
81
+ The ID of the session used to encrypt the message. Required with
82
+ Megolm.
83
+ required:
84
+ - algorithm
85
+ - ciphertext
86
+ type: object
87
+ type:
88
+ enum:
89
+ - m.room.encrypted
90
+ type: string
91
+ 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/state_event.yaml
6
+ description: Defines how messages sent in this room should be encrypted.
7
+ properties:
8
+ content:
9
+ properties:
10
+ algorithm:
11
+ type: string
12
+ enum:
13
+ - "m.megolm.v1.aes-sha2"
14
+ description: |-
15
+ The encryption algorithm to be used to encrypt messages sent in this
16
+ room.
17
+ rotation_period_ms:
18
+ type: integer
19
+ description: |-
20
+ How long the session should be used before changing it. `604800000`
21
+ (a week) is the recommended default.
22
+ rotation_period_msgs:
23
+ type: integer
24
+ description: |-
25
+ How many messages should be sent before changing the session. `100` is the
26
+ recommended default.
27
+ required:
28
+ - algorithm
29
+ type: object
30
+ state_key:
31
+ description: A zero-length string.
32
+ pattern: '^$'
33
+ type: string
34
+ type:
35
+ enum:
36
+ - m.room.encryption
37
+ type: string
38
+ type: object
@@ -0,0 +1,28 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: 'This event controls whether guest users are allowed to join rooms. If this event is absent, servers should act as if it is present and has the guest_access value "forbidden".'
7
+ properties:
8
+ content:
9
+ properties:
10
+ guest_access:
11
+ description: Whether guests can join the room.
12
+ enum:
13
+ - can_join
14
+ - forbidden
15
+ type: string
16
+ required:
17
+ - guest_access
18
+ type: object
19
+ state_key:
20
+ description: A zero-length string.
21
+ pattern: '^$'
22
+ type: string
23
+ type:
24
+ enum:
25
+ - m.room.guest_access
26
+ type: string
27
+ title: Controls whether guest users are allowed to join rooms.
28
+ type: object
@@ -0,0 +1,30 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: This event controls whether a user can see the events that happened in a room from before they joined.
7
+ properties:
8
+ content:
9
+ properties:
10
+ history_visibility:
11
+ description: Who can see the room history.
12
+ enum:
13
+ - invited
14
+ - joined
15
+ - shared
16
+ - world_readable
17
+ type: string
18
+ required:
19
+ - history_visibility
20
+ type: object
21
+ state_key:
22
+ description: A zero-length string.
23
+ pattern: '^$'
24
+ type: string
25
+ type:
26
+ enum:
27
+ - m.room.history_visibility
28
+ type: string
29
+ title: Controls visibility of history.
30
+ type: object
@@ -0,0 +1,78 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: |
7
+ A room may have one of the following designations:
8
+ * `public` - anyone can join the room without any prior action.
9
+ * `invite` - a user must first receive an invite from someone already in the room
10
+ in order to join.
11
+ * `knock` - a user can request an invite to the room. They can be allowed (invited)
12
+ or denied (kicked/banned) access. Otherwise, users need to be invited in. Only
13
+ available in rooms [which support knocking](/rooms/#feature-matrix).
14
+ * `restricted` - anyone able to satisfy at least one of the allow conditions is
15
+ able to join the room without prior action. Otherwise, an invite is required.
16
+ Only available in rooms [which support the join rule](/rooms/#feature-matrix).
17
+ * `knock_restricted` - a user can request an invite using the same functions offered
18
+ by the `knock` join rule, or can attempt to join having satisfied an allow condition
19
+ per the `restricted` join rule. Only available in rooms
20
+ [which support the join rule](/rooms/#feature-matrix).
21
+ * `private` - reserved without implementation. No significant meaning.
22
+ properties:
23
+ content:
24
+ properties:
25
+ join_rule:
26
+ description: The type of rules used for users wishing to join this room.
27
+ enum:
28
+ - public
29
+ - knock
30
+ - invite
31
+ - private
32
+ - restricted
33
+ - knock_restricted
34
+ type: string
35
+ allow:
36
+ x-addedInMatrixVersion: "1.2"
37
+ description: |-
38
+ For `restricted` rooms, the conditions the user will be tested against. The
39
+ user needs only to satisfy one of the conditions to join the `restricted`
40
+ room. If the user fails to meet any condition, or the condition is unable
41
+ to be confirmed as satisfied, then the user requires an invite to join the
42
+ room. Improper or no `allow` conditions on a `restricted` join rule imply
43
+ the room is effectively invite-only (no conditions can be satisfied).
44
+ type: array
45
+ items:
46
+ type: object
47
+ title: AllowCondition
48
+ properties:
49
+ type:
50
+ type: string
51
+ description: |-
52
+ The type of condition:
53
+ * `m.room_membership` - the user satisfies the condition if they are
54
+ joined to the referenced room.
55
+ enum: ['m.room_membership']
56
+ room_id:
57
+ type: string
58
+ format: mx-room-id
59
+ pattern: "^!"
60
+ description: |-
61
+ Required if `type` is `m.room_membership`. The room ID to check the
62
+ user's membership against. If the user is joined to this room, they
63
+ satisfy the condition and thus are permitted to join the `restricted`
64
+ room.
65
+ required: ['type']
66
+ required:
67
+ - join_rule
68
+ type: object
69
+ state_key:
70
+ description: A zero-length string.
71
+ pattern: '^$'
72
+ type: string
73
+ type:
74
+ enum:
75
+ - m.room.join_rules
76
+ type: string
77
+ title: Describes how users are allowed to join the room.
78
+ type: object