async-matrix 0.1.3 → 1.1.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 (365) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +131 -0
  3. data/data/discord-api-spec/openapi.json +40404 -0
  4. data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
  5. data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
  6. data/data/matrix-spec/api/client-server/admin.yaml +512 -0
  7. data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
  8. data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
  9. data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
  10. data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
  11. data/data/matrix-spec/api/client-server/banning.yaml +177 -0
  12. data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
  13. data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
  14. data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
  15. data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
  16. data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
  17. data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
  18. data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
  19. data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
  20. data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
  21. data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
  22. data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
  23. data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
  24. data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
  25. data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
  26. data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
  27. data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
  28. data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
  29. data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
  30. data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
  31. data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
  32. data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
  33. data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
  34. data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
  35. data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
  36. data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
  37. data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
  38. data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
  39. data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
  40. data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
  41. data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
  42. data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
  43. data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
  44. data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
  45. data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
  46. data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
  47. data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
  48. data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
  49. data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
  50. data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
  51. data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
  52. data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
  53. data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
  54. data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
  55. data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
  56. data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
  57. data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
  58. data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
  59. data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
  60. data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
  61. data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
  62. data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
  63. data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
  64. data/data/matrix-spec/api/client-server/directory.yaml +318 -0
  65. data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
  66. data/data/matrix-spec/api/client-server/filter.yaml +224 -0
  67. data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
  68. data/data/matrix-spec/api/client-server/joining.yaml +238 -0
  69. data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
  70. data/data/matrix-spec/api/client-server/keys.yaml +482 -0
  71. data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
  72. data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
  73. data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
  74. data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
  75. data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
  76. data/data/matrix-spec/api/client-server/login.yaml +321 -0
  77. data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
  78. data/data/matrix-spec/api/client-server/logout.yaml +86 -0
  79. data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
  80. data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
  81. data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
  82. data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
  83. data/data/matrix-spec/api/client-server/openid.yaml +98 -0
  84. data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
  85. data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
  86. data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
  87. data/data/matrix-spec/api/client-server/presence.yaml +169 -0
  88. data/data/matrix-spec/api/client-server/profile.yaml +366 -0
  89. data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
  90. data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
  91. data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
  92. data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
  93. data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
  94. data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
  95. data/data/matrix-spec/api/client-server/registration.yaml +488 -0
  96. data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
  97. data/data/matrix-spec/api/client-server/relations.yaml +382 -0
  98. data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
  99. data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
  100. data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
  101. data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
  102. data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
  103. data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
  104. data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
  105. data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
  106. data/data/matrix-spec/api/client-server/search.yaml +385 -0
  107. data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
  108. data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
  109. data/data/matrix-spec/api/client-server/support.yaml +142 -0
  110. data/data/matrix-spec/api/client-server/sync.yaml +692 -0
  111. data/data/matrix-spec/api/client-server/tags.yaml +183 -0
  112. data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
  113. data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
  114. data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
  115. data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
  116. data/data/matrix-spec/api/client-server/typing.yaml +103 -0
  117. data/data/matrix-spec/api/client-server/users.yaml +136 -0
  118. data/data/matrix-spec/api/client-server/versions.yaml +108 -0
  119. data/data/matrix-spec/api/client-server/voip.yaml +93 -0
  120. data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
  121. data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
  122. data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
  123. data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
  124. data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
  125. data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
  126. data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
  127. data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
  128. data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
  129. data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
  130. data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
  131. data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
  132. data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
  133. data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
  134. data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
  135. data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
  136. data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
  137. data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
  138. data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
  139. data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
  140. data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
  141. data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
  142. data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
  143. data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
  144. data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
  145. data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
  146. data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
  147. data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
  148. data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
  149. data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
  150. data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
  151. data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
  152. data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
  153. data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
  154. data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
  155. data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
  156. data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
  157. data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
  158. data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
  159. data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
  160. data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
  161. data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
  162. data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
  163. data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
  164. data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
  165. data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
  166. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
  167. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
  168. data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
  169. data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
  170. data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
  171. data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
  172. data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
  173. data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
  174. data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
  175. data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
  176. data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
  177. data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
  178. data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
  179. data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
  180. data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
  181. data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
  182. data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
  183. data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
  184. data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
  185. data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
  186. data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
  187. data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
  188. data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
  189. data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
  190. data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
  191. data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
  192. data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
  193. data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
  194. data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
  195. data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
  196. data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
  197. data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
  198. data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
  199. data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
  200. data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
  201. data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
  202. data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
  203. data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
  204. data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
  205. data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
  206. data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
  207. data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
  208. data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
  209. data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
  210. data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
  211. data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
  212. data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
  213. data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
  214. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
  215. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
  216. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
  217. data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
  218. data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
  219. data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
  220. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
  221. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
  222. data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
  223. data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
  224. data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
  225. data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
  226. data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
  227. data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
  228. data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
  229. data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
  230. data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
  231. data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
  232. data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
  233. data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
  234. data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
  235. data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
  236. data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
  237. data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
  238. data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
  239. data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
  240. data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
  241. data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
  242. data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
  243. data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
  244. data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
  245. data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
  246. data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
  247. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
  248. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
  249. data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
  250. data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
  251. data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
  252. data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
  253. data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
  254. data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
  255. data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
  256. data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
  257. data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
  258. data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
  259. data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
  260. data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
  261. data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
  262. data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
  263. data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
  264. data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
  265. data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
  266. data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
  267. data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
  268. data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
  269. data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
  270. data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
  271. data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
  272. data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
  273. data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
  274. data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
  275. data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
  276. data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
  277. data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
  278. data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
  279. data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
  280. data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
  281. data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
  282. data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
  283. data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
  284. data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
  285. data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
  286. data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
  287. data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
  288. data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
  289. data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
  290. data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
  291. data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
  292. data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
  293. data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
  294. data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
  295. data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
  296. data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
  297. data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
  298. data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
  299. data/lib/async/discord/api/path_tree.rb +130 -0
  300. data/lib/async/discord/api.rb +156 -0
  301. data/lib/async/discord/client.rb +286 -0
  302. data/lib/async/discord/error.rb +88 -0
  303. data/lib/async/discord/gateway.rb +362 -0
  304. data/lib/async/discord.rb +16 -0
  305. data/lib/async/matrix/api/chain.rb +584 -0
  306. data/lib/async/matrix/api/concat.rb +105 -0
  307. data/lib/async/matrix/api/path_tree.rb +208 -0
  308. data/lib/async/matrix/api.rb +204 -0
  309. data/lib/async/matrix/application_service/bot.rb +235 -0
  310. data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
  311. data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
  312. data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
  313. data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
  314. data/lib/async/matrix/application_service/config/schema/config.json +61 -0
  315. data/lib/async/matrix/application_service/config/schema/database.json +38 -0
  316. data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
  317. data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
  318. data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
  319. data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
  320. data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
  321. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
  322. data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
  323. data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
  324. data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
  325. data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
  326. data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
  327. data/lib/async/matrix/application_service/config/vivify.rb +113 -0
  328. data/lib/async/matrix/application_service/config.rb +214 -123
  329. data/lib/async/matrix/application_service/dispatcher.rb +115 -113
  330. data/lib/async/matrix/application_service/error_response.rb +26 -26
  331. data/lib/async/matrix/application_service/event.rb +206 -1
  332. data/lib/async/matrix/application_service/server.rb +286 -215
  333. data/lib/async/matrix/application_service/transaction.rb +52 -52
  334. data/lib/async/matrix/application_service/transaction_store.rb +62 -62
  335. data/lib/async/matrix/bridge/discord/db/connection.rb +143 -0
  336. data/lib/async/matrix/bridge/discord/db/file.rb +120 -0
  337. data/lib/async/matrix/bridge/discord/db/guild.rb +122 -0
  338. data/lib/async/matrix/bridge/discord/db/message.rb +162 -0
  339. data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +14 -0
  340. data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +14 -0
  341. data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +23 -0
  342. data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +19 -0
  343. data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +20 -0
  344. data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +19 -0
  345. data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +18 -0
  346. data/lib/async/matrix/bridge/discord/db/portal.rb +152 -0
  347. data/lib/async/matrix/bridge/discord/db/puppet.rb +130 -0
  348. data/lib/async/matrix/bridge/discord/db/reaction.rb +167 -0
  349. data/lib/async/matrix/bridge/discord/db/user.rb +114 -0
  350. data/lib/async/matrix/bridge/discord/db.rb +140 -0
  351. data/lib/async/matrix/client.rb +919 -179
  352. data/lib/async/matrix/connection.rb +8 -8
  353. data/lib/async/matrix/double_puppet_client.rb +84 -0
  354. data/lib/async/matrix/endpoint.rb +45 -45
  355. data/lib/async/matrix/error.rb +49 -43
  356. data/lib/async/matrix/media_client.rb +173 -0
  357. data/lib/async/matrix/notifier.rb +92 -92
  358. data/lib/async/matrix/schema/registry.rb +355 -0
  359. data/lib/async/matrix/schema/validation_error.rb +226 -0
  360. data/lib/async/matrix/schema.rb +174 -0
  361. data/lib/async/matrix/server.rb +8 -7
  362. data/lib/async/matrix/stream.rb +7 -7
  363. data/lib/async/matrix/version.rb +1 -1
  364. data/lib/async/matrix.rb +4 -2
  365. metadata +419 -1
