async-matrix 0.1.3 → 1.1.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 (365) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +131 -0
  3. data/data/discord-api-spec/openapi.json +40404 -0
  4. data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
  5. data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
  6. data/data/matrix-spec/api/client-server/admin.yaml +512 -0
  7. data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
  8. data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
  9. data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
  10. data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
  11. data/data/matrix-spec/api/client-server/banning.yaml +177 -0
  12. data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
  13. data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
  14. data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
  15. data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
  16. data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
  17. data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
  18. data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
  19. data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
  20. data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
  21. data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
  22. data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
  23. data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
  24. data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
  25. data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
  26. data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
  27. data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
  28. data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
  29. data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
  30. data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
  31. data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
  32. data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
  33. data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
  34. data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
  35. data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
  36. data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
  37. data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
  38. data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
  39. data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
  40. data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
  41. data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
  42. data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
  43. data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
  44. data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
  45. data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
  46. data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
  47. data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
  48. data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
  49. data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
  50. data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
  51. data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
  52. data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
  53. data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
  54. data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
  55. data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
  56. data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
  57. data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
  58. data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
  59. data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
  60. data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
  61. data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
  62. data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
  63. data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
  64. data/data/matrix-spec/api/client-server/directory.yaml +318 -0
  65. data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
  66. data/data/matrix-spec/api/client-server/filter.yaml +224 -0
  67. data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
  68. data/data/matrix-spec/api/client-server/joining.yaml +238 -0
  69. data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
  70. data/data/matrix-spec/api/client-server/keys.yaml +482 -0
  71. data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
  72. data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
  73. data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
  74. data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
  75. data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
  76. data/data/matrix-spec/api/client-server/login.yaml +321 -0
  77. data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
  78. data/data/matrix-spec/api/client-server/logout.yaml +86 -0
  79. data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
  80. data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
  81. data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
  82. data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
  83. data/data/matrix-spec/api/client-server/openid.yaml +98 -0
  84. data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
  85. data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
  86. data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
  87. data/data/matrix-spec/api/client-server/presence.yaml +169 -0
  88. data/data/matrix-spec/api/client-server/profile.yaml +366 -0
  89. data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
  90. data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
  91. data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
  92. data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
  93. data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
  94. data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
  95. data/data/matrix-spec/api/client-server/registration.yaml +488 -0
  96. data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
  97. data/data/matrix-spec/api/client-server/relations.yaml +382 -0
  98. data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
  99. data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
  100. data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
  101. data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
  102. data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
  103. data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
  104. data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
  105. data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
  106. data/data/matrix-spec/api/client-server/search.yaml +385 -0
  107. data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
  108. data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
  109. data/data/matrix-spec/api/client-server/support.yaml +142 -0
  110. data/data/matrix-spec/api/client-server/sync.yaml +692 -0
  111. data/data/matrix-spec/api/client-server/tags.yaml +183 -0
  112. data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
  113. data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
  114. data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
  115. data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
  116. data/data/matrix-spec/api/client-server/typing.yaml +103 -0
  117. data/data/matrix-spec/api/client-server/users.yaml +136 -0
  118. data/data/matrix-spec/api/client-server/versions.yaml +108 -0
  119. data/data/matrix-spec/api/client-server/voip.yaml +93 -0
  120. data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
  121. data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
  122. data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
  123. data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
  124. data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
  125. data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
  126. data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
  127. data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
  128. data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
  129. data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
  130. data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
  131. data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
  132. data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
  133. data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
  134. data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
  135. data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
  136. data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
  137. data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
  138. data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
  139. data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
  140. data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
  141. data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
  142. data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
  143. data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
  144. data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
  145. data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
  146. data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
  147. data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
  148. data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
  149. data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
  150. data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
  151. data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
  152. data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
  153. data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
  154. data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
  155. data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
  156. data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
  157. data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
  158. data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
  159. data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
  160. data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
  161. data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
  162. data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
  163. data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
  164. data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
  165. data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
  166. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
  167. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
  168. data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
  169. data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
  170. data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
  171. data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
  172. data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
  173. data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
  174. data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
  175. data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
  176. data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
  177. data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
  178. data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
  179. data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
  180. data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
  181. data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
  182. data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
  183. data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
  184. data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
  185. data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
  186. data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
  187. data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
  188. data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
  189. data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
  190. data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
  191. data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
  192. data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
  193. data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
  194. data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
  195. data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
  196. data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
  197. data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
  198. data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
  199. data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
  200. data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
  201. data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
  202. data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
  203. data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
  204. data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
  205. data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
  206. data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
  207. data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
  208. data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
  209. data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
  210. data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
  211. data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
  212. data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
  213. data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
  214. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
  215. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
  216. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
  217. data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
  218. data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
  219. data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
  220. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
  221. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
  222. data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
  223. data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
  224. data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
  225. data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
  226. data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
  227. data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
  228. data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
  229. data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
  230. data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
  231. data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
  232. data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
  233. data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
  234. data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
  235. data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
  236. data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
  237. data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
  238. data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
  239. data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
  240. data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
  241. data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
  242. data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
  243. data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
  244. data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
  245. data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
  246. data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
  247. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
  248. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
  249. data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
  250. data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
  251. data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
  252. data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
  253. data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
  254. data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
  255. data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
  256. data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
  257. data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
  258. data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
  259. data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
  260. data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
  261. data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
  262. data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
  263. data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
  264. data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
  265. data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
  266. data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
  267. data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
  268. data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
  269. data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
  270. data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
  271. data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
  272. data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
  273. data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
  274. data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
  275. data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
  276. data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
  277. data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
  278. data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
  279. data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
  280. data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
  281. data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
  282. data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
  283. data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
  284. data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
  285. data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
  286. data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
  287. data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
  288. data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
  289. data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
  290. data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
  291. data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
  292. data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
  293. data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
  294. data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
  295. data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
  296. data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
  297. data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
  298. data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
  299. data/lib/async/discord/api/path_tree.rb +130 -0
  300. data/lib/async/discord/api.rb +156 -0
  301. data/lib/async/discord/client.rb +286 -0
  302. data/lib/async/discord/error.rb +88 -0
  303. data/lib/async/discord/gateway.rb +362 -0
  304. data/lib/async/discord.rb +16 -0
  305. data/lib/async/matrix/api/chain.rb +584 -0
  306. data/lib/async/matrix/api/concat.rb +105 -0
  307. data/lib/async/matrix/api/path_tree.rb +208 -0
  308. data/lib/async/matrix/api.rb +204 -0
  309. data/lib/async/matrix/application_service/bot.rb +235 -0
  310. data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
  311. data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
  312. data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
  313. data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
  314. data/lib/async/matrix/application_service/config/schema/config.json +61 -0
  315. data/lib/async/matrix/application_service/config/schema/database.json +38 -0
  316. data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
  317. data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
  318. data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
  319. data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
  320. data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
  321. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
  322. data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
  323. data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
  324. data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
  325. data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
  326. data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
  327. data/lib/async/matrix/application_service/config/vivify.rb +113 -0
  328. data/lib/async/matrix/application_service/config.rb +214 -123
  329. data/lib/async/matrix/application_service/dispatcher.rb +115 -113
  330. data/lib/async/matrix/application_service/error_response.rb +26 -26
  331. data/lib/async/matrix/application_service/event.rb +206 -1
  332. data/lib/async/matrix/application_service/server.rb +286 -215
  333. data/lib/async/matrix/application_service/transaction.rb +52 -52
  334. data/lib/async/matrix/application_service/transaction_store.rb +62 -62
  335. data/lib/async/matrix/bridge/discord/db/connection.rb +143 -0
  336. data/lib/async/matrix/bridge/discord/db/file.rb +120 -0
  337. data/lib/async/matrix/bridge/discord/db/guild.rb +122 -0
  338. data/lib/async/matrix/bridge/discord/db/message.rb +162 -0
  339. data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +14 -0
  340. data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +14 -0
  341. data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +23 -0
  342. data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +19 -0
  343. data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +20 -0
  344. data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +19 -0
  345. data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +18 -0
  346. data/lib/async/matrix/bridge/discord/db/portal.rb +152 -0
  347. data/lib/async/matrix/bridge/discord/db/puppet.rb +130 -0
  348. data/lib/async/matrix/bridge/discord/db/reaction.rb +167 -0
  349. data/lib/async/matrix/bridge/discord/db/user.rb +114 -0
  350. data/lib/async/matrix/bridge/discord/db.rb +140 -0
  351. data/lib/async/matrix/client.rb +919 -179
  352. data/lib/async/matrix/connection.rb +8 -8
  353. data/lib/async/matrix/double_puppet_client.rb +84 -0
  354. data/lib/async/matrix/endpoint.rb +45 -45
  355. data/lib/async/matrix/error.rb +49 -43
  356. data/lib/async/matrix/media_client.rb +173 -0
  357. data/lib/async/matrix/notifier.rb +92 -92
  358. data/lib/async/matrix/schema/registry.rb +355 -0
  359. data/lib/async/matrix/schema/validation_error.rb +226 -0
  360. data/lib/async/matrix/schema.rb +174 -0
  361. data/lib/async/matrix/server.rb +8 -7
  362. data/lib/async/matrix/stream.rb +7 -7
  363. data/lib/async/matrix/version.rb +1 -1
  364. data/lib/async/matrix.rb +4 -2
  365. metadata +419 -1
