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,95 @@
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 video clip.
7
+ properties:
8
+ content:
9
+ properties:
10
+ body:
11
+ description: |-
12
+ If `filename` is not set or the value of both properties are
13
+ identical, this is the filename of the original upload. Otherwise,
14
+ this is a caption for the video.
15
+ type: string
16
+ x-changedInMatrixVersion:
17
+ "1.10": This property can act as a caption for the video.
18
+ format:
19
+ description: |-
20
+ The format used in the `formatted_body`. This is required if `formatted_body`
21
+ is specified. Currently only `org.matrix.custom.html` is supported.
22
+ type: string
23
+ x-addedInMatrixVersion: "1.10"
24
+ formatted_body:
25
+ description: |-
26
+ The formatted version of the `body`, when it acts as a caption. This
27
+ is required if `format` is specified.
28
+ type: string
29
+ x-addedInMatrixVersion: "1.10"
30
+ filename:
31
+ description: The original filename of the uploaded file.
32
+ type: string
33
+ x-addedInMatrixVersion: "1.10"
34
+ info:
35
+ description: Metadata about the video clip referred to in `url`.
36
+ properties:
37
+ duration:
38
+ description: The duration of the video in milliseconds.
39
+ type: integer
40
+ h:
41
+ description: The height of the video in pixels.
42
+ type: integer
43
+ w:
44
+ description: The width of the video in pixels.
45
+ type: integer
46
+ mimetype:
47
+ description: The mimetype of the video e.g. `video/mp4`.
48
+ type: string
49
+ size:
50
+ description: The size of the video in bytes.
51
+ type: integer
52
+ thumbnail_url:
53
+ description: |-
54
+ The URL (typically [`mxc://` URI](/client-server-api/#matrix-content-mxc-uris)) to an image thumbnail of
55
+ the video clip. Only present if the thumbnail is unencrypted.
56
+ type: string
57
+ thumbnail_file:
58
+ description: |-
59
+ Information on the encrypted thumbnail file, as specified in
60
+ [End-to-end encryption](/client-server-api/#sending-encrypted-attachments).
61
+ Only present if the thumbnail is encrypted.
62
+ title: EncryptedFile
63
+ type: object
64
+ thumbnail_info:
65
+ allOf:
66
+ - $ref: core-event-schema/msgtype_infos/thumbnail_info.yaml
67
+ description: Metadata about the image referred to in `thumbnail_url`.
68
+ title: VideoInfo
69
+ type: object
70
+ msgtype:
71
+ enum:
72
+ - m.video
73
+ type: string
74
+ url:
75
+ description: |-
76
+ Required if the file is unencrypted. The URL (typically [`mxc://` URI](/client-server-api/#matrix-content-mxc-uris))
77
+ to the video clip.
78
+ type: string
79
+ file:
80
+ description: |-
81
+ Required if the file is encrypted. Information on the encrypted
82
+ file, as specified in
83
+ [End-to-end encryption](/client-server-api/#sending-encrypted-attachments).
84
+ title: EncryptedFile
85
+ type: object
86
+ required:
87
+ - msgtype
88
+ - body
89
+ type: object
90
+ type:
91
+ enum:
92
+ - m.room.message
93
+ type: string
94
+ title: VideoMessage
95
+ type: object
@@ -0,0 +1,25 @@
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 event is used when sending messages in a room. Messages are not limited to be text. The `msgtype` key outlines the type of message, e.g. text, audio, image, video, etc. The `body` key is text and MUST be used with every kind of `msgtype` as a fallback mechanism for when a client cannot render a message. This allows clients to display *something* even if it is just plain text.'
7
+ properties:
8
+ content:
9
+ properties:
10
+ body:
11
+ description: The textual representation of this message.
12
+ type: string
13
+ msgtype:
14
+ description: 'The type of message, e.g. `m.image`, `m.text`'
15
+ type: string
16
+ required:
17
+ - msgtype
18
+ - body
19
+ type: object
20
+ type:
21
+ enum:
22
+ - m.room.message
23
+ type: string
24
+ title: Message
25
+ 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/state_event.yaml
6
+ description: |-
7
+ A room has an opaque room ID which is not human-friendly to read. A room
8
+ alias is human-friendly, but not all rooms have room aliases. The room name
9
+ is a human-friendly string designed to be displayed to the end-user. The
10
+ room name is not unique, as multiple rooms can have the same room name set.
11
+
12
+ If a room has an `m.room.name` event with an absent, null, or empty `name`
13
+ field, it should be treated the same as a room with no `m.room.name` event.
14
+
15
+ An event of this type is automatically created when creating a room using
16
+ `/createRoom` with the `name` key.
17
+ properties:
18
+ content:
19
+ properties:
20
+ name:
21
+ description: The name of the room.
22
+ type: string
23
+ required:
24
+ - name
25
+ type: object
26
+ state_key:
27
+ description: A zero-length string.
28
+ pattern: '^$'
29
+ type: string
30
+ type:
31
+ enum:
32
+ - m.room.name
33
+ type: string
34
+ title: RoomName
35
+ type: object
@@ -0,0 +1,27 @@
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 is used to "pin" particular events in a room for other participants to review later. The order of the pinned events is guaranteed and based upon the order supplied in the event. Clients should be aware that the current user may not be able to see some of the events pinned due to visibility settings in the room. Clients are responsible for determining if a particular event in the pinned list is displayable, and have the option to not display it if it cannot be pinned in the client.
7
+ properties:
8
+ content:
9
+ properties:
10
+ pinned:
11
+ description: An ordered list of event IDs to pin.
12
+ items:
13
+ type: string
14
+ type: array
15
+ required:
16
+ - pinned
17
+ type: object
18
+ state_key:
19
+ description: A zero-length string.
20
+ pattern: '^$'
21
+ type: string
22
+ type:
23
+ enum:
24
+ - m.room.pinned_events
25
+ type: string
26
+ title: Pinned events in a room
27
+ type: object
@@ -0,0 +1,41 @@
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 [Policy Server](/client-server-api/#policy-servers) configuration. If invalid
8
+ or not set, the room does not use a Policy Server.
9
+ properties:
10
+ content:
11
+ properties:
12
+ via:
13
+ description: |-
14
+ The server name to use as a Policy Server. MUST have a joined user in
15
+ the room.
16
+ type: string
17
+ public_keys:
18
+ description: |-
19
+ The unpadded base64-encoded public keys for the Policy Server. MUST contain at
20
+ least `ed25519`.
21
+ type: object
22
+ properties:
23
+ ed25519:
24
+ type: string
25
+ description: The unpadded base64-encoded ed25519 public key for the Policy Server.
26
+ required: ['ed25519']
27
+ additionalProperties:
28
+ description: The unpadded base64-encoded public key for the key algorithm.
29
+ type: string
30
+ type: object
31
+ required:
32
+ - via
33
+ - public_keys
34
+ state_key:
35
+ description: An empty string.
36
+ type: string
37
+ type:
38
+ enum:
39
+ - m.room.policy
40
+ type: string
41
+ type: object
@@ -0,0 +1,139 @@
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 specifies the minimum level a user must have in order to perform a
8
+ certain action. It also specifies the levels of each user in the room.
9
+
10
+ If a `user_id` is in the `users` list, then that `user_id` has the
11
+ associated power level. Otherwise they have the default level
12
+ `users_default`. If `users_default` is not supplied, it is assumed to be
13
+ 0. If the room contains no `m.room.power_levels` event, the room's creator has
14
+ a power level of 100, and all other users have a power level of 0.
15
+
16
+ Except for membership events and redactions, the level required to
17
+ send a certain event is governed purely by `events`, `state_default`
18
+ and `events_default`. If an event type is specified in `events`, then
19
+ the user must have at least the level specified in order to send that
20
+ event. If the event type is not supplied, it defaults to `events_default`
21
+ for message events and `state_default` for state events.
22
+
23
+ If there is no `state_default` in the `m.room.power_levels` event, or
24
+ there is no `m.room.power_levels` event, the `state_default` is 50.
25
+ If there is no `events_default` in the `m.room.power_levels` event,
26
+ or there is no `m.room.power_levels` event, the `events_default` is 0.
27
+
28
+ Membership events are not subject to `events`, `events_default`, or
29
+ `state_default`. Instead, the power level required to invite a user
30
+ to the room, kick a user from the room, or ban a user from the room
31
+ is defined by `invite`, `kick`, and `ban`, respectively. The levels
32
+ for `kick` and `ban` default to 50 if they are not specified in the
33
+ `m.room.power_levels` event, or if the room contains no
34
+ `m.room.power_levels` event. `invite` defaults to 0 in either case.
35
+ Other membership values are handled during event authorization. See
36
+ the authorization rules in [room versions](/rooms) for further details.
37
+
38
+ For redactions of a user's own events, the required power level is
39
+ determined by the `m.room.redaction` event power level, as per `events`
40
+ and `events_default`. The power level required to redact an event sent
41
+ by another user is _additionally_ governed by `redact`. The level for
42
+ `redact` defaults to 50 if it is not specified in the `m.room.power_levels`
43
+ event, or if the room contains no `m.room.power_levels` event.
44
+
45
+ **Note:**
46
+
47
+ The allowed range for power level values is `[-(2**53)+1, (2**53)-1]`,
48
+ as required by the [Canonical JSON specification](/appendices/#canonical-json).
49
+
50
+ properties:
51
+ content:
52
+ properties:
53
+ ban:
54
+ description: The level required to ban a user. Defaults to 50 if unspecified.
55
+ type: integer
56
+ events:
57
+ additionalProperties:
58
+ type: integer
59
+ description: |-
60
+ The level required to send specific event types. This is a mapping from event type to power level required.
61
+
62
+ Though not a default, when the server sends the initial power levels event during [room creation](/client-server-api#creation)
63
+ in [room versions](/rooms) 12 and higher, the `m.room.tombstone` event MUST be explicitly defined and given
64
+ a power level higher than `state_default`. For example, power level 150. Clients may override this using the
65
+ described `power_level_content_override` field.
66
+ x-changedInMatrixVersion:
67
+ "1.16": Described `m.room.tombstone` defaults during creation of a room version 12 or higher room.
68
+ title: Event power levels
69
+ type: object
70
+ events_default:
71
+ description: |-
72
+ The default level required to send message events. Can be
73
+ overridden by the `events` key. Defaults to 0 if unspecified.
74
+ type: integer
75
+ invite:
76
+ description: The level required to invite a user. Defaults to 0 if unspecified.
77
+ type: integer
78
+ kick:
79
+ description: The level required to kick a user. Defaults to 50 if unspecified.
80
+ type: integer
81
+ redact:
82
+ description: The level required to redact an event sent by another user. Defaults to 50 if unspecified.
83
+ type: integer
84
+ state_default:
85
+ description: |-
86
+ The default level required to send state events. Can be overridden
87
+ by the `events` key. Defaults to 50 if unspecified.
88
+ type: integer
89
+ users:
90
+ patternProperties:
91
+ "^@":
92
+ x-pattern-format: mx-user-id
93
+ type: integer
94
+ description: |-
95
+ The power levels for specific users. This is a mapping from `user_id` to power level for that user.
96
+
97
+ **Note**: In [room versions](/rooms) 12 and higher it is not permitted to specify the room creators here.
98
+ x-changedInMatrixVersion:
99
+ "1.16": Added a note that room creators cannot be specified here in room versions 12 and higher.
100
+ title: User power levels
101
+ type: object
102
+ users_default:
103
+ x-changedInMatrixVersion:
104
+ "1.16": The room creator power level now changes depending on room version.
105
+ description: |-
106
+ The power level for users in the room whose `user_id` is not mentioned in the `users` key. Defaults to 0 if
107
+ unspecified.
108
+
109
+ **Note**: In [room versions](/rooms) 1 through 11, when there is no `m.room.power_levels`
110
+ event in the room, the room creator has a power level of 100, and all other users have a
111
+ power level of 0.
112
+
113
+ **Note**: In room versions 12 and higher, room creators have infinite power level regardless
114
+ of the existence of `m.room.power_levels` in the room. When `m.room.power_levels` is not
115
+ in the room however, all other users have a power level of 0.
116
+ type: integer
117
+ notifications:
118
+ properties:
119
+ room:
120
+ type: integer
121
+ description: The level required to trigger an `@room` notification. Defaults to 50 if unspecified.
122
+ additionalProperties:
123
+ type: integer
124
+ description: |-
125
+ The power level requirements for specific notification types.
126
+ This is a mapping from `key` to power level for that notifications key.
127
+ title: Notifications
128
+ type: object
129
+ type: object
130
+ state_key:
131
+ description: A zero-length string.
132
+ pattern: '^$'
133
+ type: string
134
+ type:
135
+ enum:
136
+ - m.room.power_levels
137
+ type: string
138
+ title: Defines the power levels (privileges) of users in the room.
139
+ type: object
@@ -0,0 +1,29 @@
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 event is created by the server to describe which event has been redacted, by whom, and optionally why. The event that has been redacted is specified in the `redacts` event level key. Redacting an event means that all keys not required by the protocol are stripped off, allowing messages to be hidden or allowing admins to remove offensive or illegal content.'
7
+ properties:
8
+ content:
9
+ properties:
10
+ redacts:
11
+ description: The event ID that was redacted. Required for, and present starting in, room version 11.
12
+ type: string
13
+ format: mx-event-id
14
+ pattern: "^\\$"
15
+ reason:
16
+ description: 'The reason for the redaction, if any.'
17
+ type: string
18
+ type: object
19
+ redacts:
20
+ description: Required for, and only present in, room versions 1 - 10. The event ID that was redacted.
21
+ type: string
22
+ format: mx-event-id
23
+ pattern: "^\\$"
24
+ type:
25
+ enum:
26
+ - m.room.redaction
27
+ type: string
28
+ title: Redaction
29
+ type: object
@@ -0,0 +1,88 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ title: Server ACL
5
+ description: |-
6
+ An event to indicate which servers are permitted to participate in the
7
+ room. Server ACLs may allow or deny groups of hosts. All servers participating
8
+ in the room, including those that are denied, are expected to uphold the
9
+ server ACL. Servers that do not uphold the ACLs MUST be added to the denied hosts
10
+ list in order for the ACLs to remain effective.
11
+
12
+ The `allow` and `deny` lists are lists of [glob-style patterns](/appendices#glob-style-matching).
13
+ When comparing against the server ACLs, the suspect server's port
14
+ number must not be considered. Therefore `evil.com`, `evil.com:8448`, and
15
+ `evil.com:1234` would all match rules that apply to `evil.com`, for example.
16
+
17
+ The ACLs are applied to servers when they make requests, and are applied in
18
+ the following order:
19
+
20
+ 1. If there is no `m.room.server_acl` event in the room state, allow.
21
+ 2. If the server name is an IP address (v4 or v6) literal, and `allow_ip_literals`
22
+ is present and `false`, deny.
23
+ 3. If the server name matches an entry in the `deny` list, deny.
24
+ 4. If the server name matches an entry in the `allow` list, allow.
25
+ 5. Otherwise, deny.
26
+
27
+ **Note:**
28
+ Server ACLs do not restrict the events relative to the room DAG via authorisation
29
+ rules, but instead act purely at the network layer to determine which servers are
30
+ allowed to connect and interact with a given room.
31
+
32
+ **Warning:**
33
+ Failing to provide an `allow` rule of some kind will prevent **all**
34
+ servers from participating in the room, including the sender. This renders
35
+ the room unusable. A common allow rule is `[ "*" ]` which would still
36
+ permit the use of the `deny` list without losing the room.
37
+
38
+ **Warning:**
39
+ All compliant servers must implement server ACLs. However, legacy or noncompliant
40
+ servers exist which do not uphold ACLs, and these MUST be manually appended to
41
+ the denied hosts list when setting an ACL to prevent them from leaking events from
42
+ banned servers into a room. Currently, the only way to determine noncompliant hosts is
43
+ to check the `prev_events` of leaked events, therefore detecting servers which
44
+ are not upholding the ACLs. Server versions can also be used to try to detect hosts that
45
+ will not uphold the ACLs, although this is not comprehensive. Server ACLs were added
46
+ in Synapse v0.32.0, although other server implementations and versions exist in the world.
47
+ allOf:
48
+ - $ref: core-event-schema/state_event.yaml
49
+ type: object
50
+ properties:
51
+ content:
52
+ properties:
53
+ allow_ip_literals:
54
+ type: boolean
55
+ description: |-
56
+ True to allow server names that are IP address literals. False to
57
+ deny. Defaults to `true` if missing or otherwise not a boolean.
58
+
59
+ This is strongly recommended to be set to `false` as servers running
60
+ with IP literal names are strongly discouraged in order to require
61
+ legitimate homeservers to be backed by a valid registered domain name.
62
+ allow:
63
+ type: array
64
+ description: |-
65
+ The server names to allow in the room, excluding any port information.
66
+ Each entry is interpreted as a [glob-style pattern](/appendices#glob-style-matching).
67
+
68
+ **This defaults to an empty list when not provided, effectively disallowing
69
+ every server.**
70
+ items:
71
+ type: string
72
+ deny:
73
+ type: array
74
+ description: |-
75
+ The server names to disallow in the room, excluding any port information.
76
+ Each entry is interpreted as a [glob-style pattern](/appendices#glob-style-matching).
77
+
78
+ This defaults to an empty list when not provided.
79
+ items:
80
+ type: string
81
+ type: object
82
+ state_key:
83
+ description: A zero-length string.
84
+ pattern: '^$'
85
+ type: string
86
+ type:
87
+ enum: ['m.room.server_acl']
88
+ type: string
@@ -0,0 +1,79 @@
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
+ Acts as an `m.room.member` invite event, where there isn't a target user_id to
8
+ invite. This event contains a token and a public key whose private key must be
9
+ used to sign the token. Any user who can present that signature may use this
10
+ invitation to join the target room.
11
+ properties:
12
+ content:
13
+ properties:
14
+ display_name:
15
+ description: |-
16
+ A user-readable string which represents the user who has been invited.
17
+ This should not contain the user's third-party ID, as otherwise when
18
+ the invite is accepted it would leak the association between the
19
+ matrix ID and the third-party ID.
20
+ type: string
21
+ key_validity_url:
22
+ description: |-
23
+ A URL which can be fetched, with querystring public_key=public_key, to
24
+ validate whether the key has been revoked. The URL must return a JSON
25
+ object containing a boolean property named 'valid'.
26
+ type: string
27
+ format: uri
28
+ public_key:
29
+ description: |-
30
+ An Ed25519 key with which the token must be signed (though a signature
31
+ from any entry in `public_keys` is also sufficient).
32
+
33
+ The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64),
34
+ using the standard or URL-safe alphabets.
35
+
36
+ This exists for backwards compatibility.
37
+ type: string
38
+ public_keys:
39
+ description: Keys with which the token may be signed.
40
+ items:
41
+ properties:
42
+ key_validity_url:
43
+ description: |-
44
+ An optional URL which can be fetched, with querystring
45
+ `public_key=<public_key>`, to validate whether the key has been
46
+ revoked. The URL must return a JSON object containing a boolean
47
+ property named `valid`. If this URL is absent, the key must be
48
+ considered valid indefinitely.
49
+ type: string
50
+ public_key:
51
+ description: |-
52
+ An Ed25519 key with which the token may be signed.
53
+
54
+ The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64),
55
+ using the standard or URL-safe alphabets.
56
+ type: string
57
+ required:
58
+ - public_key
59
+ title: PublicKeys
60
+ type: object
61
+ type: array
62
+ required:
63
+ - display_name
64
+ - key_validity_url
65
+ - public_key
66
+ type: object
67
+ state_key:
68
+ description: |-
69
+ The token, of which a signature must be produced in order to join the
70
+ room.
71
+ type: string
72
+ type:
73
+ enum:
74
+ - m.room.third_party_invite
75
+ type: string
76
+ title: |-
77
+ An invitation to a room issued to a third-party identifier, rather than a
78
+ matrix user ID.
79
+ type: object
@@ -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 state event signifying that a room has been upgraded to a different room version, and that clients should go there.'
7
+ properties:
8
+ content:
9
+ properties:
10
+ body:
11
+ type: string
12
+ description: A server-defined message.
13
+ replacement_room:
14
+ type: string
15
+ description: The room ID of the new room the client should be visiting.
16
+ required:
17
+ - replacement_room
18
+ - body
19
+ type: object
20
+ state_key:
21
+ description: A zero-length string.
22
+ pattern: '^$'
23
+ type: string
24
+ type:
25
+ enum:
26
+ - m.room.tombstone
27
+ type: string
28
+ title: Indication that the room has been upgraded.
29
+ type: object
@@ -0,0 +1,53 @@
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 topic is a short message detailing what is currently being discussed
8
+ in the room. It can also be used as a way to display extra information
9
+ about the room, which may not be suitable for the room name. The room
10
+ topic can also be set when creating a room using
11
+ [`/createRoom`](client-server-api/#post_matrixclientv3createroom), either
12
+ with the `topic` key or by specifying a full event in `initial_state`.
13
+
14
+ If the `topic` property is absent, null, or empty then the topic is unset. In other words,
15
+ an empty `topic` property effectively resets the room to having no topic.
16
+
17
+ In order to prevent formatting abuse in room topics, clients SHOULD
18
+ limit the length of topics during both entry and display, for instance,
19
+ by capping the number of displayed lines. Additionally, clients SHOULD
20
+ ignore things like headings and enumerations (or format them as regular
21
+ text).
22
+ properties:
23
+ content:
24
+ properties:
25
+ topic:
26
+ description: |-
27
+ The topic in plain text.
28
+
29
+ This SHOULD duplicate the content of the `text/plain`
30
+ representation in `m.topic` if any exists.
31
+ type: string
32
+ m.topic:
33
+ type: object
34
+ title: TopicContentBlock
35
+ x-addedInMatrixVersion: "1.15"
36
+ description: |-
37
+ Textual representation of the room topic in different mimetypes.
38
+ properties:
39
+ m.text:
40
+ $ref: components/m_text_content_block.yaml
41
+ required:
42
+ - topic
43
+ type: object
44
+ state_key:
45
+ description: A zero-length string.
46
+ pattern: '^$'
47
+ type: string
48
+ type:
49
+ enum:
50
+ - m.room.topic
51
+ type: string
52
+ title: Topic
53
+ type: object