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,147 @@
1
+ # Copyright 2022 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
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server events in room by date API
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/timestamp_to_event":
20
+ get:
21
+ x-addedInMatrixVersion: "1.6"
22
+ summary: Get the closest event ID to the given timestamp
23
+ description: |-
24
+ Get the ID of the event closest to the given timestamp, in the
25
+ direction specified by the `dir` parameter.
26
+
27
+ If the server does not have all of the room history and does not have
28
+ an event suitably close to the requested timestamp, it can use the
29
+ corresponding [federation endpoint](/server-server-api/#get_matrixfederationv1timestamp_to_eventroomid)
30
+ to ask other servers for a suitable event.
31
+
32
+ After calling this endpoint, clients can call
33
+ [`/rooms/{roomId}/context/{eventId}`](/client-server-api/#get_matrixclientv3roomsroomidcontexteventid)
34
+ to obtain a pagination token to retrieve the events around the returned event.
35
+
36
+ The event returned by this endpoint could be an event that the client
37
+ cannot render, and so may need to paginate in order to locate an event
38
+ that it can display, which may end up being outside of the client's
39
+ suitable range. Clients can employ different strategies to display
40
+ something reasonable to the user. For example, the client could try
41
+ paginating in one direction for a while, while looking at the
42
+ timestamps of the events that it is paginating through, and if it
43
+ exceeds a certain difference from the target timestamp, it can try
44
+ paginating in the opposite direction. The client could also simply
45
+ paginate in one direction and inform the user that the closest event
46
+ found in that direction is outside of the expected range.
47
+ operationId: getEventByTimestamp
48
+ security:
49
+ - accessTokenQuery: []
50
+ - accessTokenBearer: []
51
+ parameters:
52
+ - in: path
53
+ name: roomId
54
+ description: The ID of the room to search
55
+ required: true
56
+ example: "!636q39766251:matrix.org"
57
+ schema:
58
+ type: string
59
+ format: mx-room-id
60
+ pattern: "^!"
61
+ - in: query
62
+ name: ts
63
+ description: |-
64
+ The timestamp to search from, as given in milliseconds
65
+ since the Unix epoch.
66
+ required: true
67
+ example: 1432684800000
68
+ schema:
69
+ type: integer
70
+ - in: query
71
+ name: dir
72
+ description: The direction in which to search. `f` for forwards, `b` for
73
+ backwards.
74
+ required: true
75
+ example: f
76
+ schema:
77
+ type: string
78
+ enum:
79
+ - f
80
+ - b
81
+ responses:
82
+ "200":
83
+ description: An event was found matching the search parameters.
84
+ content:
85
+ application/json:
86
+ schema:
87
+ type: object
88
+ properties:
89
+ event_id:
90
+ type: string
91
+ format: mx-event-id
92
+ pattern: "^\\$"
93
+ description: The ID of the event found
94
+ origin_server_ts:
95
+ type: integer
96
+ description: |-
97
+ The event's timestamp, in milliseconds since the Unix epoch.
98
+ This makes it easy to do a quick comparison to see if the
99
+ `event_id` fetched is too far out of range to be useful for your
100
+ use case.
101
+ required:
102
+ - event_id
103
+ - origin_server_ts
104
+ examples:
105
+ response:
106
+ value: {
107
+ "event_id": "$143273582443PhrSn:example.org",
108
+ "origin_server_ts": 1432735824653
109
+ }
110
+ "404":
111
+ description: No event was found.
112
+ content:
113
+ application/json:
114
+ schema:
115
+ $ref: definitions/errors/error.yaml
116
+ examples:
117
+ response:
118
+ value: {
119
+ "errcode": "M_NOT_FOUND",
120
+ "error": "Unable to find event from 1432684800000 in forward direction"
121
+ }
122
+ "429":
123
+ description: This request was rate-limited.
124
+ content:
125
+ application/json:
126
+ schema:
127
+ $ref: definitions/errors/rate_limited.yaml
128
+ tags:
129
+ - Room participation
130
+ servers:
131
+ - url: "{protocol}://{hostname}{basePath}"
132
+ variables:
133
+ protocol:
134
+ enum:
135
+ - http
136
+ - https
137
+ default: https
138
+ hostname:
139
+ default: localhost:8008
140
+ basePath:
141
+ default: /_matrix/client/v1
142
+ components:
143
+ securitySchemes:
144
+ accessTokenQuery:
145
+ $ref: definitions/security.yaml#/accessTokenQuery
146
+ accessTokenBearer:
147
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,188 @@
1
+ openapi: 3.1.0
2
+ info:
3
+ title: Matrix Client-Server Rooms API
4
+ version: 1.0.0
5
+ paths:
6
+ "/rooms/{roomId}/initialSync":
7
+ get:
8
+ summary: Snapshot the current state of a room and its most recent messages.
9
+ description: |-
10
+ Get a copy of the current state and the most recent messages in a room.
11
+
12
+ This endpoint should now exclusively be used for "peeking" into viewable rooms
13
+ you're not a member of ([Room Previews](/client-server-api/#room-previews)).
14
+ Using this endpoint for something other than peeking was deprecated in r0 of this specification.
15
+ The relevant information for syncing is now returned by the
16
+ [`/sync`](/client-server-api/#get_matrixclientv3sync) API. See the
17
+ [migration guide](https://matrix.org/docs/guides/migrating-from-client-server-api-v-1#deprecated-endpoints).
18
+ operationId: roomInitialSync
19
+ security:
20
+ - accessTokenQuery: []
21
+ - accessTokenBearer: []
22
+ parameters:
23
+ - in: path
24
+ name: roomId
25
+ description: The room to get the data.
26
+ required: true
27
+ example: "!636q39766251:example.com"
28
+ schema:
29
+ type: string
30
+ format: mx-room-id
31
+ pattern: "^!"
32
+ responses:
33
+ "200":
34
+ description: The current state of the room
35
+ content:
36
+ application/json:
37
+ schema:
38
+ title: RoomInfo
39
+ type: object
40
+ properties:
41
+ room_id:
42
+ type: string
43
+ format: mx-room-id
44
+ pattern: "^!"
45
+ description: The ID of this room.
46
+ membership:
47
+ type: string
48
+ description: The user's membership state in this room.
49
+ enum:
50
+ - invite
51
+ - join
52
+ - leave
53
+ - ban
54
+ messages:
55
+ type: object
56
+ title: PaginationChunk
57
+ description: The pagination chunk for this room.
58
+ properties:
59
+ start:
60
+ type: string
61
+ description: |-
62
+ A token which correlates to the start of `chunk`. Can be passed to
63
+ [`/rooms/<room_id>/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages)
64
+ to retrieve earlier events.
65
+
66
+ If no earlier events are available, this property may be omitted from
67
+ the response.
68
+ end:
69
+ type: string
70
+ description: |-
71
+ A token which correlates to the end of `chunk`. Can be passed to
72
+ [`/rooms/<room_id>/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages)
73
+ to retrieve later events.
74
+ chunk:
75
+ type: array
76
+ description: |-
77
+ If the user is a member of the room this will be a
78
+ list of the most recent messages for this room. If
79
+ the user has left the room this will be the
80
+ messages that preceded them leaving. This array
81
+ will consist of at most `limit` elements.
82
+ items:
83
+ $ref: definitions/client_event.yaml
84
+ required:
85
+ - end
86
+ - chunk
87
+ state:
88
+ type: array
89
+ description: |-
90
+ If the user is a member of the room this will be the
91
+ current state of the room as a list of events. If the
92
+ user has left the room this will be the state of the
93
+ room when they left it.
94
+ items:
95
+ $ref: definitions/client_event.yaml
96
+ visibility:
97
+ type: string
98
+ enum:
99
+ - private
100
+ - public
101
+ description: |-
102
+ Whether this room is visible to the `/publicRooms` API
103
+ or not.
104
+ account_data:
105
+ type: array
106
+ description: The private data that this user has attached to this room.
107
+ items:
108
+ title: Event
109
+ type: object
110
+ allOf:
111
+ - $ref: ../../event-schemas/schema/core-event-schema/event.yaml
112
+ required:
113
+ - room_id
114
+ examples:
115
+ response:
116
+ value: {
117
+ "membership": "join",
118
+ "messages": {
119
+ "chunk": [
120
+ {
121
+ "room_id": "!636q39766251:example.com",
122
+ "$ref": "../../event-schemas/examples/m.room.message$m.text.yaml"
123
+ },
124
+ {
125
+ "room_id": "!636q39766251:example.com",
126
+ "$ref": "../../event-schemas/examples/m.room.message$m.file.yaml"
127
+ }
128
+ ],
129
+ "end": "s3456_9_0",
130
+ "start": "t44-3453_9_0"
131
+ },
132
+ "room_id": "!636q39766251:example.com",
133
+ "state": [
134
+ {
135
+ "room_id": "!636q39766251:example.com",
136
+ "$ref": "../../event-schemas/examples/m.room.join_rules.yaml"
137
+ },
138
+ {
139
+ "room_id": "!636q39766251:example.com",
140
+ "$ref": "../../event-schemas/examples/m.room.member.yaml"
141
+ },
142
+ {
143
+ "room_id": "!636q39766251:example.com",
144
+ "$ref": "../../event-schemas/examples/m.room.create.yaml"
145
+ },
146
+ {
147
+ "room_id": "!636q39766251:example.com",
148
+ "$ref": "../../event-schemas/examples/m.room.power_levels.yaml"
149
+ }
150
+ ],
151
+ "visibility": "private",
152
+ "account_data": [
153
+ {
154
+ "type": "m.tag",
155
+ "content": {
156
+ "tags": {
157
+ "work": {
158
+ "order": "1"
159
+ }
160
+ }
161
+ }
162
+ }
163
+ ]
164
+ }
165
+ "403":
166
+ description: |
167
+ You aren't a member of the room and weren't previously a member of the room.
168
+ tags:
169
+ - Room participation
170
+ deprecated: false
171
+ servers:
172
+ - url: "{protocol}://{hostname}{basePath}"
173
+ variables:
174
+ protocol:
175
+ enum:
176
+ - http
177
+ - https
178
+ default: https
179
+ hostname:
180
+ default: localhost:8008
181
+ basePath:
182
+ default: /_matrix/client/v3
183
+ components:
184
+ securitySchemes:
185
+ accessTokenQuery:
186
+ $ref: definitions/security.yaml#/accessTokenQuery
187
+ accessTokenBearer:
188
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,130 @@
1
+ # Copyright 2016 OpenMarket Ltd
2
+ # Copyright 2023 The Matrix.org Foundation C.I.C.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ openapi: 3.1.0
16
+ info:
17
+ title: Matrix Client-Server message event send API
18
+ version: 1.0.0
19
+ paths:
20
+ "/rooms/{roomId}/send/{eventType}/{txnId}":
21
+ put:
22
+ summary: Send a message event to the given room.
23
+ x-changedInMatrixVersion:
24
+ "1.18": |-
25
+ Homeservers must support sending `m.room.redaction` events with this endpoint
26
+ for all room versions.
27
+ description: |-
28
+ This endpoint is used to send a message event to a room. Message events
29
+ allow access to historical events and pagination, making them suited
30
+ for "once-off" activity in a room.
31
+
32
+ The body of the request should be the content object of the event; the
33
+ fields in this object will vary depending on the type of event. See
34
+ [Room Events](/client-server-api/#room-events) for the `m.` event specification.
35
+
36
+ Homeservers MUST allow clients to send `m.room.redaction` events with this
37
+ endpoint for all room versions. In rooms with a version older than 11 they
38
+ MUST move the `redacts` property inside the `content` to the top level of
39
+ the event.
40
+ operationId: sendMessage
41
+ security:
42
+ - accessTokenQuery: []
43
+ - accessTokenBearer: []
44
+ parameters:
45
+ - in: path
46
+ name: roomId
47
+ description: The room to send the event to.
48
+ required: true
49
+ example: "!636q39766251:example.com"
50
+ schema:
51
+ type: string
52
+ format: mx-room-id
53
+ pattern: "^!"
54
+ - in: path
55
+ name: eventType
56
+ description: The type of event to send.
57
+ required: true
58
+ example: m.room.message
59
+ schema:
60
+ type: string
61
+ - in: path
62
+ name: txnId
63
+ description: |-
64
+ The [transaction ID](/client-server-api/#transaction-identifiers) for this event. Clients should generate an
65
+ ID unique across requests with the same access token; it will be
66
+ used by the server to ensure idempotency of requests.
67
+ required: true
68
+ example: "35"
69
+ schema:
70
+ type: string
71
+ requestBody:
72
+ content:
73
+ application/json:
74
+ schema:
75
+ type: object
76
+ example: {
77
+ "msgtype": "m.text",
78
+ "body": "hello"
79
+ }
80
+ required: true
81
+ responses:
82
+ "200":
83
+ description: An ID for the sent event.
84
+ content:
85
+ application/json:
86
+ schema:
87
+ type: object
88
+ properties:
89
+ event_id:
90
+ type: string
91
+ format: mx-event-id
92
+ pattern: "^\\$"
93
+ description: A unique identifier for the event.
94
+ required:
95
+ - event_id
96
+ examples:
97
+ response:
98
+ value: {
99
+ "event_id": "$YUwRidLecu:example.com"
100
+ }
101
+ "400":
102
+ description: |-
103
+ The request is invalid. A [standard error response](/client-server-api/#standard-error-response)
104
+ will be returned. As well as the normal common error codes, other reasons for rejection include:
105
+
106
+ - `M_DUPLICATE_ANNOTATION`: The request is an attempt to send a [duplicate annotation](/client-server-api/#avoiding-duplicate-annotations).
107
+ content:
108
+ application/json:
109
+ schema:
110
+ $ref: definitions/errors/error.yaml
111
+ tags:
112
+ - Room participation
113
+ servers:
114
+ - url: "{protocol}://{hostname}{basePath}"
115
+ variables:
116
+ protocol:
117
+ enum:
118
+ - http
119
+ - https
120
+ default: https
121
+ hostname:
122
+ default: localhost:8008
123
+ basePath:
124
+ default: /_matrix/client/v3
125
+ components:
126
+ securitySchemes:
127
+ accessTokenQuery:
128
+ $ref: definitions/security.yaml#/accessTokenQuery
129
+ accessTokenBearer:
130
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,159 @@
1
+ # Copyright 2016 OpenMarket Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server state event send API
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/state/{eventType}/{stateKey}":
20
+ put:
21
+ summary: Send a state event to the given room.
22
+ description: |
23
+ State events can be sent using this endpoint. These events will be
24
+ overwritten if `<room id>`, `<event type>` and `<state key>` all
25
+ match.
26
+
27
+ Requests to this endpoint **cannot use transaction IDs**
28
+ like other `PUT` paths because they cannot be differentiated from the
29
+ `state_key`. Furthermore, `POST` is unsupported on state paths.
30
+
31
+ The body of the request should be the content object of the event; the
32
+ fields in this object will vary depending on the type of event. See
33
+ [Room Events](/client-server-api/#room-events) for the `m.` event specification.
34
+
35
+ If the event type being sent is `m.room.canonical_alias` servers
36
+ SHOULD ensure that any new aliases being listed in the event are valid
37
+ per their grammar/syntax and that they point to the room ID where the
38
+ state event is to be sent. Servers do not validate aliases which are
39
+ being removed or are already present in the state event.
40
+ operationId: setRoomStateWithKey
41
+ security:
42
+ - accessTokenQuery: []
43
+ - accessTokenBearer: []
44
+ parameters:
45
+ - in: path
46
+ name: roomId
47
+ description: The room to set the state in
48
+ required: true
49
+ example: "!636q39766251:example.com"
50
+ schema:
51
+ type: string
52
+ format: mx-room-id
53
+ pattern: "^!"
54
+ - in: path
55
+ name: eventType
56
+ description: The type of event to send.
57
+ required: true
58
+ example: m.room.member
59
+ schema:
60
+ type: string
61
+ - in: path
62
+ name: stateKey
63
+ description: |-
64
+ The state_key for the state to send. Defaults to the empty string. When
65
+ an empty string, the trailing slash on this endpoint is optional.
66
+ required: true
67
+ example: "@alice:example.com"
68
+ schema:
69
+ type: string
70
+ requestBody:
71
+ content:
72
+ application/json:
73
+ schema:
74
+ type: object
75
+ example: {
76
+ "membership": "join",
77
+ "avatar_url": "mxc://localhost/SEsfnsuifSDFSSEF",
78
+ "displayname": "Alice Margatroid"
79
+ }
80
+ required: true
81
+ responses:
82
+ "200":
83
+ description: An ID for the sent event.
84
+ content:
85
+ application/json:
86
+ schema:
87
+ type: object
88
+ properties:
89
+ event_id:
90
+ type: string
91
+ format: mx-event-id
92
+ pattern: "^\\$"
93
+ description: A unique identifier for the event.
94
+ required:
95
+ - event_id
96
+ examples:
97
+ response:
98
+ value: {
99
+ "event_id": "$YUwRidLecu:example.com"
100
+ }
101
+ "400":
102
+ description: |-
103
+ The sender's request is malformed.
104
+
105
+ Some example error codes include:
106
+
107
+ * `M_INVALID_PARAM`: One or more aliases within the `m.room.canonical_alias`
108
+ event have invalid syntax.
109
+
110
+ * `M_BAD_ALIAS`: One or more aliases within the `m.room.canonical_alias` event
111
+ do not point to the room ID for which the state event is to be sent to.
112
+ content:
113
+ application/json:
114
+ schema:
115
+ $ref: definitions/errors/error.yaml
116
+ examples:
117
+ response:
118
+ value: {
119
+ "errcode": "M_BAD_ALIAS",
120
+ "error": "The alias '#hello:example.org' does not point to this room."
121
+ }
122
+ "403":
123
+ description: |-
124
+ The sender doesn't have permission to send the event into the room.
125
+
126
+ {{% added-in v="1.18"%}} If the `eventType` is `m.room.member` and
127
+ the `membership` is `invite`, the `M_INVITE_BLOCKED` error code is
128
+ used to indicate that the homeserver rejected the invite due to
129
+ [invite blocking](/client-server-api/#invite-permission).
130
+ content:
131
+ application/json:
132
+ schema:
133
+ $ref: definitions/errors/error.yaml
134
+ examples:
135
+ response:
136
+ value: {
137
+ "errcode": "M_FORBIDDEN",
138
+ "error": "You do not have permission to send the event."
139
+ }
140
+ tags:
141
+ - Room participation
142
+ servers:
143
+ - url: "{protocol}://{hostname}{basePath}"
144
+ variables:
145
+ protocol:
146
+ enum:
147
+ - http
148
+ - https
149
+ default: https
150
+ hostname:
151
+ default: localhost:8008
152
+ basePath:
153
+ default: /_matrix/client/v3
154
+ components:
155
+ securitySchemes:
156
+ accessTokenQuery:
157
+ $ref: definitions/security.yaml#/accessTokenQuery
158
+ accessTokenBearer:
159
+ $ref: definitions/security.yaml#/accessTokenBearer