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,23 @@
1
+ {
2
+ "$ref": "core/room_event.json",
3
+ "type": "m.room.message",
4
+ "content": {
5
+ "body": "Gangnam Style",
6
+ "url": "mxc://example.org/a526eYUSFFxlgbQYZmo442",
7
+ "info": {
8
+ "thumbnail_url": "mxc://example.org/FHyPlCeYUSFFxlgbQYZmoEoe",
9
+ "thumbnail_info": {
10
+ "mimetype": "image/jpeg",
11
+ "size": 46144,
12
+ "w": 300,
13
+ "h": 300
14
+ },
15
+ "w": 480,
16
+ "h": 320,
17
+ "duration": 2140786,
18
+ "size": 1563685,
19
+ "mimetype": "video/mp4"
20
+ },
21
+ "msgtype": "m.video"
22
+ }
23
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.name",
4
+ "state_key": "",
5
+ "content": {
6
+ "name": "The room name"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.pinned_events",
4
+ "state_key": "",
5
+ "content": {
6
+ "pinned": ["$someevent:example.org"]
7
+ }
8
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.policy",
4
+ "state_key": "",
5
+ "content": {
6
+ "via": "policy.example.org",
7
+ "public_keys": {
8
+ "ed25519": "6yhHGKhCiXTSEN2ksjV7kX_N6rBQZ3Xb-M7LlC6NS-s"
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.power_levels",
4
+ "state_key": "",
5
+ "content": {
6
+ "ban": 50,
7
+ "events": {
8
+ "m.room.name": 100,
9
+ "m.room.power_levels": 100
10
+ },
11
+ "events_default": 0,
12
+ "invite": 50,
13
+ "kick": 50,
14
+ "redact": 50,
15
+ "state_default": 50,
16
+ "users": {
17
+ "@example:localhost": 100
18
+ },
19
+ "users_default": 0,
20
+ "notifications": {
21
+ "room": 20
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$ref": "core/room_event.json",
3
+ "type": "m.room.redaction",
4
+ "content": {
5
+ "redacts": "$fukweghifu23:localhost",
6
+ "reason": "Spamming"
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.server_acl",
4
+ "state_key": "",
5
+ "content": {
6
+ "allow_ip_literals": false,
7
+ "allow": ["*"],
8
+ "deny": ["*.evil.com", "evil.com"]
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.third_party_invite",
4
+ "state_key": "pc98",
5
+ "content": {
6
+ "display_name": "Alice Margatroid",
7
+ "key_validity_url": "https://magic.forest/verifykey",
8
+ "public_key": "abc123",
9
+ "public_keys": [{
10
+ "public_key": "def456",
11
+ "key_validity_url": "https://magic.forest/verifykey"
12
+ }]
13
+ }
14
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.tombstone",
4
+ "state_key": "",
5
+ "content": {
6
+ "body": "This room has been replaced",
7
+ "replacement_room": "!newroom:example.org"
8
+ }
9
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.room.topic",
4
+ "state_key": "",
5
+ "content": {
6
+ "m.topic": {
7
+ "m.text": [ {
8
+ "mimetype": "text/html",
9
+ "body": "An <em>interesting</em> room topic"
10
+ }, {
11
+ "body": "An interesting room topic"
12
+ }]
13
+ },
14
+ "topic": "An interesting room topic"
15
+ }
16
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$ref": "core/event.json",
3
+ "type": "m.room_key.withheld",
4
+ "content": {
5
+ "algorithm": "m.megolm.v1.aes-sha2",
6
+ "room_id": "!Cuyf34gef24t:localhost",
7
+ "session_id": "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ",
8
+ "sender_key": "RF3s+E7RkTQTGF2d8Deol0FkQvgII2aJDf3/Jp5mxVU",
9
+ "code": "m.unverified",
10
+ "reason": "Device not verified"
11
+ }
12
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$ref": "core/event.json",
3
+ "type": "m.room_key",
4
+ "content": {
5
+ "algorithm": "m.megolm.v1.aes-sha2",
6
+ "room_id": "!Cuyf34gef24t:localhost",
7
+ "session_id": "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ",
8
+ "session_key": "AgAAAADxKHa9uFxcXzwYoNueL5Xqi69IkD4sni8LlfJL7qNBEY..."
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "content": {
3
+ "action": "request_cancellation",
4
+ "requesting_device_id": "RJYKSTBOIE",
5
+ "request_id": "1495474790150.19"
6
+ },
7
+ "type": "m.room_key_request"
8
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "content": {
3
+ "body": {
4
+ "algorithm": "m.megolm.v1.aes-sha2",
5
+ "room_id": "!Cuyf34gef24t:localhost",
6
+ "session_id": "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ",
7
+ "sender_key": "RF3s+E7RkTQTGF2d8Deol0FkQvgII2aJDf3/Jp5mxVU"
8
+ },
9
+ "action": "request",
10
+ "requesting_device_id": "RJYKSTBOIE",
11
+ "request_id": "1495474790150.19"
12
+ },
13
+ "type": "m.room_key_request"
14
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "m.secret.request",
3
+ "content": {
4
+ "name": "org.example.some.secret",
5
+ "action": "request",
6
+ "requesting_device_id": "ABCDEFG",
7
+ "request_id": "randomly_generated_id_9573"
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "m.secret.send",
3
+ "content": {
4
+ "request_id": "randomly_generated_id_9573",
5
+ "secret": "ThisIsASecretDon'tTellAnyone"
6
+ }
7
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.space.child",
4
+ "state_key": "!roomid:example.org",
5
+ "content": {
6
+ "suggested": true,
7
+ "via": ["example.org", "other.example.org"],
8
+ "order": "lexicographically_compare_me"
9
+ }
10
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$ref": "core/state_event.json",
3
+ "type": "m.space.parent",
4
+ "state_key": "!parent_roomid:example.org",
5
+ "content": {
6
+ "canonical": true,
7
+ "via": ["example.org", "other.example.org"]
8
+ }
9
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$ref": "core/room_event.json",
3
+ "type": "m.sticker",
4
+ "content": {
5
+ "body": "Landing",
6
+ "info": {
7
+ "mimetype": "image/png",
8
+ "thumbnail_info": {
9
+ "mimetype": "image/png",
10
+ "h": 200,
11
+ "w": 140,
12
+ "size": 73602,
13
+ "is_animated": true
14
+ },
15
+ "h": 200,
16
+ "thumbnail_url": "mxc://matrix.org/sHhqkFCvSkFwtmvtETOtKnLP",
17
+ "w": 140,
18
+ "size": 73602
19
+ },
20
+ "url": "mxc://matrix.org/sHhqkFCvSkFwtmvtETOtKnLP"
21
+ }
22
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$ref": "core/event.json",
3
+ "type": "m.tag",
4
+ "content": {
5
+ "tags": {
6
+ "u.work": {"order": 0.9}
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "$ref": "core/room_edu.json",
3
+ "type": "m.typing",
4
+ "content": {
5
+ "user_ids": ["@alice:matrix.org", "@bob:example.com"]
6
+ }
7
+ }
@@ -0,0 +1,32 @@
1
+ # Copyright 2020 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ $schema: https://json-schema.org/draft/2020-12/schema
15
+
16
+ properties:
17
+ entity:
18
+ description: |-
19
+ The entity affected by this rule. Glob characters `*` and `?` can be used
20
+ to match zero or more characters or exactly one character respectively.
21
+ type: string
22
+ recommendation:
23
+ description: The suggested action to take. Currently only `m.ban` is specified.
24
+ type: string
25
+ reason:
26
+ description: The human-readable description for the `recommendation`.
27
+ type: string
28
+ type: object
29
+ required:
30
+ - entity
31
+ - recommendation
32
+ - reason
@@ -0,0 +1,28 @@
1
+ type: array
2
+ description: |-
3
+ An ordered array of textual representations in different mimetypes.
4
+
5
+ Senders SHOULD specify at least one representation and SHOULD always
6
+ include a plaintext representation.
7
+
8
+ Receivers SHOULD use the first representation in the array that
9
+ they understand.
10
+ title: TextContentBlock
11
+ items:
12
+ type: object
13
+ title: TextualRepresentation
14
+ properties:
15
+ mimetype:
16
+ type: string
17
+ description: The mimetype. Defaults to `text/plain` if omitted.
18
+ example: "text/html"
19
+ body:
20
+ type: string
21
+ description: |-
22
+ The string content.
23
+
24
+ Clients SHOULD validate and sanitize the content as they do
25
+ for rich content associated with [`msgtype`](/client-server-api/#mroommessage-msgtypes)
26
+ of [`m.room.message`](/client-server-api/#mroommessage).
27
+ required:
28
+ - body
@@ -0,0 +1,43 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ type: object
4
+ x-addedInMatrixVersion: "1.10"
5
+ description: |-
6
+ Metadata describing the [streams](/client-server-api/#streams) that will be
7
+ sent.
8
+
9
+ This is a map of stream ID to metadata about the stream.
10
+ additionalProperties:
11
+ type: object
12
+ title: StreamMetadata
13
+ description: Metadata describing a stream.
14
+ properties:
15
+ purpose:
16
+ type: string
17
+ enum:
18
+ - m.usermedia
19
+ - m.screenshare
20
+ description: |-
21
+ The purpose of the stream.
22
+
23
+ The possible values are:
24
+
25
+ * `m.usermedia`: Stream that contains the webcam and/or microphone
26
+ tracks.
27
+ * `m.screenshare`: Stream with the screen-sharing tracks.
28
+ audio_muted:
29
+ type: boolean
30
+ description: |-
31
+ Whether the audio track in the stream is muted.
32
+
33
+ Defaults to `false` if not present.
34
+ x-addedInMatrixVersion: "1.11"
35
+ video_muted:
36
+ type: boolean
37
+ description: |-
38
+ Whether the video track in the stream is muted.
39
+
40
+ Defaults to `false` if not present.
41
+ x-addedInMatrixVersion: "1.11"
42
+ required:
43
+ - purpose
@@ -0,0 +1,48 @@
1
+ title: SignedThirdPartyInvite
2
+ description: |-
3
+ A block of content which has been signed by the identity server, which
4
+ homeservers can use to verify the event. Clients should ignore this.
5
+ type: object
6
+ properties:
7
+ mxid:
8
+ description: |-
9
+ The user ID that has been bound to the third-party identifier.
10
+ type: string
11
+ format: mx-user-id
12
+ pattern: "^@"
13
+ example: "@alice:example.org"
14
+ signatures:
15
+ title: IdentityServerSignatures
16
+ description: |-
17
+ The identity server signatures for this block. This is a map of identity
18
+ server name to signing key identifier to base64-encoded signature.
19
+
20
+ The signatures are calculated using the process described at
21
+ [Signing JSON](/appendices/#signing-json).
22
+ type: object
23
+ patternProperties:
24
+ "":
25
+ x-pattern-format: mx-server-name
26
+ type: object
27
+ additionalProperties:
28
+ type: string
29
+ format: mx-unpadded-base64
30
+ example: {
31
+ "magic.forest": {
32
+ "ed25519:3": "fQpGIW1Snz+pwLZu6sTy2aHy/DYWWTspTJRPyNp0PKkymfIsNffysMl6ObMMFdIJhk6g6pwlIqZ54rxo8SLmAg"
33
+ }
34
+ }
35
+ token:
36
+ description: |-
37
+ The token generated by the identity server at the
38
+ [`/store_invite`](/identity-service-api/#post_matrixidentityv2store-invite)
39
+ endpoint.
40
+
41
+ It matches the `state_key` of the corresponding [`m.room.third_party_invite`](/client-server-api/#mroomthird_party_invite)
42
+ event.
43
+ type: string
44
+ example: "abc123"
45
+ required:
46
+ - mxid
47
+ - signatures
48
+ - token
@@ -0,0 +1,27 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ description: "The content of all call events shares a set of common fields: those
4
+ of room events and some additional VoIP specific fields."
5
+ properties:
6
+ call_id:
7
+ type: string
8
+ description: The ID of the call this event relates to.
9
+ version:
10
+ type: string
11
+ description: The version of the VoIP specification this message adheres to.
12
+ This specification is version 1. This field is a string such that experimental
13
+ implementations can use non-integer versions. This field was an integer
14
+ in the previous spec version and implementations must accept an integer
15
+ 0.
16
+ party_id:
17
+ type: string
18
+ description: 'This identifies the party that sent this event. A client may
19
+ choose to re-use the device ID from end-to-end cryptography for the value
20
+ of this field.'
21
+ x-addedInMatrixVersion: "1.7"
22
+ required:
23
+ - call_id
24
+ - version
25
+ - party_id
26
+ title: CallEvent
27
+ type: object
@@ -0,0 +1,16 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ description: The basic set of fields all events must have.
4
+ properties:
5
+ content:
6
+ description: The fields in this object will vary depending on the type of event.
7
+ When interacting with the REST API, this is the HTTP body.
8
+ type: object
9
+ type:
10
+ description: The type of event, as defined by [the event type specification](/client-server-api/#types-of-room-events).
11
+ type: string
12
+ required:
13
+ - type
14
+ - content
15
+ title: Event
16
+ type: object
@@ -0,0 +1,30 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ description: Metadata about an avatar image.
4
+ properties:
5
+ h:
6
+ description: |-
7
+ The intended display height of the image in pixels. This may
8
+ differ from the intrinsic dimensions of the image file.
9
+ type: integer
10
+ w:
11
+ description: |-
12
+ The intended display width of the image in pixels. This may
13
+ differ from the intrinsic dimensions of the image file.
14
+ type: integer
15
+ mimetype:
16
+ description: The mimetype of the image, e.g. `image/jpeg`.
17
+ type: string
18
+ size:
19
+ description: Size of the image in bytes.
20
+ type: integer
21
+ thumbnail_url:
22
+ description: |-
23
+ The URL (typically [`mxc://` URI](/client-server-api/#matrix-content-mxc-uris)) to a thumbnail of the image.
24
+ type: string
25
+ thumbnail_info:
26
+ allOf:
27
+ - $ref: thumbnail_info.yaml
28
+ description: Metadata about the image referred to in `thumbnail_url`.
29
+ title: AvatarInfo
30
+ type: object
@@ -0,0 +1,52 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ description: Metadata about an image.
4
+ properties:
5
+ h:
6
+ description: |-
7
+ The intended display height of the image in pixels. This may
8
+ differ from the intrinsic dimensions of the image file.
9
+ type: integer
10
+ w:
11
+ description: |-
12
+ The intended display width of the image in pixels. This may
13
+ differ from the intrinsic dimensions of the image file.
14
+ type: integer
15
+ mimetype:
16
+ description: The mimetype of the image, e.g. `image/jpeg`.
17
+ type: string
18
+ size:
19
+ description: Size of the image in bytes.
20
+ type: integer
21
+ thumbnail_url:
22
+ description: |-
23
+ The URL (typically [`mxc://` URI](/client-server-api/#matrix-content-mxc-uris)) to a thumbnail of the image.
24
+ Only present if the thumbnail is unencrypted.
25
+ type: string
26
+ thumbnail_file:
27
+ description: |-
28
+ Information on the encrypted thumbnail file, as specified in
29
+ [End-to-end encryption](/client-server-api/#sending-encrypted-attachments).
30
+ Only present if the thumbnail is encrypted.
31
+ title: EncryptedFile
32
+ type: object
33
+ thumbnail_info:
34
+ allOf:
35
+ - $ref: thumbnail_info.yaml
36
+ description: Metadata about the image referred to in `thumbnail_url`.
37
+ is_animated:
38
+ x-addedInMatrixVersion: "1.18"
39
+ description: |-
40
+ If this flag is `true`, the original image SHOULD be assumed to be
41
+ animated. If this flag is `false`, the original image SHOULD be assumed to
42
+ NOT be animated.
43
+
44
+ If a sending client is unable to determine whether an image is animated,
45
+ it SHOULD leave the flag unset.
46
+
47
+ Receiving clients MAY use this flag to optimize whether to download the
48
+ original image rather than a thumbnail if it is animated, but they SHOULD
49
+ NOT trust this flag.
50
+ type: boolean
51
+ title: ImageInfo
52
+ type: object
@@ -0,0 +1,22 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ description: Metadata about a thumbnail image.
4
+ properties:
5
+ h:
6
+ description: |-
7
+ The intended display height of the image in pixels. This may
8
+ differ from the intrinsic dimensions of the image file.
9
+ type: integer
10
+ w:
11
+ description: |-
12
+ The intended display width of the image in pixels. This may
13
+ differ from the intrinsic dimensions of the image file.
14
+ type: integer
15
+ mimetype:
16
+ description: The mimetype of the image, e.g. `image/jpeg`.
17
+ type: string
18
+ size:
19
+ description: Size of the image in bytes.
20
+ type: integer
21
+ title: ThumbnailInfo
22
+ type: object
@@ -0,0 +1,17 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ title: RoomEvent
4
+ description: Room Events have the following fields.
5
+ allOf:
6
+ - $ref: sync_room_event.yaml
7
+ - type: object
8
+ properties:
9
+ room_id:
10
+ description: |-
11
+ The ID of the room associated with this event. Will not be present on events
12
+ that arrive through `/sync`, despite being required everywhere else.
13
+ type: string
14
+ format: mx-room-id
15
+ pattern: "^!"
16
+ required:
17
+ - room_id
@@ -0,0 +1,8 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+
3
+ allOf:
4
+ - $ref: room_event.yaml
5
+ - $ref: sync_state_event.yaml
6
+ description: State Events have the following fields.
7
+ title: StateEvent
8
+ type: object
@@ -0,0 +1,48 @@
1
+ # Copyright 2019 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # Note: this, and the example, are in the `event-schemas` directory because
16
+ # the CS API uses a symlink. In order for the `m.room.member` event to
17
+ # reference this, we'd need to use relative pathing. The symlink makes this
18
+ # difficult because the schema would be at two different locations, with
19
+ # different relative pathing.
20
+
21
+ $schema: https://json-schema.org/draft/2020-12/schema
22
+
23
+ title: StrippedStateEvent
24
+ type: object
25
+ description: |-
26
+ A stripped down state event, with only the `type`, `state_key`,
27
+ `sender`, and `content` keys.
28
+ properties:
29
+ content:
30
+ description: The `content` for the event.
31
+ title: EventContent
32
+ type: object
33
+ state_key:
34
+ description: The `state_key` for the event.
35
+ type: string
36
+ type:
37
+ description: The `type` for the event.
38
+ type: string
39
+ sender:
40
+ description: The `sender` for the event.
41
+ type: string
42
+ format: mx-user-id
43
+ pattern: "^@"
44
+ required:
45
+ - type
46
+ - state_key
47
+ - content
48
+ - sender