async-matrix 0.1.2 → 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 +5 -2
  341. metadata +353 -1
@@ -0,0 +1,50 @@
1
+ # Copyright 2019 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ type: object
16
+ title: KeyBackupData
17
+ description: "The key data"
18
+ properties:
19
+ first_message_index:
20
+ description: |-
21
+ The index of the first message in the session that the key can decrypt.
22
+ type: integer
23
+ example: 1
24
+ forwarded_count:
25
+ description: |-
26
+ The number of times this key has been forwarded via key-sharing between devices.
27
+ type: integer
28
+ example: 0
29
+ is_verified:
30
+ description: |-
31
+ Whether the device backing up the key verified the device that the key
32
+ is from.
33
+ type: boolean
34
+ example: false
35
+ session_data:
36
+ description: |-
37
+ Algorithm-dependent data. See the documentation for the backup
38
+ algorithms in [Server-side key backups](/client-server-api/#server-side-key-backups) for more information on the
39
+ expected format of the data.
40
+ type: object
41
+ example: {
42
+ "ephemeral": "base64+ephemeral+key",
43
+ "ciphertext": "base64+ciphertext+of+JSON+data",
44
+ "mac": "base64+mac+of+ciphertext"
45
+ }
46
+ required:
47
+ - first_message_index
48
+ - forwarded_count
49
+ - is_verified
50
+ - session_data
@@ -0,0 +1,57 @@
1
+ # Copyright 2022 The Matrix.org Foundation C.I.C
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ type: object
17
+ title: BackedUpSessionData
18
+ description: |-
19
+ The format of a backed-up session key, prior to encryption, when using the
20
+ `m.megolm_backup.v1.curve25519-aes-sha2` algorithm.
21
+ properties:
22
+ algorithm:
23
+ type: string
24
+ description: |-
25
+ The end-to-end message encryption algorithm that the key is for. Must be `m.megolm.v1.aes-sha2`.
26
+ example: "m.megolm.v1.aes-sha2"
27
+ forwarding_curve25519_key_chain:
28
+ type: array
29
+ items:
30
+ type: string
31
+ description: |-
32
+ Chain of Curve25519 keys through which this session was forwarded, via [m.forwarded_room_key](/client-server-api/#mforwarded_room_key)
33
+ events.
34
+ example: [ "hPQNcabIABgGnx3/ACv/jmMmiQHoeFfuLB17tzWp6Hw" ]
35
+ sender_key:
36
+ type: string
37
+ description: |-
38
+ Unpadded base64-encoded device Curve25519 key.
39
+ example: "RF3s+E7RkTQTGF2d8Deol0FkQvgII2aJDf3/Jp5mxVU"
40
+ sender_claimed_keys:
41
+ type: object
42
+ additionalProperties:
43
+ type: string
44
+ description: |-
45
+ A map from algorithm name (`ed25519`) to the Ed25519 signing key of the sending device.
46
+ example: { "ed25519": "aj40p+aw64yPIdsxoog8jhPu9i7l7NcFRecuOQblE3Y" }
47
+ session_key:
48
+ type: string
49
+ description: |-
50
+ Unpadded base64-encoded session key in [session-export format](https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md#session-export-format).
51
+ example: "AgAAAADxKHa9uFxcXzwYoNueL5Xqi69IkD4sni8Llf..."
52
+ required:
53
+ - algorithm
54
+ - forwarding_curve25519_key_chain
55
+ - sender_key
56
+ - sender_claimed_keys
57
+ - session_key
@@ -0,0 +1,83 @@
1
+ # Copyright 2024 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ type: object
16
+ title: m.login.terms params
17
+ description: Schema for `m.login.terms` entry in the `params` object in a User-Interactive Authentication response.
18
+ required: ['policies']
19
+ properties:
20
+ policies:
21
+ type: object
22
+ description: |
23
+ A map from "Policy ID" to the current definition of this policy document. The Policy ID is a unique
24
+ identifier for a given policy document, using the [Opaque Identifier Grammar](/appendices/#opaque-identifiers).
25
+ additionalProperties:
26
+ type: object
27
+ title: Policy Definition
28
+ required: [version]
29
+ properties:
30
+ version:
31
+ type: string
32
+ description: |
33
+ The version of this policy document. This is provided as a convenience for the client,
34
+ and uses the [Opaque Identifier Grammar](/appendices/#opaque-identifiers).
35
+ additionalProperties:
36
+ type: object
37
+ title: Policy Translation
38
+ required: [name, url]
39
+ description: |
40
+ Map from language codes to details of the document in that language.
41
+ Language codes SHOULD be formatted as per [Section 2.2 of RFC
42
+ 5646](https://datatracker.ietf.org/doc/html/rfc5646#section-2.2),
43
+ though some implementations may use an underscore instead of dash
44
+ (for example, `en_US` instead of `en-US`).
45
+ properties:
46
+ name:
47
+ type: string
48
+ description: |
49
+ The name of this document, in the appropriate language. An
50
+ arbitrary string with no specified maximum length.
51
+ url:
52
+ type: string
53
+ format: uri
54
+ description: |
55
+ A link to the text of this document, in the appropriate
56
+ language. MUST be a valid URI with scheme `https://` or
57
+ `http://`. Insecure HTTP is discouraged.
58
+ example: {
59
+ "policies": {
60
+ "terms_of_service": {
61
+ "version": "1.2",
62
+ "en": {
63
+ "name": "Terms of Service",
64
+ "url": "https://example.org/somewhere/terms-1.2-en.html"
65
+ },
66
+ "fr": {
67
+ "name": "Conditions d'utilisation",
68
+ "url": "https://example.org/somewhere/terms-1.2-fr.html"
69
+ }
70
+ },
71
+ "privacy_policy": {
72
+ "version": "1.2",
73
+ "en": {
74
+ "name": "Privacy Policy",
75
+ "url": "https://example.org/somewhere/privacy-1.2-en.html"
76
+ },
77
+ "fr": {
78
+ "name": "Politique de confidentialité",
79
+ "url": "https://example.org/somewhere/privacy-1.2-fr.html"
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,33 @@
1
+ # Copyright 2023 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ type: object
16
+ title: m.mentions
17
+ description: |-
18
+ Describes whether the event mentions other users or the room. This is contained
19
+ within the event's `content` alongside other fields for the relevant event type.
20
+ example: {
21
+ "user_ids": ["@alice:example.org"]
22
+ }
23
+ properties:
24
+ user_ids:
25
+ type: array
26
+ items:
27
+ type: string
28
+ description: A list of Matrix IDs of mentioned users.
29
+ room:
30
+ type: boolean
31
+ description: |-
32
+ A boolean set to `true` to mention the room, for an `@room` notification.
33
+ (`room` should otherwise not be included on the event.)
@@ -0,0 +1,30 @@
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
+
15
+ type: object
16
+ title: m.oauth params
17
+ description: Schema for `m.oauth` entry in the `params` object in a User-Interactive Authentication response.
18
+ required: ['url']
19
+ properties:
20
+ url:
21
+ type: string
22
+ format: uri
23
+ description: |
24
+ A URL pointing to the homeserver's OAuth account management web UI
25
+ where the user can approve the action. MUST be a valid URI with scheme
26
+ `http://` or `https://`, the latter being RECOMMENDED.
27
+ pattern: "^https?://"
28
+ example: {
29
+ "url": "https://example.org/account/reset-cross-signing"
30
+ }
@@ -0,0 +1,45 @@
1
+ # Copyright 2022 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ type: object
16
+ title: m.relates_to
17
+ description: |-
18
+ Describes the relationship of an event to its parent. This is contained
19
+ within the event's `content` alongside other fields for the relevant event type.
20
+ example: {
21
+ # We deliberately "break" the example by including the top-level field so it renders
22
+ # sensibly for readers of the spec.
23
+ "m.relates_to": {
24
+ "rel_type": "org.example.relationship",
25
+ "event_id": "$an_event"
26
+ }
27
+ }
28
+ properties:
29
+ rel_type:
30
+ type: string
31
+ description: |-
32
+ The namespaced relationship type. Values must use the
33
+ [Common Namespaced Identifier Grammar](/appendices/#common-namespaced-identifier-grammar).
34
+
35
+ The relationship type determines how clients should perceive the event, and in what
36
+ context. Some relationship types are processed server-side for "bundling", though not
37
+ all relationships require such behaviour. For example, an [`m.thread` relationship type](/client-server-api/#threading)
38
+ denotes that the event is part of a "thread" of messages and should be rendered as
39
+ such.
40
+ event_id:
41
+ type: string
42
+ format: mx-event-id
43
+ pattern: "^\\$"
44
+ description: The event ID of the event that this event relates to.
45
+ required: ['rel_type', 'event_id']
@@ -0,0 +1,39 @@
1
+ # Copyright 2022 The Matrix.org Foundation C.I.C
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ allOf:
17
+ - $ref: key_backup_session_data.yaml
18
+ - type: object
19
+ title: ExportedSessionData
20
+ description: |-
21
+ The format used to encode a Megolm session key for export.
22
+
23
+ This is similar to the format before encryption used for the session keys
24
+ in [Server-side key backups](/client-server-api/#server-side-key-backups)
25
+ but adds the `room_id` and `session_id` fields.
26
+ properties:
27
+ room_id:
28
+ type: string
29
+ description: |-
30
+ The room where the session is used.
31
+ example: "!Cuyf34gef24t:localhost"
32
+ session_id:
33
+ type: string
34
+ description: |-
35
+ The Megolm session ID.
36
+ example: "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ"
37
+ required:
38
+ - room_id
39
+ - session_id
@@ -0,0 +1,88 @@
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
+
15
+
16
+ type: object
17
+ title: OlmPayload
18
+ description: |-
19
+ The plaintext payload of Olm message events.
20
+ properties:
21
+ type:
22
+ type: string
23
+ description: The type of the event.
24
+ content:
25
+ type: object
26
+ description: The event content.
27
+ sender:
28
+ type: string
29
+ description: The user ID of the event sender.
30
+ recipient:
31
+ type: string
32
+ description: The user ID of the intended event recipient.
33
+ recipient_keys:
34
+ description: The recipient's signing keys of the encrypted event.
35
+ $ref: "#/components/schemas/SigningKeys"
36
+ keys:
37
+ $ref: "#/components/schemas/SigningKeys"
38
+ description: The sender's signing keys of the encrypted event.
39
+ sender_device_keys:
40
+ $ref: device_keys.yaml
41
+ description: The sender's device keys.
42
+ x-addedInMatrixVersion: "1.15"
43
+ required:
44
+ - type
45
+ - content
46
+ - sender
47
+ - recipient
48
+ - recipient_keys
49
+ - keys
50
+ components:
51
+ schemas:
52
+ SigningKeys:
53
+ type: object
54
+ title: SigningKeys
55
+ description: Public keys used for an `m.olm.v1.curve25519-aes-sha2` event.
56
+ properties:
57
+ ed25519:
58
+ type: string
59
+ description: The Ed25519 public key encoded using unpadded base64.
60
+ required:
61
+ - ed25519
62
+ example: {
63
+ "type": "<type of the plaintext event>",
64
+ "content": "<content for the plaintext event>",
65
+ "sender": "<sender_user_id>",
66
+ "recipient": "<recipient_user_id>",
67
+ "recipient_keys": {
68
+ "ed25519": "<our_ed25519_key>"
69
+ },
70
+ "keys": {
71
+ "ed25519": "<sender_ed25519_key>"
72
+ },
73
+ "sender_device_keys": {
74
+ "algorithms": ["<supported>", "<algorithms>"],
75
+ "user_id": "<user_id>",
76
+ "device_id": "<device_id>",
77
+ "keys": {
78
+ "ed25519:<device_id>": "<sender_ed25519_key>",
79
+ "curve25519:<device_id>": "<sender_curve25519_key>"
80
+ },
81
+ "signatures": {
82
+ "<user_id>": {
83
+ "ed25519:<device_id>": "<device_signature>",
84
+ "ed25519:<ssk_id>": "<ssk_signature>",
85
+ }
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: OneTimeKeys
3
+ type: object
4
+ description: |-
5
+ One-time public keys. The names of the properties should be in the format
6
+ `<algorithm>:<key_id>`. The format of the key is determined
7
+ by the [key algorithm](/client-server-api/#key-algorithms).
8
+ additionalProperties:
9
+ oneOf:
10
+ - type: string
11
+ - type: object
12
+ title: KeyObject
13
+ properties:
14
+ key:
15
+ type: string
16
+ description: The key, encoded using unpadded base64.
17
+ signatures:
18
+ type: object
19
+ description: |-
20
+ Signature for the device. Mapped from user ID to signature object,
21
+ containing mapping from _key signing identifier_ to the signature
22
+ (see also: [Signing JSON](/appendices/#signing-json))
23
+ patternProperties:
24
+ "^@":
25
+ x-pattern-format: mx-user-id
26
+ type: object
27
+ required: ['key', 'signatures']
@@ -0,0 +1,37 @@
1
+ # Copyright 2018 New Vector Ltd
2
+ # Copyright 2019 The Matrix.org Foundation C.I.C.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ type: object
16
+ title: OpenIdCredentials
17
+ properties:
18
+ access_token:
19
+ type: string
20
+ description: |-
21
+ An access token the consumer may use to verify the identity of
22
+ the person who generated the token. This is given to the federation
23
+ API `GET /openid/userinfo` to verify the user's identity.
24
+ token_type:
25
+ type: string
26
+ description: The string `Bearer`.
27
+ matrix_server_name:
28
+ type: string
29
+ description: |-
30
+ The homeserver domain the consumer should use when attempting to
31
+ verify the user's identity.
32
+ expires_in:
33
+ type: integer
34
+ description: |-
35
+ The number of seconds before this token expires and a new one must
36
+ be generated.
37
+ required: ['access_token', 'token_type', 'matrix_server_name', 'expires_in']
@@ -0,0 +1,44 @@
1
+ # Copyright 2018 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
+ allOf:
15
+ - $ref: ../../application-service/definitions/protocol_base.yaml
16
+ - type: object
17
+ properties:
18
+ instances:
19
+ description: |-
20
+ A list of objects representing independent instances of configuration.
21
+ For example, multiple networks on IRC if multiple are provided by the
22
+ same application service.
23
+
24
+ The instances are modified by the homeserver from the response of
25
+ [`GET /_matrix/app/v1/thirdparty/protocol/{protocol}`](/application-service-api/#get_matrixappv1thirdpartyprotocolprotocol)
26
+ to include an `instance_id` to serve as a unique identifier for each
27
+ instance on the homeserver.
28
+ type: array
29
+ items:
30
+ allOf:
31
+ - $ref: ../../application-service/definitions/protocol_instance.yaml
32
+ - type: object
33
+ properties:
34
+ instance_id:
35
+ type: string
36
+ description: |-
37
+ A unique identifier for this instance on the homeserver. This field is added
38
+ to the response of [`GET /_matrix/app/v1/thirdparty/protocol/{protocol}`](/application-service-api/#get_matrixappv1thirdpartyprotocolprotocol)
39
+ by the homeserver.
40
+
41
+ This is the identifier to use as the `third_party_instance_id` in a request to
42
+ [`POST /_matrix/client/v3/publicRooms`](/client-server-api/#post_matrixclientv3publicrooms).
43
+ example: "irc-freenode"
44
+ required: ['instances']
@@ -0,0 +1,74 @@
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
+
15
+ type: object
16
+ title: "PublishedRoomsChunk"
17
+ properties:
18
+ canonical_alias:
19
+ type: string
20
+ format: mx-room-alias
21
+ pattern: "^#"
22
+ description: The canonical alias of the room, if any.
23
+ example: "#general:example.org"
24
+ name:
25
+ type: string
26
+ description: The name of the room, if any.
27
+ example: "General Chat"
28
+ num_joined_members:
29
+ type: integer
30
+ description: The number of members joined to the room.
31
+ example: 42
32
+ room_id:
33
+ type: string
34
+ format: mx-room-id
35
+ pattern: "^!"
36
+ description: The ID of the room.
37
+ example: "!abcdefg:example.org"
38
+ topic:
39
+ type: string
40
+ description: |-
41
+ The plain text topic of the room. Omitted if no `text/plain` mimetype
42
+ exists in [`m.room.topic`](/client-server-api/#mroomtopic).
43
+ example: "All things general"
44
+ world_readable:
45
+ type: boolean
46
+ description: Whether the room may be viewed by users without joining.
47
+ example: false
48
+ guest_can_join:
49
+ type: boolean
50
+ description: |-
51
+ Whether guest users may join the room and participate in it.
52
+ If they can, they will be subject to ordinary power level
53
+ rules like any other user.
54
+ example: true
55
+ avatar_url:
56
+ type: string
57
+ format: uri
58
+ description: The URL for the room's avatar, if one is set.
59
+ example: "mxc://example.org/abcdef"
60
+ join_rule:
61
+ type: string
62
+ description: |-
63
+ The room's join rule. When not present, the room is assumed to
64
+ be `public`.
65
+ example: "public"
66
+ room_type:
67
+ type: string
68
+ description: |-
69
+ The `type` of room (from [`m.room.create`](/client-server-api/#mroomcreate)), if any.
70
+ required:
71
+ - room_id
72
+ - num_joined_members
73
+ - world_readable
74
+ - guest_can_join
@@ -0,0 +1,59 @@
1
+ # Copyright 2018, 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
+
15
+ type: object
16
+ description: A list of the published rooms on the server.
17
+ required: ["chunk"]
18
+ properties:
19
+ chunk:
20
+ type: array
21
+ description: |-
22
+ A paginated chunk of published rooms.
23
+ items:
24
+ $ref: "public_rooms_chunk.yaml"
25
+ next_batch:
26
+ type: string
27
+ description: |-
28
+ A pagination token for the response. The absence of this token
29
+ means there are no more results to fetch and the client should
30
+ stop paginating.
31
+ prev_batch:
32
+ type: string
33
+ description: |-
34
+ A pagination token that allows fetching previous results. The
35
+ absence of this token means there are no results before this
36
+ batch, i.e. this is the first batch.
37
+ total_room_count_estimate:
38
+ type: integer
39
+ description: |-
40
+ An estimate on the total number of published rooms, if the
41
+ server has an estimate.
42
+ example: {
43
+ "chunk": [
44
+ {
45
+ "avatar_url": "mxc://bleecker.street/CHEDDARandBRIE",
46
+ "guest_can_join": false,
47
+ "name": "CHEESE",
48
+ "num_joined_members": 37,
49
+ "room_id": "!ol19s:bleecker.street",
50
+ "topic": "Tasty tasty cheese",
51
+ "world_readable": true,
52
+ "join_rule": "public",
53
+ "room_type": "m.space"
54
+ }
55
+ ],
56
+ "next_batch": "p190q",
57
+ "prev_batch": "p1902",
58
+ "total_room_count_estimate": 115
59
+ }