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,488 @@
1
+ # Copyright 2016 OpenMarket Ltd
2
+ # Copyright 2022 The Matrix.org Foundation C.I.C.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ openapi: 3.1.0
16
+ info:
17
+ title: Matrix Client-Server Registration API
18
+ version: 1.0.0
19
+ paths:
20
+ /register:
21
+ post:
22
+ summary: Register for an account on this homeserver.
23
+ description: |-
24
+ This API endpoint uses the [User-Interactive Authentication API](/client-server-api/#user-interactive-authentication-api), except in
25
+ the cases where a guest account is being registered.
26
+
27
+ Register for an account on this homeserver.
28
+
29
+ There are two kinds of user account:
30
+
31
+ - `user` accounts. These accounts may use the full API described in this specification.
32
+
33
+ - `guest` accounts. These accounts may have limited permissions and may not be supported by all servers.
34
+
35
+ If registration is successful, this endpoint will issue an access token
36
+ the client can use to authorize itself in subsequent requests.
37
+
38
+ If the client does not supply a `device_id`, the server must
39
+ auto-generate one.
40
+
41
+ The server SHOULD register an account with a User ID based on the
42
+ `username` provided, if any. Note that the grammar of Matrix User ID
43
+ localparts is restricted, so the server MUST either map the provided
44
+ `username` onto a `user_id` in a logical manner, or reject any
45
+ `username` which does not comply to the grammar with
46
+ `M_INVALID_USERNAME`.
47
+
48
+ Matrix clients MUST NOT assume that localpart of the registered
49
+ `user_id` matches the provided `username`.
50
+
51
+ The returned access token must be associated with the `device_id`
52
+ supplied by the client or generated by the server. The server may
53
+ invalidate any access token previously associated with that device. See
54
+ [Relationship between access tokens and devices](/client-server-api/#relationship-between-access-tokens-and-devices).
55
+
56
+ When registering a guest account, all parameters in the request body
57
+ with the exception of `initial_device_display_name` MUST BE ignored
58
+ by the server. The server MUST pick a `device_id` for the account
59
+ regardless of input.
60
+
61
+ Any user ID returned by this API must conform to the grammar given in the
62
+ [Matrix specification](/appendices/#user-identifiers).
63
+
64
+ {{% boxes/note %}}
65
+ {{% added-in v="1.17" %}}
66
+ Even if the server doesn't support the Legacy authentication API, it
67
+ MUST support this endpoint for application services to be able to
68
+ [create users](/application-service-api/#server-admin-style-permissions).
69
+
70
+ In that case application services MUST set the `"inhibit_login": true`
71
+ parameter as they cannot use it to log in as users. If the
72
+ `inhibit_login` parameter is not set to `true`, the server MUST return a
73
+ 400 HTTP status code with an `M_APPSERVICE_LOGIN_UNSUPPORTED` error code.
74
+ {{% /boxes/note %}}
75
+
76
+ {{% boxes/warning %}}
77
+ {{% added-in v="1.18" %}} [OAuth 2.0 aware clients](/client-server-api/#oauth-20-aware-clients)
78
+ MUST NOT use this endpoint when the server offers the [`m.login.sso`
79
+ authentication flow](/client-server-api/#client-login-via-sso) with
80
+ `oauth_aware_preferred` set to `true`. Instead they MUST use the
81
+ [`/login/sso/redirect`](/client-server-api/#get_matrixclientv3loginssoredirect)
82
+ endpoint, adding the `action=register` parameter.
83
+ {{% /boxes/warning %}}
84
+ operationId: register
85
+ parameters:
86
+ - in: query
87
+ name: kind
88
+ required: false
89
+ description: The kind of account to register. Defaults to `user`.
90
+ # swagger-UI overrides the default with the example, so better make the
91
+ # example the default.
92
+ example: user
93
+ schema:
94
+ type: string
95
+ enum:
96
+ - guest
97
+ - user
98
+ default: user
99
+ requestBody:
100
+ content:
101
+ application/json:
102
+ schema:
103
+ type: object
104
+ properties:
105
+ auth:
106
+ description: |-
107
+ Additional authentication information for the
108
+ user-interactive authentication API. Note that this
109
+ information is *not* used to define how the registered user
110
+ should be authenticated, but is instead used to
111
+ authenticate the `register` call itself.
112
+ allOf:
113
+ - $ref: definitions/auth_data.yaml
114
+ username:
115
+ type: string
116
+ description: |-
117
+ The basis for the localpart of the desired Matrix ID. If omitted,
118
+ the homeserver MUST generate a Matrix ID local part.
119
+ example: cheeky_monkey
120
+ password:
121
+ type: string
122
+ description: The desired password for the account.
123
+ example: ilovebananas
124
+ device_id:
125
+ type: string
126
+ description: |-
127
+ ID of the client device. If this does not correspond to a
128
+ known client device, a new device will be created. The server
129
+ will auto-generate a `device_id` if this is not specified.
130
+ example: GHTYAJCE
131
+ initial_device_display_name:
132
+ type: string
133
+ description: |-
134
+ A display name to assign to the newly-created device. Ignored
135
+ if `device_id` corresponds to a known device.
136
+ example: Jungle Phone
137
+ inhibit_login:
138
+ type: boolean
139
+ description: |-
140
+ If true, an `access_token` and `device_id` should not be
141
+ returned from this call, therefore preventing an automatic
142
+ login. Defaults to `false`.
143
+ example: false
144
+ refresh_token:
145
+ type: boolean
146
+ description: If `true`, the client supports refresh tokens.
147
+ x-addedInMatrixVersion: "1.3"
148
+ required: true
149
+ responses:
150
+ "200":
151
+ description: The account has been registered.
152
+ content:
153
+ application/json:
154
+ schema:
155
+ type: object
156
+ properties:
157
+ user_id:
158
+ type: string
159
+ format: mx-user-id
160
+ pattern: "^@"
161
+ description: |-
162
+ The fully-qualified Matrix user ID (MXID) that has been registered.
163
+
164
+ Any user ID returned by this API must conform to the grammar given in the
165
+ [Matrix specification](/appendices/#user-identifiers).
166
+ access_token:
167
+ type: string
168
+ description: |-
169
+ An access token for the account.
170
+ This access token can then be used to authorize other requests.
171
+ Required if the `inhibit_login` option is false.
172
+ refresh_token:
173
+ type: string
174
+ description: |-
175
+ A refresh token for the account. This token can be used to
176
+ obtain a new access token when it expires by calling the
177
+ `/refresh` endpoint.
178
+
179
+ Omitted if the `inhibit_login` option is true.
180
+ x-addedInMatrixVersion: "1.3"
181
+ expires_in_ms:
182
+ type: integer
183
+ description: |-
184
+ The lifetime of the access token, in milliseconds. Once
185
+ the access token has expired a new access token can be
186
+ obtained by using the provided refresh token. If no
187
+ refresh token is provided, the client will need to re-log in
188
+ to obtain a new access token. If not given, the client can
189
+ assume that the access token will not expire.
190
+
191
+ Omitted if the `inhibit_login` option is true.
192
+ x-addedInMatrixVersion: "1.3"
193
+ home_server:
194
+ type: string
195
+ format: mx-server-name
196
+ deprecated: true
197
+ description: |-
198
+ The server_name of the homeserver on which the account has
199
+ been registered.
200
+
201
+ **Deprecated**. Clients should extract the server_name from
202
+ `user_id` (by splitting at the first colon) if they require
203
+ it. Note also that `homeserver` is not spelt this way.
204
+ device_id:
205
+ type: string
206
+ description: |-
207
+ ID of the registered device. Will be the same as the
208
+ corresponding parameter in the request, if one was specified.
209
+ Required if the `inhibit_login` option is false.
210
+ required:
211
+ - user_id
212
+ examples:
213
+ response:
214
+ value: {
215
+ "user_id": "@cheeky_monkey:matrix.org",
216
+ "access_token": "abc123",
217
+ "device_id": "GHTYAJCE"
218
+ }
219
+ "400":
220
+ description: |-
221
+ Part of the request was invalid. This may include one of the following error codes:
222
+
223
+ * `M_USER_IN_USE` : The desired user ID is already taken.
224
+ * `M_INVALID_USERNAME` : The desired user ID is not a valid user name.
225
+ * `M_EXCLUSIVE` : The desired user ID is in the exclusive namespace
226
+ claimed by an application service.
227
+ * {{% added-in v="1.17" %}} `M_APPSERVICE_LOGIN_UNSUPPORTED`: an application service
228
+ used the `m.login.application_service` type without setting `inhibit_login` to `true`,
229
+ but the server doesn't support logging in via the Legacy authentication API.
230
+
231
+ These errors may be returned at any stage of the registration process,
232
+ including after authentication if the requested user ID was registered
233
+ whilst the client was performing authentication.
234
+
235
+ Homeservers MUST perform the relevant checks and return these codes before
236
+ performing User-Interactive Authentication, although they may also return
237
+ them after authentication is completed if, for example, the requested user ID
238
+ was registered whilst the client was performing authentication.
239
+ content:
240
+ application/json:
241
+ schema:
242
+ $ref: definitions/errors/error.yaml
243
+ examples:
244
+ response:
245
+ value: {
246
+ "errcode": "M_USER_IN_USE",
247
+ "error": "Desired user ID is already taken."
248
+ }
249
+ "401":
250
+ description: The homeserver requires additional authentication information.
251
+ content:
252
+ application/json:
253
+ schema:
254
+ $ref: definitions/auth_response.yaml
255
+ "403":
256
+ description: |-
257
+ The homeserver does not permit registering the account. This response
258
+ can be used to identify that a particular `kind` of account is not
259
+ allowed, or that registration is generally not supported by the homeserver.
260
+ content:
261
+ application/json:
262
+ schema:
263
+ $ref: definitions/errors/error.yaml
264
+ examples:
265
+ response:
266
+ value: {
267
+ "errcode": "M_FORBIDDEN",
268
+ "error": "Registration is disabled"
269
+ }
270
+ "429":
271
+ description: This request was rate-limited.
272
+ content:
273
+ application/json:
274
+ schema:
275
+ $ref: definitions/errors/rate_limited.yaml
276
+ tags:
277
+ - Account management
278
+ /register/email/requestToken:
279
+ post:
280
+ summary: Begins the validation process for an email to be used during
281
+ registration.
282
+ description: |-
283
+ The homeserver must check that the given email address is **not**
284
+ already associated with an account on this homeserver. The homeserver
285
+ should validate the email itself, either by sending a validation email
286
+ itself or by using a service it has control over.
287
+ operationId: requestTokenToRegisterEmail
288
+ requestBody:
289
+ content:
290
+ application/json:
291
+ schema:
292
+ $ref: definitions/request_email_validation.yaml
293
+ required: true
294
+ responses:
295
+ "200":
296
+ description: |-
297
+ An email has been sent to the specified address. Note that this
298
+ may be an email containing the validation token or it may be
299
+ informing the user of an error.
300
+ content:
301
+ application/json:
302
+ schema:
303
+ $ref: definitions/request_token_response.yaml
304
+ "400":
305
+ description: |-
306
+ Part of the request was invalid. This may include one of the following error codes:
307
+
308
+ * `M_THREEPID_IN_USE` : The email address is already registered to an account on this server.
309
+ However, if the homeserver has the ability to send email, it is recommended that the server
310
+ instead send an email to the user with instructions on how to reset their password.
311
+ This prevents malicious parties from being able to determine if a given email address
312
+ has an account on the homeserver in question.
313
+ * `M_SERVER_NOT_TRUSTED` : The `id_server` parameter refers to an identity server
314
+ that is not trusted by this homeserver.
315
+ content:
316
+ application/json:
317
+ schema:
318
+ $ref: definitions/errors/error.yaml
319
+ examples:
320
+ response:
321
+ value: {
322
+ "errcode": "M_THREEPID_IN_USE",
323
+ "error": "The specified address is already in use"
324
+ }
325
+ "403":
326
+ description: The homeserver does not permit the address to be bound.
327
+ content:
328
+ application/json:
329
+ schema:
330
+ $ref: definitions/errors/error.yaml
331
+ examples:
332
+ response:
333
+ value: {
334
+ "errcode": "M_THREEPID_DENIED",
335
+ "error": "Third-party identifier is not allowed"
336
+ }
337
+ tags:
338
+ - Account management
339
+ /register/msisdn/requestToken:
340
+ post:
341
+ summary: Requests a validation token be sent to the given phone number for the
342
+ purpose of registering an account
343
+ description: |-
344
+ The homeserver must check that the given phone number is **not**
345
+ already associated with an account on this homeserver. The homeserver
346
+ should validate the phone number itself, either by sending a validation
347
+ message itself or by using a service it has control over.
348
+ operationId: requestTokenToRegisterMSISDN
349
+ requestBody:
350
+ content:
351
+ application/json:
352
+ schema:
353
+ $ref: definitions/request_msisdn_validation.yaml
354
+ required: true
355
+ responses:
356
+ "200":
357
+ description: |-
358
+ An SMS message has been sent to the specified phone number. Note
359
+ that this may be an SMS message containing the validation token or
360
+ it may be informing the user of an error.
361
+ content:
362
+ application/json:
363
+ schema:
364
+ $ref: definitions/request_token_response.yaml
365
+ "400":
366
+ description: |-
367
+ Part of the request was invalid. This may include one of the following error codes:
368
+
369
+ * `M_THREEPID_IN_USE` : The phone number is already registered to an account on this server.
370
+ However, if the homeserver has the ability to send SMS message, it is recommended that the server
371
+ instead send an SMS message to the user with instructions on how to reset their password.
372
+ This prevents malicious parties from being able to determine if a given phone number
373
+ has an account on the homeserver in question.
374
+ * `M_SERVER_NOT_TRUSTED` : The `id_server` parameter refers to an identity server
375
+ that is not trusted by this homeserver.
376
+ content:
377
+ application/json:
378
+ schema:
379
+ $ref: definitions/errors/error.yaml
380
+ examples:
381
+ response:
382
+ value: {
383
+ "errcode": "M_THREEPID_IN_USE",
384
+ "error": "The specified address is already in use"
385
+ }
386
+ "403":
387
+ description: The homeserver does not permit the address to be bound.
388
+ content:
389
+ application/json:
390
+ schema:
391
+ $ref: definitions/errors/error.yaml
392
+ examples:
393
+ response:
394
+ value: {
395
+ "errcode": "M_THREEPID_DENIED",
396
+ "error": "Third-party identifier is not allowed"
397
+ }
398
+ tags:
399
+ - Account management
400
+ /register/available:
401
+ get:
402
+ summary: Checks to see if a username is available on the server.
403
+ description: |-
404
+ Checks to see if a username is available, and valid, for the server.
405
+
406
+ The server should check to ensure that, at the time of the request, the
407
+ username requested is available for use. This includes verifying that an
408
+ application service has not claimed the username and that the username
409
+ fits the server's desired requirements (for example, a server could dictate
410
+ that it does not permit usernames with underscores).
411
+
412
+ Matrix clients may wish to use this API prior to attempting registration,
413
+ however the clients must also be aware that using this API does not normally
414
+ reserve the username. This can mean that the username becomes unavailable
415
+ between checking its availability and attempting to register it.
416
+ operationId: checkUsernameAvailability
417
+ parameters:
418
+ - in: query
419
+ name: username
420
+ required: true
421
+ description: The username to check the availability of.
422
+ example: my_cool_localpart
423
+ schema:
424
+ type: string
425
+ default: my_cool_localpart
426
+ responses:
427
+ "200":
428
+ description: The username is available
429
+ content:
430
+ application/json:
431
+ schema:
432
+ type: object
433
+ properties:
434
+ available:
435
+ type: boolean
436
+ description: |-
437
+ A flag to indicate that the username is available. This should always
438
+ be `true` when the server replies with 200 OK.
439
+ examples:
440
+ response:
441
+ value: {
442
+ "available": true
443
+ }
444
+ "400":
445
+ description: |-
446
+ Part of the request was invalid or the username is not available. This may
447
+ include one of the following error codes:
448
+
449
+ * `M_USER_IN_USE` : The desired username is already taken.
450
+ * `M_INVALID_USERNAME` : The desired username is not a valid user name.
451
+ * `M_EXCLUSIVE` : The desired username is in the exclusive namespace
452
+ claimed by an application service.
453
+ content:
454
+ application/json:
455
+ schema:
456
+ $ref: definitions/errors/error.yaml
457
+ examples:
458
+ response:
459
+ value: {
460
+ "errcode": "M_USER_IN_USE",
461
+ "error": "Desired user ID is already taken."
462
+ }
463
+ "429":
464
+ description: This request was rate-limited.
465
+ content:
466
+ application/json:
467
+ schema:
468
+ $ref: definitions/errors/rate_limited.yaml
469
+ tags:
470
+ - Account management
471
+ servers:
472
+ - url: "{protocol}://{hostname}{basePath}"
473
+ variables:
474
+ protocol:
475
+ enum:
476
+ - http
477
+ - https
478
+ default: https
479
+ hostname:
480
+ default: localhost:8008
481
+ basePath:
482
+ default: /_matrix/client/v3
483
+ components:
484
+ securitySchemes:
485
+ accessTokenQuery:
486
+ $ref: definitions/security.yaml#/accessTokenQuery
487
+ accessTokenBearer:
488
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,93 @@
1
+ # Copyright 2022 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server Registration Token API
17
+ version: 1.0.0
18
+ paths:
19
+ /register/m.login.registration_token/validity:
20
+ get:
21
+ x-addedInMatrixVersion: "1.2"
22
+ summary: Query if a given registration token is still valid.
23
+ description: |-
24
+ Queries the server to determine if a given registration token is still
25
+ valid at the time of request. This is a point-in-time check where the
26
+ token might still expire by the time it is used.
27
+
28
+ Servers should be sure to rate limit this endpoint to avoid brute force
29
+ attacks.
30
+ operationId: registrationTokenValidity
31
+ parameters:
32
+ - in: query
33
+ name: token
34
+ required: true
35
+ description: The token to check validity of.
36
+ example: fBVFdqVE
37
+ schema:
38
+ type: string
39
+ responses:
40
+ "200":
41
+ description: The check has a result.
42
+ content:
43
+ application/json:
44
+ schema:
45
+ type: object
46
+ properties:
47
+ valid:
48
+ type: boolean
49
+ description: |-
50
+ True if the token is still valid, false otherwise. This should
51
+ additionally be false if the token is not a recognised token by
52
+ the server.
53
+ required:
54
+ - valid
55
+ examples:
56
+ response:
57
+ value: {
58
+ "valid": true
59
+ }
60
+ "403":
61
+ description: |-
62
+ The homeserver does not permit registration and thus all tokens are
63
+ considered invalid.
64
+ content:
65
+ application/json:
66
+ schema:
67
+ $ref: definitions/errors/error.yaml
68
+ examples:
69
+ response:
70
+ value: {
71
+ "errcode": "M_FORBIDDEN",
72
+ "error": "Registration is not enabled on this homeserver."
73
+ }
74
+ "429":
75
+ description: This request was rate-limited.
76
+ content:
77
+ application/json:
78
+ schema:
79
+ $ref: definitions/errors/rate_limited.yaml
80
+ tags:
81
+ - Account management
82
+ servers:
83
+ - url: "{protocol}://{hostname}{basePath}"
84
+ variables:
85
+ protocol:
86
+ enum:
87
+ - http
88
+ - https
89
+ default: https
90
+ hostname:
91
+ default: localhost:8008
92
+ basePath:
93
+ default: /_matrix/client/v1