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,138 @@
1
+ # Copyright 2025 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 Room Summary API
17
+ version: 1.0.0
18
+ paths:
19
+ "/room_summary/{roomIdOrAlias}":
20
+ get:
21
+ x-addedInMatrixVersion: "1.15"
22
+ summary: Retrieves a summary for a room.
23
+ description: |-
24
+ Retrieves a summary for a room.
25
+
26
+ Clients should note that requests for rooms where the user's membership
27
+ is `invite` or `knock` might yield outdated, partial or even no data
28
+ since the server may not have access to the current state of the room.
29
+
30
+ Servers MAY allow unauthenticated access to this API if at least one of
31
+ the following conditions holds true:
32
+
33
+ - The room has a [join rule](#mroomjoin_rules) of `public`, `knock` or
34
+ `knock_restricted`.
35
+ - The room has a `world_readable` [history visibility](#room-history-visibility).
36
+
37
+ Servers should consider rate limiting requests that require a federation
38
+ request more heavily if the client is unauthenticated.
39
+ operationId: getRoomSummary
40
+ security:
41
+ - signedRequest: []
42
+ parameters:
43
+ - in: path
44
+ name: roomIdOrAlias
45
+ description: The room identifier or alias to summarise.
46
+ required: true
47
+ example: "#monkeys:matrix.org"
48
+ schema:
49
+ oneOf:
50
+ - type: string
51
+ format: mx-room-id
52
+ pattern: "^!"
53
+ - type: string
54
+ format: mx-room-alias
55
+ pattern: "^#"
56
+ - in: query
57
+ name: via
58
+ description: |-
59
+ The servers to attempt to request the summary from when
60
+ the local server cannot generate it (for instance, because
61
+ it has no local user in the room).
62
+ example:
63
+ - matrix.org
64
+ - elsewhere.ca
65
+ schema:
66
+ type: array
67
+ items:
68
+ type: string
69
+ format: mx-server-name
70
+ responses:
71
+ "200":
72
+ description: A summary of the room.
73
+ content:
74
+ application/json:
75
+ schema:
76
+ description: A summary of the room.
77
+ allOf:
78
+ - $ref: ../client-server/definitions/room_summary.yaml
79
+ - type: object
80
+ properties:
81
+ membership:
82
+ description: |-
83
+ The membership state of the user if the user is joined to the room. Absent
84
+ if the API was called unauthenticated.
85
+ enum:
86
+ - invite
87
+ - join
88
+ - knock
89
+ - leave
90
+ - ban
91
+ type: string
92
+ examples:
93
+ response:
94
+ value: {
95
+ room_id: "!ol19s:bleecker.street",
96
+ avatar_url: "mxc://bleecker.street/CHEDDARandBRIE",
97
+ guest_can_join: false,
98
+ name: "CHEESE",
99
+ num_joined_members: 37,
100
+ topic: "Tasty tasty cheese",
101
+ world_readable: true,
102
+ join_rule: "public",
103
+ room_type: "m.space",
104
+ membership: "invite",
105
+ encryption: "m.megolm.v1.aes-sha2",
106
+ room_version: "9001",
107
+ }
108
+ "404":
109
+ description: |-
110
+ The room could not be found.
111
+ content:
112
+ application/json:
113
+ schema:
114
+ $ref: ../client-server/definitions/errors/error.yaml
115
+ examples:
116
+ response:
117
+ value: {
118
+ "errcode": "M_NOT_FOUND",
119
+ "error": "Room not found."
120
+ }
121
+ servers:
122
+ - url: "{protocol}://{hostname}{basePath}"
123
+ variables:
124
+ protocol:
125
+ enum:
126
+ - http
127
+ - https
128
+ default: https
129
+ hostname:
130
+ default: localhost:8008
131
+ basePath:
132
+ default: /_matrix/client/v1
133
+ components:
134
+ securitySchemes:
135
+ accessTokenQuery:
136
+ $ref: definitions/security.yaml#/accessTokenQuery
137
+ accessTokenBearer:
138
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,130 @@
1
+ # Copyright 2019 New Vector 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 Room Upgrades API
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/upgrade":
20
+ post:
21
+ summary: Upgrades a room to a new room version.
22
+ description: Upgrades the given room to a particular room version.
23
+ operationId: upgradeRoom
24
+ security:
25
+ - accessTokenQuery: []
26
+ - accessTokenBearer: []
27
+ parameters:
28
+ - in: path
29
+ name: roomId
30
+ required: true
31
+ description: The ID of the room to upgrade.
32
+ example: "!oldroom:example.org"
33
+ schema:
34
+ type: string
35
+ requestBody:
36
+ content:
37
+ application/json:
38
+ schema:
39
+ type: object
40
+ properties:
41
+ new_version:
42
+ type: string
43
+ description: The new version for the room.
44
+ additional_creators:
45
+ type: array
46
+ items:
47
+ type: string
48
+ description: Additional user ID to consider a room creator, if the room version supports it.
49
+ x-addedInMatrixVersion: "1.16"
50
+ description: |-
51
+ When upgrading to a [room version](/rooms) which supports additional creators,
52
+ the [user IDs](/appendices#user-identifiers) which should be considered room
53
+ creators in addition to the user performing the upgrade.
54
+
55
+ If the room being upgraded has additional creators, they are *not* automatically
56
+ copied to the new room. The full set of additional creators needs to be set to
57
+ retain (or add/remove) more room creators.
58
+
59
+ When upgrading to a room version which doesn't support additional creators, this
60
+ field is ignored and has no effect during the upgrade process.
61
+ example: {
62
+ "new_version": "2"
63
+ }
64
+ required:
65
+ - new_version
66
+ required: true
67
+ responses:
68
+ "200":
69
+ description: The room was successfully upgraded.
70
+ content:
71
+ application/json:
72
+ schema:
73
+ type: object
74
+ properties:
75
+ replacement_room:
76
+ type: string
77
+ description: The ID of the new room.
78
+ required:
79
+ - replacement_room
80
+ examples:
81
+ response:
82
+ value: {
83
+ "replacement_room": "!newroom:example.org"
84
+ }
85
+ "400":
86
+ description: |-
87
+ The request was invalid. One way this can happen is if the room version
88
+ requested is not supported by the homeserver.
89
+ content:
90
+ application/json:
91
+ schema:
92
+ $ref: definitions/errors/error.yaml
93
+ examples:
94
+ response:
95
+ value: {
96
+ "errcode": "M_UNSUPPORTED_ROOM_VERSION",
97
+ "error": "This server does not support that room version"
98
+ }
99
+ "403":
100
+ description: The user is not permitted to upgrade the room.
101
+ content:
102
+ application/json:
103
+ schema:
104
+ $ref: definitions/errors/error.yaml
105
+ examples:
106
+ response:
107
+ value: {
108
+ "errcode": "M_FORBIDDEN",
109
+ "error": "You cannot upgrade this room"
110
+ }
111
+ tags:
112
+ - Room upgrades
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,380 @@
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 Rooms API
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/event/{eventId}":
20
+ get:
21
+ summary: Get a single event by event ID.
22
+ description: |-
23
+ Get a single event based on `roomId/eventId`. You must have permission to
24
+ retrieve this event e.g. by being a member in the room for this event.
25
+ operationId: getOneRoomEvent
26
+ security:
27
+ - accessTokenQuery: []
28
+ - accessTokenBearer: []
29
+ parameters:
30
+ - in: path
31
+ name: roomId
32
+ description: The ID of the room the event is in.
33
+ required: true
34
+ example: "!636q39766251:matrix.org"
35
+ schema:
36
+ type: string
37
+ format: mx-room-id
38
+ pattern: "^!"
39
+ - in: path
40
+ name: eventId
41
+ description: The event ID to get.
42
+ required: true
43
+ example: $asfDuShaf7Gafaw:matrix.org
44
+ schema:
45
+ type: string
46
+ format: mx-event-id
47
+ pattern: "^\\$"
48
+ responses:
49
+ "200":
50
+ description: The full event.
51
+ content:
52
+ application/json:
53
+ schema:
54
+ $ref: definitions/client_event.yaml
55
+ examples:
56
+ response:
57
+ value: {
58
+ "room_id": "!636q39766251:matrix.org",
59
+ "$ref": "../../event-schemas/examples/m.room.message$m.text.yaml"
60
+ }
61
+ "404":
62
+ description: The event was not found or you do not have permission to read this
63
+ event.
64
+ content:
65
+ application/json:
66
+ schema:
67
+ $ref: definitions/errors/error.yaml
68
+ examples:
69
+ response:
70
+ value: {
71
+ "errcode": "M_NOT_FOUND",
72
+ "error": "Event not found."
73
+ }
74
+ tags:
75
+ - Room participation
76
+ "/rooms/{roomId}/state/{eventType}/{stateKey}":
77
+ get:
78
+ summary: Get the state identified by the type and key.
79
+ description: |-
80
+ Looks up the contents of a state event in a room. If the user is
81
+ joined to the room then the state is taken from the current
82
+ state of the room. If the user has left the room then the state is
83
+ taken from the state of the room when they left.
84
+ operationId: getRoomStateWithKey
85
+ security:
86
+ - accessTokenQuery: []
87
+ - accessTokenBearer: []
88
+ parameters:
89
+ - in: path
90
+ name: roomId
91
+ description: The room to look up the state in.
92
+ required: true
93
+ example: "!636q39766251:example.com"
94
+ schema:
95
+ type: string
96
+ format: mx-room-id
97
+ pattern: "^!"
98
+ - in: path
99
+ name: eventType
100
+ description: The type of state to look up.
101
+ required: true
102
+ example: m.room.name
103
+ schema:
104
+ type: string
105
+ - in: path
106
+ name: stateKey
107
+ description: |-
108
+ The key of the state to look up. Defaults to an empty string. When
109
+ an empty string, the trailing slash on this endpoint is optional.
110
+ required: true
111
+ example: ""
112
+ schema:
113
+ type: string
114
+ - in: query
115
+ name: format
116
+ x-addedInMatrixVersion: "1.16"
117
+ description: |-
118
+ The format to use for the returned data. `content` (the default) will
119
+ return only the content of the state event. `event` will return the entire
120
+ event in the usual format suitable for clients, including fields like event
121
+ ID, sender and timestamp.
122
+ example: event
123
+ schema:
124
+ type: string
125
+ enum:
126
+ - content
127
+ - event
128
+ responses:
129
+ "200":
130
+ description: |-
131
+ The content of the state event, or the entire client-formatted event
132
+ if `?format=event` was used.
133
+ content:
134
+ application/json:
135
+ schema:
136
+ oneOf:
137
+ - type: object
138
+ - $ref: "../../event-schemas/schema/core-event-schema/state_event.yaml"
139
+ examples:
140
+ response:
141
+ value: {
142
+ "name": "Example room name"
143
+ }
144
+ "403":
145
+ description: |
146
+ You aren't a member of the room and weren't previously a member of the room.
147
+ "404":
148
+ description: The room has no state with the given type or key.
149
+ tags:
150
+ - Room participation
151
+ "/rooms/{roomId}/state":
152
+ get:
153
+ summary: Get all state events in the current state of a room.
154
+ description: Get the state events for the current state of a room.
155
+ operationId: getRoomState
156
+ security:
157
+ - accessTokenQuery: []
158
+ - accessTokenBearer: []
159
+ parameters:
160
+ - in: path
161
+ name: roomId
162
+ description: The room to look up the state for.
163
+ required: true
164
+ example: "!636q39766251:example.com"
165
+ schema:
166
+ type: string
167
+ format: mx-room-id
168
+ pattern: "^!"
169
+ responses:
170
+ "200":
171
+ description: The current state of the room
172
+ content:
173
+ application/json:
174
+ schema:
175
+ type: array
176
+ title: RoomState
177
+ description: |-
178
+ If the user is a member of the room this will be the
179
+ current state of the room as a list of events. If the user
180
+ has left the room then this will be the state of the room
181
+ when they left as a list of events.
182
+ items:
183
+ $ref: definitions/client_event.yaml
184
+ examples:
185
+ response:
186
+ value: [
187
+ {
188
+ "room_id": "!636q39766251:example.com",
189
+ "$ref": "../../event-schemas/examples/m.room.join_rules.yaml"
190
+ },
191
+ {
192
+ "room_id": "!636q39766251:example.com",
193
+ "$ref": "../../event-schemas/examples/m.room.member.yaml"
194
+ },
195
+ {
196
+ "room_id": "!636q39766251:example.com",
197
+ "$ref": "../../event-schemas/examples/m.room.create.yaml"
198
+ },
199
+ {
200
+ "room_id": "!636q39766251:example.com",
201
+ "$ref": "../../event-schemas/examples/m.room.power_levels.yaml"
202
+ }
203
+ ]
204
+ "403":
205
+ description: |
206
+ You aren't a member of the room and weren't previously a member of the room.
207
+ tags:
208
+ - Room participation
209
+ "/rooms/{roomId}/members":
210
+ get:
211
+ summary: Get the m.room.member events for the room.
212
+ description: Get the list of members for this room.
213
+ operationId: getMembersByRoom
214
+ parameters:
215
+ - in: path
216
+ name: roomId
217
+ description: The room to get the member events for.
218
+ required: true
219
+ example: "!636q39766251:example.com"
220
+ schema:
221
+ type: string
222
+ format: mx-room-id
223
+ pattern: "^!"
224
+ - in: query
225
+ name: at
226
+ description: |-
227
+ The point in time (pagination token) to return members for in the room.
228
+ This token can be obtained from a `prev_batch` token returned for
229
+ each room by the sync API. Defaults to the current state of the room,
230
+ as determined by the server.
231
+ example: YWxsCgpOb25lLDM1ODcwOA
232
+ schema:
233
+ type: string
234
+ # XXX: As mentioned in MSC1227, replacing `[not_]membership` with a JSON
235
+ # filter might be a better alternative.
236
+ # See https://github.com/matrix-org/matrix-doc/issues/1227
237
+ - in: query
238
+ name: membership
239
+ description: |-
240
+ The kind of membership to filter for. Defaults to no filtering if
241
+ unspecified. When specified alongside `not_membership`, the two
242
+ parameters create an 'or' condition: either the membership *is*
243
+ the same as `membership` **or** *is not* the same as `not_membership`.
244
+ example: join
245
+ schema:
246
+ type: string
247
+ enum:
248
+ - join
249
+ - invite
250
+ - knock
251
+ - leave
252
+ - ban
253
+ - in: query
254
+ name: not_membership
255
+ description: |-
256
+ The kind of membership to exclude from the results. Defaults to no
257
+ filtering if unspecified.
258
+ example: leave
259
+ schema:
260
+ type: string
261
+ enum:
262
+ - join
263
+ - invite
264
+ - knock
265
+ - leave
266
+ - ban
267
+ security:
268
+ - accessTokenQuery: []
269
+ - accessTokenBearer: []
270
+ responses:
271
+ "200":
272
+ description: |-
273
+ A list of members of the room. If you are joined to the room then
274
+ this will be the current members of the room. If you have left the
275
+ room then this will be the members of the room when you left.
276
+ content:
277
+ application/json:
278
+ schema:
279
+ type: object
280
+ properties:
281
+ chunk:
282
+ type: array
283
+ items:
284
+ $ref: definitions/client_event.yaml
285
+ examples:
286
+ response:
287
+ value: {
288
+ "chunk": [
289
+ {
290
+ "room_id": "!636q39766251:example.com",
291
+ "$ref": "../../event-schemas/examples/m.room.member.yaml"
292
+ }
293
+ ]
294
+ }
295
+ "403":
296
+ description: |
297
+ You aren't a member of the room and weren't previously a member of the room.
298
+ tags:
299
+ - Room participation
300
+ "/rooms/{roomId}/joined_members":
301
+ get:
302
+ summary: Gets the list of currently joined users and their profile data.
303
+ description: This API returns a map of MXIDs to member info objects for members
304
+ of the room. The current user must be in the room for it to work, unless
305
+ it is an Application Service in which case any of the AS's users must be
306
+ in the room. This API is primarily for Application Services and should
307
+ be faster to respond than `/members` as it can be implemented more
308
+ efficiently on the server.
309
+ operationId: getJoinedMembersByRoom
310
+ parameters:
311
+ - in: path
312
+ name: roomId
313
+ description: The room to get the members of.
314
+ required: true
315
+ example: "!636q39766251:example.com"
316
+ schema:
317
+ type: string
318
+ format: mx-room-id
319
+ pattern: "^!"
320
+ security:
321
+ - accessTokenQuery: []
322
+ - accessTokenBearer: []
323
+ responses:
324
+ "200":
325
+ description: A map of MXID to room member objects.
326
+ content:
327
+ application/json:
328
+ schema:
329
+ type: object
330
+ properties:
331
+ joined:
332
+ patternProperties:
333
+ "^@":
334
+ x-pattern-format: mx-user-id
335
+ title: RoomMember
336
+ type: object
337
+ properties:
338
+ display_name:
339
+ type: string
340
+ description: The display name of the user this object is representing.
341
+ avatar_url:
342
+ type: string
343
+ format: uri
344
+ description: The avatar of the user this object is representing, as an [`mxc://`
345
+ URI](/client-server-api/#matrix-content-mxc-uris).
346
+ description: A map from user ID to a RoomMember object.
347
+ type: object
348
+ examples:
349
+ response:
350
+ value: {
351
+ "joined": {
352
+ "@bar:example.com": {
353
+ "display_name": "Bar",
354
+ "avatar_url": "mxc://riot.ovh/printErCATzZijQsSDWorRaK"
355
+ }
356
+ }
357
+ }
358
+ "403":
359
+ description: |
360
+ You aren't a member of the room.
361
+ tags:
362
+ - Room participation
363
+ servers:
364
+ - url: "{protocol}://{hostname}{basePath}"
365
+ variables:
366
+ protocol:
367
+ enum:
368
+ - http
369
+ - https
370
+ default: https
371
+ hostname:
372
+ default: localhost:8008
373
+ basePath:
374
+ default: /_matrix/client/v3
375
+ components:
376
+ securitySchemes:
377
+ accessTokenQuery:
378
+ $ref: definitions/security.yaml#/accessTokenQuery
379
+ accessTokenBearer:
380
+ $ref: definitions/security.yaml#/accessTokenBearer