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,152 @@
1
+ # Copyright 2021 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 Knocking API
17
+ version: 1.0.0
18
+ paths:
19
+ "/knock/{roomIdOrAlias}":
20
+ post:
21
+ x-addedInMatrixVersion: "1.1"
22
+ summary: Knock on a room, requesting permission to join.
23
+ description: |-
24
+ *Note that this API takes either a room ID or alias, unlike other membership APIs.*
25
+
26
+ This API "knocks" on the room to ask for permission to join, if the user
27
+ is allowed to knock on the room. Acceptance of the knock happens out of
28
+ band from this API, meaning that the client will have to watch for updates
29
+ regarding the acceptance/rejection of the knock.
30
+
31
+ If the room history settings allow, the user will still be able to see
32
+ history of the room while being in the "knock" state. The user will have
33
+ to accept the invitation to join the room (acceptance of knock) to see
34
+ messages reliably. See the `/join` endpoints for more information about
35
+ history visibility to the user.
36
+
37
+ The knock will appear as an entry in the response of the
38
+ [`/sync`](/client-server-api/#get_matrixclientv3sync) API.
39
+ operationId: knockRoom
40
+ security:
41
+ - accessTokenQuery: []
42
+ - accessTokenBearer: []
43
+ parameters:
44
+ - in: path
45
+ name: roomIdOrAlias
46
+ description: The room identifier or alias to knock upon.
47
+ required: true
48
+ example: "#monkeys:matrix.org"
49
+ schema:
50
+ type: string
51
+ - in: query
52
+ name: via
53
+ x-addedInMatrixVersion: "1.12"
54
+ description: |-
55
+ The servers to attempt to knock on the room through. One of the servers
56
+ must be participating in the room.
57
+ example:
58
+ - matrix.org
59
+ - elsewhere.ca
60
+ schema:
61
+ type: array
62
+ items:
63
+ type: string
64
+ requestBody:
65
+ content:
66
+ application/json:
67
+ schema:
68
+ type: object
69
+ properties:
70
+ reason:
71
+ type: string
72
+ description: |-
73
+ Optional reason to be included as the `reason` on the subsequent
74
+ membership event.
75
+ example: Looking for support
76
+ required: true
77
+ responses:
78
+ "200":
79
+ description: |-
80
+ The room has been knocked upon.
81
+
82
+ The knocked room ID must be returned in the `room_id` field.
83
+ content:
84
+ application/json:
85
+ schema:
86
+ type: object
87
+ properties:
88
+ room_id:
89
+ type: string
90
+ description: The knocked room ID.
91
+ required:
92
+ - room_id
93
+ examples:
94
+ response:
95
+ value: {
96
+ "room_id": "!d41d8cd:matrix.org"
97
+ }
98
+ "403":
99
+ description: |-
100
+ You do not have permission to knock on the room. A meaningful `errcode`
101
+ and description error text will be returned. Example reasons for rejection are:
102
+
103
+ - The room is not set up for knocking.
104
+ - The user has been banned from the room.
105
+ content:
106
+ application/json:
107
+ schema:
108
+ $ref: definitions/errors/error.yaml
109
+ examples:
110
+ response:
111
+ value: {
112
+ "errcode": "M_FORBIDDEN",
113
+ "error": "You are not allowed to knock on this room."
114
+ }
115
+ "404":
116
+ description: The room could not be found or resolved to a room ID.
117
+ content:
118
+ application/json:
119
+ schema:
120
+ $ref: definitions/errors/error.yaml
121
+ examples:
122
+ response:
123
+ value: {
124
+ "errcode": "M_NOT_FOUND",
125
+ "error": "That room does not appear to exist."
126
+ }
127
+ "429":
128
+ description: This request was rate-limited.
129
+ content:
130
+ application/json:
131
+ schema:
132
+ $ref: definitions/errors/rate_limited.yaml
133
+ tags:
134
+ - Room membership
135
+ servers:
136
+ - url: "{protocol}://{hostname}{basePath}"
137
+ variables:
138
+ protocol:
139
+ enum:
140
+ - http
141
+ - https
142
+ default: https
143
+ hostname:
144
+ default: localhost:8008
145
+ basePath:
146
+ default: /_matrix/client/v3
147
+ components:
148
+ securitySchemes:
149
+ accessTokenQuery:
150
+ $ref: definitions/security.yaml#/accessTokenQuery
151
+ accessTokenBearer:
152
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,163 @@
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 Room Leaving API
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/leave":
20
+ post:
21
+ summary: Stop the requesting user participating in a particular room.
22
+ x-changedInMatrixVersion:
23
+ "1.18": |-
24
+ Servers may additionally forget the room provided that they make this behavior
25
+ transparent.
26
+ description: |-
27
+ This API stops a user participating in a particular room.
28
+
29
+ If the user was already in the room, they will no longer be able to see
30
+ new events in the room. If the room requires an invite to join, they
31
+ will need to be re-invited before they can re-join.
32
+
33
+ If the user was invited to the room, but had not joined, this call
34
+ serves to reject the invite.
35
+
36
+ Servers MAY additionally forget the room when this endpoint is called –
37
+ just as if the user had also invoked [`/forget`](/client-server-api/#post_matrixclientv3roomsroomidforget).
38
+ Servers that do this, MUST inform clients about this behavior using the
39
+ [`m.forget_forced_upon_leave`](/client-server-api/#mforget_forced_upon_leave-capability)
40
+ capability.
41
+
42
+ If the server doesn't automatically forget the room, the user will still be
43
+ allowed to retrieve history from the room which they were previously allowed
44
+ to see.
45
+ operationId: leaveRoom
46
+ security:
47
+ - accessTokenQuery: []
48
+ - accessTokenBearer: []
49
+ parameters:
50
+ - in: path
51
+ name: roomId
52
+ description: The room identifier to leave.
53
+ required: true
54
+ example: "!nkl290a:matrix.org"
55
+ schema:
56
+ type: string
57
+ requestBody:
58
+ content:
59
+ application/json:
60
+ schema:
61
+ type: object
62
+ example: {
63
+ "reason": "Saying farewell - thanks for the support!"
64
+ }
65
+ properties:
66
+ reason:
67
+ x-addedInMatrixVersion: "1.1"
68
+ type: string
69
+ description: |-
70
+ Optional reason to be included as the `reason` on the subsequent
71
+ membership event.
72
+ required: true
73
+ responses:
74
+ "200":
75
+ description: The room has been left.
76
+ content:
77
+ application/json:
78
+ schema:
79
+ type: object
80
+ examples:
81
+ response:
82
+ value: {}
83
+ "429":
84
+ description: This request was rate-limited.
85
+ content:
86
+ application/json:
87
+ schema:
88
+ $ref: definitions/errors/rate_limited.yaml
89
+ tags:
90
+ - Room membership
91
+ "/rooms/{roomId}/forget":
92
+ post:
93
+ summary: Stop the requesting user remembering about a particular room.
94
+ description: |-
95
+ This API stops a user remembering about a particular room.
96
+
97
+ In general, history is a first class citizen in Matrix. After this API
98
+ is called, however, a user will no longer be able to retrieve history
99
+ for this room. If all users on a homeserver forget a room, the room is
100
+ eligible for deletion from that homeserver.
101
+
102
+ If the user is currently joined to the room, they must leave the room
103
+ before calling this API.
104
+ operationId: forgetRoom
105
+ security:
106
+ - accessTokenQuery: []
107
+ - accessTokenBearer: []
108
+ parameters:
109
+ - in: path
110
+ name: roomId
111
+ description: The room identifier to forget.
112
+ required: true
113
+ example: "!au1ba7o:matrix.org"
114
+ schema:
115
+ type: string
116
+ responses:
117
+ "200":
118
+ description: The room has been forgotten.
119
+ content:
120
+ application/json:
121
+ schema:
122
+ type: object
123
+ examples:
124
+ response:
125
+ value: {}
126
+ "400":
127
+ description: The user has not left the room
128
+ content:
129
+ application/json:
130
+ schema:
131
+ $ref: definitions/errors/error.yaml
132
+ examples:
133
+ response:
134
+ value: {
135
+ "errcode": "M_UNKNOWN",
136
+ "error": "User @example:matrix.org is in room !au1ba7o:matrix.org"
137
+ }
138
+ "429":
139
+ description: This request was rate-limited.
140
+ content:
141
+ application/json:
142
+ schema:
143
+ $ref: definitions/errors/rate_limited.yaml
144
+ tags:
145
+ - Room membership
146
+ servers:
147
+ - url: "{protocol}://{hostname}{basePath}"
148
+ variables:
149
+ protocol:
150
+ enum:
151
+ - http
152
+ - https
153
+ default: https
154
+ hostname:
155
+ default: localhost:8008
156
+ basePath:
157
+ default: /_matrix/client/v3
158
+ components:
159
+ securitySchemes:
160
+ accessTokenQuery:
161
+ $ref: definitions/security.yaml#/accessTokenQuery
162
+ accessTokenBearer:
163
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,68 @@
1
+ # Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
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 Listing API
17
+ version: 1.0.0
18
+ paths:
19
+ /joined_rooms:
20
+ get:
21
+ summary: Lists the user's current rooms.
22
+ description: This API returns a list of the user's current rooms.
23
+ operationId: getJoinedRooms
24
+ security:
25
+ - accessTokenQuery: []
26
+ - accessTokenBearer: []
27
+ responses:
28
+ "200":
29
+ description: A list of the rooms the user is in.
30
+ content:
31
+ application/json:
32
+ schema:
33
+ type: object
34
+ required:
35
+ - joined_rooms
36
+ properties:
37
+ joined_rooms:
38
+ type: array
39
+ description: The ID of each room in which the user has `joined` membership.
40
+ items:
41
+ type: string
42
+ examples:
43
+ response:
44
+ value: {
45
+ "joined_rooms": [
46
+ "!foo:example.com"
47
+ ]
48
+ }
49
+ tags:
50
+ - Room membership
51
+ servers:
52
+ - url: "{protocol}://{hostname}{basePath}"
53
+ variables:
54
+ protocol:
55
+ enum:
56
+ - http
57
+ - https
58
+ default: https
59
+ hostname:
60
+ default: localhost:8008
61
+ basePath:
62
+ default: /_matrix/client/v3
63
+ components:
64
+ securitySchemes:
65
+ accessTokenQuery:
66
+ $ref: definitions/security.yaml#/accessTokenQuery
67
+ accessTokenBearer:
68
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,280 @@
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 Published Room Directory API
17
+ version: 1.0.0
18
+ paths:
19
+ "/directory/list/room/{roomId}":
20
+ get:
21
+ summary: Gets the visibility of a room in the directory
22
+ description: |-
23
+ Gets the visibility of a given room in the server's
24
+ published room directory.
25
+ operationId: getRoomVisibilityOnDirectory
26
+ parameters:
27
+ - in: path
28
+ name: roomId
29
+ description: The room ID.
30
+ required: true
31
+ example: "!curbf:matrix.org"
32
+ schema:
33
+ type: string
34
+ responses:
35
+ "200":
36
+ description: The visibility of the room in the directory.
37
+ content:
38
+ application/json:
39
+ schema:
40
+ type: object
41
+ properties:
42
+ visibility:
43
+ type: string
44
+ enum:
45
+ - private
46
+ - public
47
+ description: The visibility of the room in the directory.
48
+ examples:
49
+ response:
50
+ value: {
51
+ "visibility": "public"
52
+ }
53
+ "404":
54
+ description: The room is not known to the server.
55
+ content:
56
+ application/json:
57
+ schema:
58
+ $ref: definitions/errors/error.yaml
59
+ examples:
60
+ response:
61
+ value: {
62
+ "errcode": "M_NOT_FOUND",
63
+ "error": "Room not found"
64
+ }
65
+ tags:
66
+ - Room discovery
67
+ put:
68
+ summary: Sets the visibility of a room in the directory
69
+ description: |-
70
+ Sets the visibility of a given room in the server's published room directory.
71
+
72
+ Servers MAY implement additional access control checks, for instance,
73
+ to ensure that a room's visibility can only be changed by the room creator
74
+ or a server administrator.
75
+ operationId: setRoomVisibilityOnDirectory
76
+ security:
77
+ - accessTokenQuery: []
78
+ - accessTokenBearer: []
79
+ parameters:
80
+ - in: path
81
+ name: roomId
82
+ description: The room ID.
83
+ required: true
84
+ example: "!curbf:matrix.org"
85
+ schema:
86
+ type: string
87
+ requestBody:
88
+ content:
89
+ application/json:
90
+ schema:
91
+ type: object
92
+ properties:
93
+ visibility:
94
+ type: string
95
+ enum:
96
+ - private
97
+ - public
98
+ description: |-
99
+ The new visibility setting for the room.
100
+ Defaults to `public`.
101
+ example: {
102
+ "visibility": "public"
103
+ }
104
+ description: The new visibility for the room in the published room directory.
105
+ required: true
106
+ responses:
107
+ "200":
108
+ description: The visibility was updated, or no change was needed.
109
+ content:
110
+ application/json:
111
+ schema:
112
+ type: object
113
+ examples:
114
+ response:
115
+ value: {}
116
+ "404":
117
+ description: The room is not known to the server.
118
+ content:
119
+ application/json:
120
+ schema:
121
+ $ref: definitions/errors/error.yaml
122
+ examples:
123
+ response:
124
+ value: {
125
+ "errcode": "M_NOT_FOUND",
126
+ "error": "Room not found"
127
+ }
128
+ tags:
129
+ - Room discovery
130
+ /publicRooms:
131
+ get:
132
+ summary: Lists a server's published room directory
133
+ description: |-
134
+ Lists a server's published room directory.
135
+
136
+ This API returns paginated responses. The rooms are ordered by the number
137
+ of joined members, with the largest rooms first.
138
+ operationId: getPublicRooms
139
+ parameters:
140
+ - in: query
141
+ name: limit
142
+ description: Limit the number of results returned.
143
+ schema:
144
+ type: integer
145
+ - in: query
146
+ name: since
147
+ description: |-
148
+ A pagination token from a previous request, allowing clients to
149
+ get the next (or previous) batch of rooms.
150
+ The direction of pagination is specified solely by which token
151
+ is supplied, rather than via an explicit flag.
152
+ schema:
153
+ type: string
154
+ - in: query
155
+ name: server
156
+ description: |-
157
+ The server to fetch the published room directory from. Defaults
158
+ to the local server. Case sensitive.
159
+ schema:
160
+ type: string
161
+ responses:
162
+ "200":
163
+ description: A list of the published rooms on the server.
164
+ content:
165
+ application/json:
166
+ schema:
167
+ $ref: definitions/public_rooms_response.yaml
168
+ tags:
169
+ - Room discovery
170
+ post:
171
+ summary: Lists a server's published room directory with an optional filter
172
+ description: |-
173
+ Lists a server's published room directory with an optional filter.
174
+
175
+ This API returns paginated responses. The rooms are ordered by the number
176
+ of joined members, with the largest rooms first.
177
+ operationId: queryPublicRooms
178
+ security:
179
+ - accessTokenQuery: []
180
+ - accessTokenBearer: []
181
+ parameters:
182
+ - in: query
183
+ name: server
184
+ description: |-
185
+ The server to fetch the published room directory from. Defaults
186
+ to the local server. Case sensitive.
187
+ schema:
188
+ type: string
189
+ requestBody:
190
+ content:
191
+ application/json:
192
+ schema:
193
+ type: object
194
+ properties:
195
+ limit:
196
+ type: integer
197
+ description: Limit the number of results returned.
198
+ since:
199
+ type: string
200
+ description: |-
201
+ A pagination token from a previous request, allowing clients
202
+ to get the next (or previous) batch of rooms. The direction
203
+ of pagination is specified solely by which token is supplied,
204
+ rather than via an explicit flag.
205
+ filter:
206
+ type: object
207
+ title: Filter
208
+ description: Filter to apply to the results.
209
+ properties:
210
+ generic_search_term:
211
+ type: string
212
+ description: |-
213
+ An optional string to search for in the room metadata, e.g. name,
214
+ topic, canonical alias, etc.
215
+ room_types:
216
+ type: array
217
+ x-addedInMatrixVersion: "1.4"
218
+ items:
219
+ type: ["string", "null"]
220
+ description: |-
221
+ An optional list of [room types](/client-server-api/#types) to search
222
+ for. To include rooms without a room type, specify `null` within this
223
+ list. When not specified, all applicable rooms (regardless of type)
224
+ are returned.
225
+ include_all_networks:
226
+ type: boolean
227
+ description: |-
228
+ Whether or not to include all known networks/protocols from
229
+ application services on the homeserver. Defaults to `false`.
230
+ example: false
231
+ third_party_instance_id:
232
+ type: string
233
+ description: |-
234
+ The specific third-party network/protocol to request from the
235
+ homeserver. Can only be used if `include_all_networks` is false.
236
+
237
+ This is the `instance_id` of a `Protocol Instance` returned by
238
+ [`GET /_matrix/client/v3/thirdparty/protocols`](/client-server-api/#get_matrixclientv3thirdpartyprotocols).
239
+ example: irc
240
+ example: {
241
+ "limit": 10,
242
+ "filter": {
243
+ "generic_search_term": "foo",
244
+ "room_types": [
245
+ null,
246
+ "m.space"
247
+ ]
248
+ },
249
+ "include_all_networks": false,
250
+ "third_party_instance_id": "irc-freenode"
251
+ }
252
+ description: Options for which rooms to return.
253
+ required: true
254
+ responses:
255
+ "200":
256
+ description: A filtered list of the published rooms on the server.
257
+ content:
258
+ application/json:
259
+ schema:
260
+ $ref: definitions/public_rooms_response.yaml
261
+ tags:
262
+ - Room discovery
263
+ servers:
264
+ - url: "{protocol}://{hostname}{basePath}"
265
+ variables:
266
+ protocol:
267
+ enum:
268
+ - http
269
+ - https
270
+ default: https
271
+ hostname:
272
+ default: localhost:8008
273
+ basePath:
274
+ default: /_matrix/client/v3
275
+ components:
276
+ securitySchemes:
277
+ accessTokenQuery:
278
+ $ref: definitions/security.yaml#/accessTokenQuery
279
+ accessTokenBearer:
280
+ $ref: definitions/security.yaml#/accessTokenBearer