@@ -0,0 +1,194 @@
1
+ # Copyright 2016 OpenMarket Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server Rooms API
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/messages":
20
+ get:
21
+ summary: Get a list of events for this room
22
+ description: |-
23
+ This API returns a list of message and state events for a room. It uses
24
+ pagination query parameters to paginate history in the room.
25
+
26
+ *Note*: This endpoint supports lazy-loading of room member events. See
27
+ [Lazy-loading room members](/client-server-api/#lazy-loading-room-members) for more information.
28
+ operationId: getRoomEvents
29
+ security:
30
+ - accessTokenQuery: []
31
+ - accessTokenBearer: []
32
+ parameters:
33
+ - in: path
34
+ name: roomId
35
+ description: The room to get events from.
36
+ required: true
37
+ example: "!636q39766251:example.com"
38
+ schema:
39
+ type: string
40
+ format: mx-room-id
41
+ pattern: "^!"
42
+ - in: query
43
+ name: from
44
+ x-changedInMatrixVersion:
45
+ "1.3": |
46
+ Previously, this field was required and paginating from the first or
47
+ last visible event in the room history wasn't supported.
48
+ description: |-
49
+ The token to start returning events from. This token can be obtained
50
+ from a `prev_batch` or `next_batch` token returned by the `/sync` endpoint,
51
+ or from an `end` token returned by a previous request to this endpoint.
52
+
53
+ This endpoint can also accept a value returned as a `start` token
54
+ by a previous request to this endpoint, though servers are not
55
+ required to support this. Clients should not rely on the behaviour.
56
+
57
+ If it is not provided, the homeserver shall return a list of messages
58
+ from the first or last (per the value of the `dir` parameter) visible
59
+ event in the room history for the requesting user.
60
+ required: false
61
+ example: s345_678_333
62
+ schema:
63
+ type: string
64
+ - in: query
65
+ name: to
66
+ description: |-
67
+ The token to stop returning events at. This token can be obtained from
68
+ a `prev_batch` or `next_batch` token returned by the `/sync` endpoint,
69
+ or from an `end` token returned by a previous request to this endpoint.
70
+ required: false
71
+ schema:
72
+ type: string
73
+ - in: query
74
+ name: dir
75
+ description: |-
76
+ The direction to return events from. If this is set to `f`, events
77
+ will be returned in chronological order starting at `from`. If it
78
+ is set to `b`, events will be returned in *reverse* chronological
79
+ order, again starting at `from`.
80
+ required: true
81
+ example: b
82
+ schema:
83
+ type: string
84
+ enum:
85
+ - b
86
+ - f
87
+ - in: query
88
+ name: limit
89
+ description: "The maximum number of events to return. Default: 10."
90
+ example: 3
91
+ schema:
92
+ type: integer
93
+ - in: query
94
+ name: filter
95
+ description: A JSON RoomEventFilter to filter returned events with.
96
+ example: '{"contains_url":true}'
97
+ schema:
98
+ type: string
99
+ responses:
100
+ "200":
101
+ description: A list of messages with a new token to request more.
102
+ content:
103
+ application/json:
104
+ schema:
105
+ type: object
106
+ description: A list of messages with a new token to request more.
107
+ properties:
108
+ start:
109
+ type: string
110
+ description: |-
111
+ A token corresponding to the start of `chunk`. This will be the same as
112
+ the value given in `from`.
113
+ end:
114
+ type: string
115
+ description: |-
116
+ A token corresponding to the end of `chunk`. This token can be passed
117
+ back to this endpoint to request further events.
118
+
119
+ If no further events are available (either because we have
120
+ reached the start of the timeline, or because the user does
121
+ not have permission to see any more events), this property
122
+ is omitted from the response.
123
+ chunk:
124
+ type: array
125
+ description: |-
126
+ A list of room events. The order depends on the `dir` parameter.
127
+ For `dir=b` events will be in reverse-chronological order,
128
+ for `dir=f` in chronological order. (The exact definition of `chronological`
129
+ is dependent on the server implementation.)
130
+
131
+ Note that an empty `chunk` does not *necessarily* imply that no more events
132
+ are available. Clients should continue to paginate until no `end` property
133
+ is returned.
134
+ items:
135
+ $ref: definitions/client_event.yaml
136
+ state:
137
+ type: array
138
+ description: |-
139
+ A list of state events relevant to showing the `chunk`. For example, if
140
+ `lazy_load_members` is enabled in the filter then this may contain
141
+ the membership events for the senders of events in the `chunk`.
142
+
143
+ Unless `include_redundant_members` is `true`, the server
144
+ may remove membership events which would have already been
145
+ sent to the client in prior calls to this endpoint, assuming
146
+ the membership of those members has not changed.
147
+ items:
148
+ $ref: definitions/client_event.yaml
149
+ required:
150
+ - start
151
+ - chunk
152
+ examples:
153
+ response:
154
+ value: {
155
+ "start": "t47429-4392820_219380_26003_2265",
156
+ "end": "t47409-4357353_219380_26003_2265",
157
+ "chunk": [
158
+ {
159
+ "room_id": "!636q39766251:example.com",
160
+ "$ref": "../../event-schemas/examples/m.room.message$m.text.yaml"
161
+ },
162
+ {
163
+ "room_id": "!636q39766251:example.com",
164
+ "$ref": "../../event-schemas/examples/m.room.name.yaml"
165
+ },
166
+ {
167
+ "room_id": "!636q39766251:example.com",
168
+ "$ref": "../../event-schemas/examples/m.room.message$m.video.yaml"
169
+ }
170
+ ]
171
+ }
172
+ "403":
173
+ description: |
174
+ You aren't a member of the room.
175
+ tags:
176
+ - Room participation
177
+ servers:
178
+ - url: "{protocol}://{hostname}{basePath}"
179
+ variables:
180
+ protocol:
181
+ enum:
182
+ - http
183
+ - https
184
+ default: https
185
+ hostname:
186
+ default: localhost:8008
187
+ basePath:
188
+ default: /_matrix/client/v3
189
+ components:
190
+ securitySchemes:
191
+ accessTokenQuery:
192
+ $ref: definitions/security.yaml#/accessTokenQuery
193
+ accessTokenBearer:
194
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,152 @@
1
+ # Copyright 2016 OpenMarket Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server Notifications API
17
+ version: 1.0.0
18
+ paths:
19
+ /notifications:
20
+ get:
21
+ summary: Gets a list of events that the user has been notified about
22
+ description: |-
23
+ This API is used to paginate through the list of events that the
24
+ user has been, or would have been notified about.
25
+ operationId: getNotifications
26
+ security:
27
+ - accessTokenQuery: []
28
+ - accessTokenBearer: []
29
+ parameters:
30
+ - in: query
31
+ name: from
32
+ description: |-
33
+ Pagination token to continue from. This should be the `next_token`
34
+ returned from an earlier call to this endpoint.
35
+ required: false
36
+ example: xxxxx
37
+ schema:
38
+ type: string
39
+ - in: query
40
+ name: limit
41
+ description: Limit on the number of events to return in this request.
42
+ required: false
43
+ example: 20
44
+ schema:
45
+ type: integer
46
+ - in: query
47
+ name: only
48
+ description: |-
49
+ Allows basic filtering of events returned. Supply `highlight`
50
+ to return only events where the notification had the highlight
51
+ tweak set.
52
+ required: false
53
+ example: highlight
54
+ schema:
55
+ type: string
56
+ responses:
57
+ "200":
58
+ description: A batch of events is being returned
59
+ content:
60
+ application/json:
61
+ schema:
62
+ type: object
63
+ required:
64
+ - notifications
65
+ properties:
66
+ next_token:
67
+ type: string
68
+ description: |-
69
+ The token to supply in the `from` param of the next
70
+ `/notifications` request in order to request more
71
+ events. If this is absent, there are no more results.
72
+ notifications:
73
+ type: array
74
+ items:
75
+ type: object
76
+ required:
77
+ - actions
78
+ - event
79
+ - read
80
+ - room_id
81
+ - ts
82
+ title: Notification
83
+ properties:
84
+ actions:
85
+ type: array
86
+ description: |-
87
+ The action(s) to perform when the conditions for this rule are met.
88
+ See [Push Rules: API](/client-server-api/#push-rules-api).
89
+ items:
90
+ type: ["object", "string"]
91
+ event:
92
+ title: Event
93
+ description: The Event object for the event that triggered the notification.
94
+ allOf:
95
+ - $ref: definitions/client_event_without_room_id.yaml
96
+ profile_tag:
97
+ type: string
98
+ description: The profile tag of the rule that matched this event.
99
+ read:
100
+ type: boolean
101
+ description: |-
102
+ Indicates whether the user has sent a read receipt indicating
103
+ that they have read this message.
104
+ room_id:
105
+ type: string
106
+ description: The ID of the room in which the event was posted.
107
+ ts:
108
+ type: integer
109
+ format: int64
110
+ description: |-
111
+ The unix timestamp at which the event notification was sent,
112
+ in milliseconds.
113
+ description: The list of events that triggered notifications.
114
+ examples:
115
+ response:
116
+ value: {
117
+ "next_token": "abcdef",
118
+ "notifications": [
119
+ {
120
+ "actions": [
121
+ "notify"
122
+ ],
123
+ "profile_tag": "hcbvkzxhcvb",
124
+ "read": true,
125
+ "room_id": "!abcdefg:example.com",
126
+ "ts": 1475508881945,
127
+ "event": {
128
+ "$ref": "../../event-schemas/examples/m.room.message$m.text.yaml"
129
+ }
130
+ }
131
+ ]
132
+ }
133
+ tags:
134
+ - Push notifications
135
+ servers:
136
+ - url: "{protocol}://{hostname}{basePath}"
137
+ variables:
138
+ protocol:
139
+ enum:
140
+ - http
141
+ - https
142
+ default: https
143
+ hostname:
144
+ default: localhost:8008
145
+ basePath:
146
+ default: /_matrix/client/v3
147
+ components:
148
+ securitySchemes:
149
+ accessTokenQuery:
150
+ $ref: definitions/security.yaml#/accessTokenQuery
151
+ accessTokenBearer:
152
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,238 @@
1
+ # Copyright 2025 The Matrix.org Foundation C.I.C.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server OAuth 2.0 Server Metadata Discovery API
17
+ version: 1.0.0
18
+ paths:
19
+ "/auth_metadata":
20
+ get:
21
+ summary: Get the OAuth 2.0 authorization server metadata.
22
+ description: |-
23
+ Gets the OAuth 2.0 authorization server metadata, as defined in
24
+ [RFC 8414](https://datatracker.ietf.org/doc/html/rfc8414), including the
25
+ endpoint URLs and the supported parameters that can be used by the
26
+ clients.
27
+
28
+ This endpoint definition includes only the fields that are meaningful in
29
+ the context of the Matrix specification. The full list of possible
30
+ fields is available in the [OAuth Authorization Server Metadata
31
+ registry](https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#authorization-server-metadata),
32
+ and normative definitions of them are available in their respective
33
+ RFCs.
34
+
35
+ {{% boxes/note %}}
36
+ The authorization server metadata is relatively large and may change
37
+ over time. Clients should:
38
+
39
+ - Cache the metadata appropriately based on HTTP caching headers
40
+ - Refetch the metadata if it is stale
41
+ {{% /boxes/note %}}
42
+ operationId: getAuthMetadata
43
+ responses:
44
+ "200":
45
+ description: The OAuth 2.0 authorization server metadata.
46
+ content:
47
+ application/json:
48
+ schema:
49
+ type: object
50
+ properties:
51
+ issuer:
52
+ type: string
53
+ format: uri
54
+ description: |-
55
+ The authorization server's issuer identifier, which is a URL that uses the
56
+ `https` scheme and has no query or fragment components.
57
+
58
+ This is not used in the context of the Matrix specification, but is required
59
+ by [RFC 8414](https://datatracker.ietf.org/doc/html/rfc8414).
60
+ authorization_endpoint:
61
+ type: string
62
+ format: uri
63
+ description: |-
64
+ URL of the authorization endpoint, necessary to use the authorization code
65
+ grant.
66
+ token_endpoint:
67
+ type: string
68
+ format: uri
69
+ description: |-
70
+ URL of the token endpoint, used by the grants.
71
+ revocation_endpoint:
72
+ type: string
73
+ format: uri
74
+ description: |-
75
+ URL of the revocation endpoint, necessary to log out a client by invalidating
76
+ its access and refresh tokens.
77
+ registration_endpoint:
78
+ type: string
79
+ format: uri
80
+ description: |-
81
+ URL of the client registration endpoint, necessary to perform dynamic
82
+ registration of a client.
83
+ response_types_supported:
84
+ type: array
85
+ description: |-
86
+ List of OAuth 2.0 response type strings that the server supports at the
87
+ authorization endpoint.
88
+
89
+ This array MUST contain at least the `code` value, for clients to be able to
90
+ use the authorization code grant.
91
+ items:
92
+ type: string
93
+ description: A response type that the server supports.
94
+ grant_types_supported:
95
+ type: array
96
+ description: |-
97
+ List of OAuth 2.0 grant type strings that the server supports at the token
98
+ endpoint.
99
+
100
+ This array MUST contain at least the `authorization_code` and `refresh_token`
101
+ values, for clients to be able to use the authorization code grant and refresh
102
+ token grant, respectively.
103
+
104
+ {{% added-in v="1.18" %}} It MAY also contain
105
+ `urn:ietf:params:oauth:grant-type:device_code` to indicate support for the
106
+ [device authorization grant](/client-server-api/#device-authorization-grant).
107
+ items:
108
+ type: string
109
+ description: A grant type that the server supports.
110
+ response_modes_supported:
111
+ type: array
112
+ description: |-
113
+ List of OAuth 2.0 response mode strings that the server supports at the
114
+ authorization endpoint.
115
+
116
+ This array MUST contain at least the `query` and `fragment` values, for
117
+ improved security in the authorization code grant.
118
+ items:
119
+ type: string
120
+ description: A response mode that the server supports.
121
+ code_challenge_methods_supported:
122
+ type: array
123
+ description: |-
124
+ List of OAuth 2.0 Proof Key for Code Exchange (PKCE) code challenge methods
125
+ that the server supports at the authorization endpoint.
126
+
127
+ This array MUST contain at least the `S256` value, for improved security in
128
+ the authorization code grant.
129
+ items:
130
+ type: string
131
+ description: A PKCE code challenge method that the server supports.
132
+ prompt_values_supported:
133
+ type: array
134
+ description: |-
135
+ List of OpenID Connect prompt values that the server supports at the
136
+ authorization endpoint.
137
+
138
+ Only the `create` value defined in [Initiating User Registration via OpenID
139
+ Connect](https://openid.net/specs/openid-connect-prompt-create-1_0.html) is
140
+ supported, for a client to signal to the server that the user desires to
141
+ register a new account.
142
+ items:
143
+ type: string
144
+ description: A prompt value that the server supports.
145
+ account_management_uri:
146
+ x-addedInMatrixVersion: "1.18"
147
+ type: string
148
+ format: uri
149
+ description: |-
150
+ The URL where the user is able to access the account management capabilities
151
+ of the homeserver.
152
+
153
+ This is an extension [defined in this specification](/client-server-api/#oauth-20-account-management).
154
+ account_management_actions_supported:
155
+ x-addedInMatrixVersion: "1.18"
156
+ type: array
157
+ description: |-
158
+ List of actions that the account management URL supports.
159
+
160
+ This is an extension [defined in this specification](/client-server-api/#oauth-20-account-management).
161
+ items:
162
+ type: string
163
+ enum:
164
+ - "org.matrix.profile"
165
+ - "org.matrix.devices_list"
166
+ - "org.matrix.device_view"
167
+ - "org.matrix.device_delete"
168
+ - "org.matrix.account_deactivate"
169
+ - "org.matrix.cross_signing_reset"
170
+ description: An action that the account management URL supports.
171
+ device_authorization_endpoint:
172
+ x-addedInMatrixVersion: "1.18"
173
+ type: string
174
+ format: uri
175
+ description: |-
176
+ URL of the device authorization endpoint, as defined in
177
+ [RFC 8628](https://datatracker.ietf.org/doc/html/rfc8628), necessary to use
178
+ the [device authorization grant](/client-server-api/#device-authorization-grant).
179
+ required:
180
+ - issuer
181
+ - authorization_endpoint
182
+ - token_endpoint
183
+ - revocation_endpoint
184
+ - registration_endpoint
185
+ - response_types_supported
186
+ - grant_types_supported
187
+ - response_modes_supported
188
+ - code_challenge_methods_supported
189
+ example: {
190
+ "issuer": "https://account.example.com/",
191
+ "authorization_endpoint": "https://account.example.com/oauth2/auth",
192
+ "token_endpoint": "https://account.example.com/oauth2/token",
193
+ "registration_endpoint": "https://account.example.com/oauth2/clients/register",
194
+ "device_authorization_endpoint": "https://account.example.com/oauth2/device",
195
+ "revocation_endpoint": "https://account.example.com/oauth2/revoke",
196
+ "response_types_supported": ["code"],
197
+ "grant_types_supported": ["authorization_code", "refresh_token", "urn:ietf:params:oauth:grant-type:device_code"],
198
+ "response_modes_supported": ["query", "fragment"],
199
+ "code_challenge_methods_supported": ["S256"],
200
+ "account_management_uri": "https://account.example.com/manage",
201
+ "account_management_actions_supported": [
202
+ "org.matrix.profile",
203
+ "org.matrix.devices_list",
204
+ "org.matrix.device_view",
205
+ "org.matrix.device_delete",
206
+ "org.matrix.account_deactivate",
207
+ "org.matrix.cross_signing_reset",
208
+ ],
209
+ }
210
+ "404":
211
+ description: |-
212
+ With `M_UNRECOGNIZED`: the homeserver does not support the OAuth 2.0 API.
213
+ (See [Authentication API discovery](/client-server-api/#authentication-api-discovery).)
214
+ content:
215
+ application/json:
216
+ schema:
217
+ $ref: definitions/errors/error.yaml
218
+ examples:
219
+ response:
220
+ value:
221
+ {
222
+ "errcode": "M_UNRECOGNIZED",
223
+ "error": "Legacy authentication is in use on this homeserver.",
224
+ }
225
+ tags:
226
+ - Session management
227
+ servers:
228
+ - url: "{protocol}://{hostname}{basePath}"
229
+ variables:
230
+ protocol:
231
+ enum:
232
+ - http
233
+ - https
234
+ default: https
235
+ hostname:
236
+ default: localhost:8008
237
+ basePath:
238
+ default: /_matrix/client/v1