@@ -0,0 +1,28 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+ description: |-
7
+ Persists the user's preferred identity server, or preference to not use
8
+ an identity server at all, in the user's account data.
9
+ properties:
10
+ content:
11
+ type: object
12
+ properties:
13
+ base_url:
14
+ anyOf:
15
+ - type: string
16
+ format: uri
17
+ - type: "null"
18
+ description: |-
19
+ The URL of the identity server the user prefers to use, or `null`
20
+ if the user does not want to use an identity server. This value is
21
+ similar in structure to the `base_url` for identity servers in the
22
+ `.well-known/matrix/client` schema.
23
+ type:
24
+ enum:
25
+ - m.identity_server
26
+ type: string
27
+ title: Identity Server Preference
28
+ type: object
@@ -0,0 +1,30 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+ description: |-
7
+ A map of users which are considered ignored is kept in `account_data`
8
+ in an event type of `m.ignored_user_list`.
9
+ properties:
10
+ content:
11
+ type: object
12
+ properties:
13
+ ignored_users:
14
+ type: object
15
+ description: |-
16
+ The map of users to ignore. This is a mapping of user ID to empty
17
+ object.
18
+ patternProperties:
19
+ "^@":
20
+ type: "object"
21
+ description: "An empty object for future enhancement"
22
+ x-pattern-format: "mx-user-id"
23
+ required:
24
+ - ignored_users
25
+ type:
26
+ enum:
27
+ - m.ignored_user_list
28
+ type: string
29
+ title: Ignored User List
30
+ type: object
@@ -0,0 +1,21 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+ allOf:
4
+ - $ref: core-event-schema/event.yaml
5
+ - title: Invite Permission
6
+ type: object
7
+ description: |-
8
+ The permission configuration for receiving invites for the current account.
9
+ properties:
10
+ content:
11
+ type: object
12
+ properties:
13
+ default_action:
14
+ type: string
15
+ description: |-
16
+ When set to `block`, the user does not wish to receive *any* room invites, and they
17
+ should be rejected automatically by the homeserver.
18
+
19
+ A missing, invalid or unsupported value means that the user wants to receive invites
20
+ as normal. Other parts of the specification might still have effects on invites, like
21
+ [ignoring users](/client-server-api/#ignoring-users).
@@ -0,0 +1,63 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Accepts a previously sent `m.key.verification.start` message.
9
+ properties:
10
+ content:
11
+ properties:
12
+ transaction_id:
13
+ type: string
14
+ description: |-
15
+ Required when sent as a to-device message. An opaque identifier for
16
+ the verification process. Must be the same as the one used for the
17
+ `m.key.verification.start` message.
18
+ key_agreement_protocol:
19
+ type: string
20
+ description: |-
21
+ The key agreement protocol the device is choosing to use, out of the
22
+ options in the `m.key.verification.start` message.
23
+ hash:
24
+ type: string
25
+ description: |-
26
+ The hash method the device is choosing to use, out of the options in
27
+ the `m.key.verification.start` message.
28
+ message_authentication_code:
29
+ type: string
30
+ description: |-
31
+ The message authentication code method the device is choosing to use, out of
32
+ the options in the `m.key.verification.start` message.
33
+ short_authentication_string:
34
+ type: array
35
+ description: |-
36
+ The SAS methods both devices involved in the verification process
37
+ understand. Must be a subset of the options in the `m.key.verification.start`
38
+ message.
39
+ items:
40
+ type: string
41
+ enum: ["decimal", "emoji"]
42
+ commitment:
43
+ type: string
44
+ description: |-
45
+ The hash (encoded as unpadded base64) of the concatenation of the device's
46
+ ephemeral public key (encoded as unpadded base64) and the canonical JSON
47
+ representation of the `content` object of the `m.key.verification.start`
48
+ message.
49
+ m.relates_to:
50
+ $ref: m.key.verification.m.relates_to.yaml
51
+ required:
52
+ - method
53
+ - key_agreement_protocol
54
+ - hash
55
+ - message_authentication_code
56
+ - short_authentication_string
57
+ - commitment
58
+ type: object
59
+ type:
60
+ enum:
61
+ - m.key.verification.accept
62
+ type: string
63
+ type: object
@@ -0,0 +1,72 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Cancels a key verification process/request.
9
+ properties:
10
+ content:
11
+ properties:
12
+ transaction_id:
13
+ type: string
14
+ description: |-
15
+ Required when sent as a to-device message. The opaque identifier for
16
+ the verification process/request.
17
+ reason:
18
+ type: string
19
+ description: |-
20
+ A human readable description of the `code`. The client should only rely on this
21
+ string if it does not understand the `code`.
22
+ code:
23
+ type: string
24
+ # Note: this is not an enum because we go into detail about the different
25
+ # error codes. If we made this an enum, we'd be repeating information.
26
+ # Also, we can't put a real bulleted list in here because the HTML2RST parser
27
+ # cuts the text at weird points, breaking the list completely.
28
+ description: |-
29
+ The error code for why the process/request was cancelled by the user. Error
30
+ codes should use the Java package naming convention if not in the following
31
+ list:
32
+
33
+ * `m.user`: The user cancelled the verification.
34
+
35
+ * `m.timeout`: The verification process timed out. Verification processes
36
+ can define their own timeout parameters.
37
+
38
+ * `m.unknown_transaction`: The device does not know about the given transaction
39
+ ID.
40
+
41
+ * `m.unknown_method`: The device does not know how to handle the requested
42
+ method. This should be sent for `m.key.verification.start` messages and
43
+ messages defined by individual verification processes.
44
+
45
+ * `m.unexpected_message`: The device received an unexpected message. Typically
46
+ raised when one of the parties is handling the verification out of order.
47
+
48
+ * `m.key_mismatch`: The key was not verified.
49
+
50
+ * `m.user_mismatch`: The expected user did not match the user verified.
51
+
52
+ * `m.invalid_message`: The message received was invalid.
53
+
54
+ * `m.accepted`: A `m.key.verification.request` was accepted by a different
55
+ device. The device receiving this error can ignore the verification request.
56
+
57
+ Clients should be careful to avoid error loops. For example, if a device sends
58
+ an incorrect message and the client returns `m.invalid_message` to which it
59
+ gets an unexpected response with `m.unexpected_message`, the client should not
60
+ respond again with `m.unexpected_message` to avoid the other device potentially
61
+ sending another error response.
62
+ m.relates_to:
63
+ $ref: m.key.verification.m.relates_to.yaml
64
+ required:
65
+ - code
66
+ - reason
67
+ type: object
68
+ type:
69
+ enum:
70
+ - m.key.verification.cancel
71
+ type: string
72
+ type: object
@@ -0,0 +1,24 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Indicates that a verification process/request has completed successfully.
9
+ properties:
10
+ content:
11
+ properties:
12
+ transaction_id:
13
+ type: string
14
+ description: |-
15
+ Required when sent as a to-device message. The opaque identifier for
16
+ the verification process/request.
17
+ m.relates_to:
18
+ $ref: m.key.verification.m.relates_to.yaml
19
+ type: object
20
+ type:
21
+ enum:
22
+ - m.key.verification.done
23
+ type: string
24
+ type: object
@@ -0,0 +1,31 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Sends the ephemeral public key for a device to the partner device.
9
+ properties:
10
+ content:
11
+ properties:
12
+ transaction_id:
13
+ type: string
14
+ description: |-
15
+ Required when sent as a to-device message. An opaque identifier for
16
+ the verification process. Must be the same as the one used for the
17
+ `m.key.verification.start` message.
18
+ key:
19
+ type: string
20
+ description: |-
21
+ The device's ephemeral public key, encoded as unpadded base64.
22
+ m.relates_to:
23
+ $ref: m.key.verification.m.relates_to.yaml
24
+ required:
25
+ - key
26
+ type: object
27
+ type:
28
+ enum:
29
+ - m.key.verification.key
30
+ type: string
31
+ type: object
@@ -0,0 +1,23 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ description: |-
5
+ Required when sent as an in-room message. Indicates the
6
+ `m.key.verification.request` that this message is related to. Note that for
7
+ encrypted messages, this property should be in the unencrypted portion of the
8
+ event.
9
+ properties:
10
+ rel_type:
11
+ type: string
12
+ enum:
13
+ - m.reference
14
+ description: |-
15
+ The relationship type. Currently, this can only be an
16
+ [`m.reference`](/client-server-api/#reference-relations) relationship type.
17
+ event_id:
18
+ type: string
19
+ description: |-
20
+ The event ID of the `m.key.verification.request` that this message is
21
+ related to.
22
+ type: object
23
+ title: VerificationRelatesTo
@@ -0,0 +1,43 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Sends the MAC of a device's key to the partner device. The MAC is calculated
9
+ using the method given in `message_authentication_code` property of the
10
+ `m.key.verification.accept` message.
11
+ properties:
12
+ content:
13
+ properties:
14
+ transaction_id:
15
+ type: string
16
+ description: |-
17
+ Required when sent as a to-device message. An opaque identifier for
18
+ the verification process. Must be the same as the one used for the
19
+ `m.key.verification.start` message.
20
+ mac:
21
+ type: object
22
+ description: |-
23
+ A map of the key ID to the MAC of the key, using the algorithm in the
24
+ verification process. The MAC is encoded as unpadded base64.
25
+ additionalProperties:
26
+ type: string
27
+ description: The key's MAC, encoded as unpadded base64.
28
+ keys:
29
+ type: string
30
+ description: |-
31
+ The MAC of the comma-separated, sorted, list of key IDs given in the `mac`
32
+ property, encoded as unpadded base64.
33
+ m.relates_to:
34
+ $ref: m.key.verification.m.relates_to.yaml
35
+ required:
36
+ - mac
37
+ - keys
38
+ type: object
39
+ type:
40
+ enum:
41
+ - m.key.verification.mac
42
+ type: string
43
+ 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/event.yaml
6
+
7
+ description: |-
8
+ Accepts a key verification request. Sent in response to an
9
+ `m.key.verification.request` event.
10
+ properties:
11
+ content:
12
+ properties:
13
+ from_device:
14
+ type: string
15
+ description: |-
16
+ The device ID which is accepting the request.
17
+ transaction_id:
18
+ type: string
19
+ description: |-
20
+ Required when sent as a to-device message. The transaction ID of the
21
+ verification request, as given in the `m.key.verification.request`
22
+ message.
23
+ methods:
24
+ type: array
25
+ description: |-
26
+ The verification methods supported by the sender, corresponding to
27
+ the verification methods indicated in the
28
+ `m.key.verification.request` message.
29
+ items:
30
+ type: string
31
+ m.relates_to:
32
+ $ref: m.key.verification.m.relates_to.yaml
33
+ required:
34
+ - from_device
35
+ - methods
36
+ type: object
37
+ type:
38
+ enum:
39
+ - m.key.verification.ready
40
+ type: string
41
+ type: object
@@ -0,0 +1,47 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Requests a key verification using to-device messaging. When requesting a key
9
+ verification in a room, a `m.room.message` should be used, with
10
+ [`m.key.verification.request`](/client-server-api/#mroommessagemkeyverificationrequest)
11
+ as msgtype.
12
+ properties:
13
+ content:
14
+ properties:
15
+ from_device:
16
+ type: string
17
+ description: |-
18
+ The device ID which is initiating the request.
19
+ transaction_id:
20
+ type: string
21
+ description: |-
22
+ Required when sent as a to-device message. An opaque identifier for
23
+ the verification request. Must be unique with respect to the devices
24
+ involved.
25
+ methods:
26
+ type: array
27
+ description: |-
28
+ The verification methods supported by the sender.
29
+ items:
30
+ type: string
31
+ timestamp:
32
+ type: integer
33
+ format: int64
34
+ description: |-
35
+ Required when sent as a to-device message. The POSIX timestamp in
36
+ milliseconds for when the request was made. If the request is in the
37
+ future by more than 5 minutes or more than 10 minutes in the past,
38
+ the message should be ignored by the receiver.
39
+ required:
40
+ - from_device
41
+ - methods
42
+ type: object
43
+ type:
44
+ enum:
45
+ - m.key.verification.request
46
+ type: string
47
+ type: object
@@ -0,0 +1,45 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Begins a key verification process using the `m.reciprocate.v1` method, after
9
+ scanning a QR code.
10
+ properties:
11
+ content:
12
+ properties:
13
+ from_device:
14
+ type: string
15
+ description: |-
16
+ The device ID which is initiating the process.
17
+ transaction_id:
18
+ type: string
19
+ description: |-
20
+ Required when sent as a to-device message. An opaque identifier for
21
+ the verification process. Must be unique with respect to the devices
22
+ involved. Must be the same as the `transaction_id` given in the
23
+ `m.key.verification.request` if this process is originating from a
24
+ request.
25
+ method:
26
+ type: string
27
+ enum: ["m.reciprocate.v1"]
28
+ description: |-
29
+ The verification method to use.
30
+ secret:
31
+ type: string
32
+ description: |-
33
+ The shared secret from the QR code, encoded using unpadded base64.
34
+ m.relates_to:
35
+ $ref: m.key.verification.m.relates_to.yaml
36
+ required:
37
+ - from_device
38
+ - method
39
+ - secret
40
+ type: object
41
+ type:
42
+ enum:
43
+ - m.key.verification.start
44
+ type: string
45
+ type: object
@@ -0,0 +1,76 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Begins a SAS key verification process using the `m.sas.v1` method.
9
+ properties:
10
+ content:
11
+ properties:
12
+ from_device:
13
+ type: string
14
+ description: |-
15
+ The device ID which is initiating the process.
16
+ transaction_id:
17
+ type: string
18
+ description: |-
19
+ Required when sent as a to-device message. An opaque identifier for
20
+ the verification process. Must be unique with respect to the devices
21
+ involved. Must be the same as the `transaction_id` given in the
22
+ `m.key.verification.request` if this process is originating from a
23
+ request.
24
+ method:
25
+ type: string
26
+ enum: ["m.sas.v1"]
27
+ description: |-
28
+ The verification method to use.
29
+ key_agreement_protocols:
30
+ type: array
31
+ description: |-
32
+ The key agreement protocols the sending device understands. Should
33
+ include at least `curve25519-hkdf-sha256`.
34
+ items:
35
+ type: string
36
+ hashes:
37
+ type: array
38
+ description: |-
39
+ The hash methods the sending device understands. Must include at least
40
+ `sha256`.
41
+ items:
42
+ type: string
43
+ message_authentication_codes:
44
+ type: array
45
+ description: |-
46
+ The message authentication code methods that the sending device understands.
47
+ Must include at least `hkdf-hmac-sha256.v2`. Should also include
48
+ `hkdf-hmac-sha256` for compatibility with older clients, though this
49
+ identifier is deprecated and will be removed in a future version of
50
+ the spec.
51
+ items:
52
+ type: string
53
+ short_authentication_string:
54
+ type: array
55
+ description: |-
56
+ The SAS methods the sending device (and the sending device's user)
57
+ understands. Must include at least `decimal`. Optionally can include
58
+ `emoji`.
59
+ items:
60
+ type: string
61
+ enum: ["decimal", "emoji"]
62
+ m.relates_to:
63
+ $ref: m.key.verification.m.relates_to.yaml
64
+ required:
65
+ - from_device
66
+ - method
67
+ - key_agreement_protocols
68
+ - hashes
69
+ - message_authentication_codes
70
+ - short_authentication_string
71
+ type: object
72
+ type:
73
+ enum:
74
+ - m.key.verification.start
75
+ type: string
76
+ type: object
@@ -0,0 +1,46 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+
7
+ description: |-
8
+ Begins a key verification process. Typically sent as a [to-device](/client-server-api/#send-to-device-messaging) event. The `method`
9
+ field determines the type of verification. The fields in the event will differ depending
10
+ on the `method`. This definition includes fields that are in common among all variants.
11
+ properties:
12
+ content:
13
+ properties:
14
+ from_device:
15
+ type: string
16
+ description: |-
17
+ The device ID which is initiating the process.
18
+ transaction_id:
19
+ type: string
20
+ description: |-
21
+ Required when sent as a to-device message. An opaque identifier for
22
+ the verification process. Must be unique with respect to the devices
23
+ involved. Must be the same as the `transaction_id` given in the
24
+ `m.key.verification.request` if this process is originating from a
25
+ request.
26
+ method:
27
+ type: string
28
+ description: |-
29
+ The verification method to use.
30
+ next_method:
31
+ type: string
32
+ description: |-
33
+ Optional method to use to verify the other user's key with. Applicable
34
+ when the `method` chosen only verifies one user's key. This field will
35
+ never be present if the `method` verifies keys both ways.
36
+ m.relates_to:
37
+ $ref: m.key.verification.m.relates_to.yaml
38
+ required:
39
+ - from_device
40
+ - method
41
+ type: object
42
+ type:
43
+ enum:
44
+ - m.key.verification.start
45
+ type: string
46
+ type: object
@@ -0,0 +1,24 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/event.yaml
6
+ description: |-
7
+ Allows clients to track user preferences about key backup.
8
+ properties:
9
+ content:
10
+ type: object
11
+ properties:
12
+ enabled:
13
+ type: boolean
14
+ description: |-
15
+ True if the user chose to enable key backup. False if the user chose
16
+ to disable key backup.
17
+ required:
18
+ - enabled
19
+ type:
20
+ type: string
21
+ enum:
22
+ - m.key_backup
23
+ title: Key Backup Event
24
+ type: object
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "title": "Unread Marker Event",
5
+ "description": "The current state of the user's unread marker in a room. This event appears in the user's room account data for the room the marker is applicable for.",
6
+ "allOf": [{
7
+ "$ref": "core-event-schema/event.yaml"
8
+ }],
9
+ "properties": {
10
+ "content": {
11
+ "type": "object",
12
+ "properties": {
13
+ "unread": {
14
+ "type": "boolean",
15
+ "description": "Whether the room is marked unread or not."
16
+ }
17
+ },
18
+ "required": ["unread"]
19
+ },
20
+ "type": {
21
+ "type": "string",
22
+ "enum": ["m.marked_unread"]
23
+ }
24
+ },
25
+ "required": ["type", "content"]
26
+ }
@@ -0,0 +1,17 @@
1
+ ---
2
+ $schema: https://json-schema.org/draft/2020-12/schema
3
+
4
+ allOf:
5
+ - $ref: core-event-schema/state_event.yaml
6
+ description: A moderation policy rule which affects room IDs and room aliases.
7
+ properties:
8
+ content:
9
+ $ref: "../moderation_policy_rule.yaml"
10
+ state_key:
11
+ description: An arbitrary string decided upon by the sender.
12
+ type: string
13
+ type:
14
+ enum:
15
+ - m.policy.rule.room
16
+ type: string
17
+ type: object