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,246 @@
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 Password Management API
18
+ version: 1.0.0
19
+ paths:
20
+ /account/password:
21
+ post:
22
+ summary: Changes a user's password.
23
+ description: |-
24
+ Changes the password for an account on this homeserver.
25
+
26
+ This API endpoint uses the [User-Interactive Authentication API](/client-server-api/#user-interactive-authentication-api) to
27
+ ensure the user changing the password is actually the owner of the
28
+ account.
29
+
30
+ An access token should be submitted to this endpoint if the client has
31
+ an active session.
32
+
33
+ The homeserver may change the flows available depending on whether a
34
+ valid access token is provided. The homeserver SHOULD NOT revoke the
35
+ access token provided in the request. Whether other access tokens for
36
+ the user are revoked depends on the request parameters.
37
+
38
+ This endpoint uses [capabilities negotiation](/client-server-api/#capabilities-negotiation).
39
+ Clients SHOULD check the value of the [`m.change_password` capability](/client-server-api/#mchange_password-capability)
40
+ to determine if this endpoint is available.
41
+ security:
42
+ - {}
43
+ - accessTokenQuery: []
44
+ - accessTokenBearer: []
45
+ operationId: changePassword
46
+ requestBody:
47
+ content:
48
+ application/json:
49
+ schema:
50
+ type: object
51
+ properties:
52
+ new_password:
53
+ type: string
54
+ description: The new password for the account.
55
+ example: ihatebananas
56
+ logout_devices:
57
+ type: boolean
58
+ description: |-
59
+ Whether the user's other access tokens, and their associated devices, should be
60
+ revoked if the request succeeds. Defaults to `true`.
61
+
62
+ When `false`, the server can still take advantage of the [soft logout method](/client-server-api/#soft-logout)
63
+ for the user's remaining devices.
64
+ example: true
65
+ auth:
66
+ description: Additional authentication information for the user-interactive
67
+ authentication API.
68
+ allOf:
69
+ - $ref: definitions/auth_data.yaml
70
+ required:
71
+ - new_password
72
+ required: true
73
+ responses:
74
+ "200":
75
+ description: The password has been changed.
76
+ content:
77
+ application/json:
78
+ schema:
79
+ type: object
80
+ examples:
81
+ response:
82
+ value: {}
83
+ "401":
84
+ description: The homeserver requires additional authentication information.
85
+ content:
86
+ application/json:
87
+ schema:
88
+ $ref: definitions/auth_response.yaml
89
+ "429":
90
+ description: This request was rate-limited.
91
+ content:
92
+ application/json:
93
+ schema:
94
+ $ref: definitions/errors/rate_limited.yaml
95
+ tags:
96
+ - Account management
97
+ /account/password/email/requestToken:
98
+ post:
99
+ summary: Requests a validation token be sent to the given email address for the
100
+ purpose of resetting a user's password
101
+ description: |-
102
+ The homeserver must check that the given email address **is
103
+ associated** with an account on this homeserver. This API should be
104
+ used to request validation tokens when authenticating for the
105
+ `/account/password` endpoint.
106
+
107
+ This API's parameters and response are identical to that of the
108
+ [`/register/email/requestToken`](/client-server-api/#post_matrixclientv3registeremailrequesttoken)
109
+ endpoint, except that
110
+ `M_THREEPID_NOT_FOUND` may be returned if no account matching the
111
+ given email address could be found. The server may instead send an
112
+ email to the given address prompting the user to create an account.
113
+ `M_THREEPID_IN_USE` may not be returned.
114
+
115
+ The homeserver should validate the email itself, either by sending a
116
+ validation email itself or by using a service it has control over.
117
+ operationId: requestTokenToResetPasswordEmail
118
+ requestBody:
119
+ content:
120
+ application/json:
121
+ schema:
122
+ $ref: definitions/request_email_validation.yaml
123
+ required: true
124
+ responses:
125
+ "200":
126
+ description: An email was sent to the given address.
127
+ content:
128
+ application/json:
129
+ schema:
130
+ $ref: definitions/request_token_response.yaml
131
+ "400":
132
+ description: |-
133
+ The referenced third-party identifier is not recognised by the
134
+ homeserver, or the request was invalid. The error code `M_SERVER_NOT_TRUSTED`
135
+ can be returned if the server does not trust/support the identity server
136
+ provided in the request.
137
+ content:
138
+ application/json:
139
+ schema:
140
+ $ref: definitions/errors/error.yaml
141
+ examples:
142
+ response:
143
+ value: {
144
+ "errcode": "M_THREEPID_NOT_FOUND",
145
+ "error": "Email not found"
146
+ }
147
+ "403":
148
+ description: |-
149
+ The homeserver does not allow the third-party identifier as a
150
+ contact option.
151
+ content:
152
+ application/json:
153
+ schema:
154
+ $ref: definitions/errors/error.yaml
155
+ examples:
156
+ response:
157
+ value: {
158
+ "errcode": "M_THREEPID_DENIED",
159
+ "error": "Third-party identifier is not allowed"
160
+ }
161
+ tags:
162
+ - Account management
163
+ /account/password/msisdn/requestToken:
164
+ post:
165
+ summary: Requests a validation token be sent to the given phone number for the
166
+ purpose of resetting a user's password.
167
+ description: |-
168
+ The homeserver must check that the given phone number **is
169
+ associated** with an account on this homeserver. This API should be
170
+ used to request validation tokens when authenticating for the
171
+ `/account/password` endpoint.
172
+
173
+ This API's parameters and response are identical to that of the
174
+ [`/register/msisdn/requestToken`](/client-server-api/#post_matrixclientv3registermsisdnrequesttoken)
175
+ endpoint, except that
176
+ `M_THREEPID_NOT_FOUND` may be returned if no account matching the
177
+ given phone number could be found. The server may instead send the SMS
178
+ to the given phone number prompting the user to create an account.
179
+ `M_THREEPID_IN_USE` may not be returned.
180
+
181
+ The homeserver should validate the phone number itself, either by sending a
182
+ validation message itself or by using a service it has control over.
183
+ operationId: requestTokenToResetPasswordMSISDN
184
+ requestBody:
185
+ content:
186
+ application/json:
187
+ schema:
188
+ $ref: definitions/request_msisdn_validation.yaml
189
+ required: true
190
+ responses:
191
+ "200":
192
+ description: An SMS message was sent to the given phone number.
193
+ content:
194
+ application/json:
195
+ schema:
196
+ $ref: definitions/request_token_response.yaml
197
+ "400":
198
+ description: |-
199
+ The referenced third-party identifier is not recognised by the
200
+ homeserver, or the request was invalid. The error code `M_SERVER_NOT_TRUSTED`
201
+ can be returned if the server does not trust/support the identity server
202
+ provided in the request.
203
+ content:
204
+ application/json:
205
+ schema:
206
+ $ref: definitions/errors/error.yaml
207
+ examples:
208
+ response:
209
+ value: {
210
+ "errcode": "M_THREEPID_NOT_FOUND",
211
+ "error": "Phone number not found"
212
+ }
213
+ "403":
214
+ description: |-
215
+ The homeserver does not allow the third-party identifier as a
216
+ contact option.
217
+ content:
218
+ application/json:
219
+ schema:
220
+ $ref: definitions/errors/error.yaml
221
+ examples:
222
+ response:
223
+ value: {
224
+ "errcode": "M_THREEPID_DENIED",
225
+ "error": "Third-party identifier is not allowed"
226
+ }
227
+ tags:
228
+ - Account management
229
+ servers:
230
+ - url: "{protocol}://{hostname}{basePath}"
231
+ variables:
232
+ protocol:
233
+ enum:
234
+ - http
235
+ - https
236
+ default: https
237
+ hostname:
238
+ default: localhost:8008
239
+ basePath:
240
+ default: /_matrix/client/v3
241
+ components:
242
+ securitySchemes:
243
+ accessTokenQuery:
244
+ $ref: definitions/security.yaml#/accessTokenQuery
245
+ accessTokenBearer:
246
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,122 @@
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 Sync Guest API
17
+ version: 1.0.0
18
+ paths:
19
+ # With an extra " " to disambiguate from the getEvents endpoint
20
+ # The extra space makes it sort first for what I'm sure is a good reason.
21
+ "/events ":
22
+ get:
23
+ summary: Listen on the event stream of a particular room.
24
+ description: |-
25
+ This will listen for new events related to a particular room and return
26
+ them to the caller. This will block until an event is received, or until
27
+ the `timeout` is reached.
28
+
29
+ This API is the same as the normal `/events` endpoint, but can be
30
+ called by users who have not joined the room.
31
+
32
+ Note that the normal `/events` endpoint has been deprecated. This
33
+ API will also be deprecated at some point, but its replacement is not
34
+ yet known.
35
+ operationId: peekEvents
36
+ security:
37
+ - accessTokenQuery: []
38
+ - accessTokenBearer: []
39
+ parameters:
40
+ - in: query
41
+ name: from
42
+ description: |-
43
+ The token to stream from. This token is either from a previous
44
+ request to this API or from the initial sync API.
45
+ required: false
46
+ example: s3456_9_0
47
+ schema:
48
+ type: string
49
+ - in: query
50
+ name: timeout
51
+ description: The maximum time in milliseconds to wait for an event.
52
+ required: false
53
+ example: 35000
54
+ schema:
55
+ type: integer
56
+ - in: query
57
+ name: room_id
58
+ description: The room ID for which events should be returned.
59
+ example: "!somewhere:over.the.rainbow"
60
+ schema:
61
+ type: string
62
+ required: true
63
+ responses:
64
+ "200":
65
+ description: The events received, which may be none.
66
+ content:
67
+ application/json:
68
+ schema:
69
+ type: object
70
+ properties:
71
+ start:
72
+ type: string
73
+ description: |-
74
+ A token which correlates to the first value in `chunk`. This
75
+ is usually the same token supplied to `from=`.
76
+ end:
77
+ type: string
78
+ description: |-
79
+ A token which correlates to the last value in `chunk`. This
80
+ token should be used in the next request to `/events`.
81
+ chunk:
82
+ type: array
83
+ description: An array of events.
84
+ items:
85
+ type: object
86
+ title: Event
87
+ allOf:
88
+ - $ref: definitions/client_event.yaml
89
+ examples:
90
+ response:
91
+ value: {
92
+ "start": "s3456_9_0",
93
+ "end": "s3457_9_0",
94
+ "chunk": [
95
+ {
96
+ "room_id": "!somewhere:over.the.rainbow",
97
+ "$ref": "../../event-schemas/examples/m.room.message$m.text.yaml"
98
+ }
99
+ ]
100
+ }
101
+ "400":
102
+ description: Bad pagination `from` parameter.
103
+ tags:
104
+ - Room participation
105
+ servers:
106
+ - url: "{protocol}://{hostname}{basePath}"
107
+ variables:
108
+ protocol:
109
+ enum:
110
+ - http
111
+ - https
112
+ default: https
113
+ hostname:
114
+ default: localhost:8008
115
+ basePath:
116
+ default: /_matrix/client/v3
117
+ components:
118
+ securitySchemes:
119
+ accessTokenQuery:
120
+ $ref: definitions/security.yaml#/accessTokenQuery
121
+ accessTokenBearer:
122
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,82 @@
1
+ # Copyright 2026 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 Policy Server Discovery API
17
+ version: 1.0.0
18
+ paths:
19
+ /matrix/policy_server:
20
+ get:
21
+ summary: Gets information about a Policy Server's configuration, if available.
22
+ description: |-
23
+ Gets public key information for a [Policy Server](/client-server-api/#policy-servers).
24
+
25
+ {{% boxes/note %}}
26
+ Like the [well-known discovery URI](/client-server-api/#well-known-uris),
27
+ this endpoint should be accessed with the hostname of the Policy Server's
28
+ [server name](/appendices/#server-name) by making a
29
+ GET request to `https://hostname/.well-known/matrix/policy_server`.
30
+ {{% /boxes/note %}}
31
+
32
+ Note that this endpoint is not necessarily handled by the homeserver or
33
+ Policy Server. It may be served by another webserver.
34
+ operationId: getWellknownPolicy
35
+ x-addedInMatrixVersion: "1.18"
36
+ responses:
37
+ "200":
38
+ description: |-
39
+ Public keys for the Policy Server. Can be supplied to the [`m.room.policy`](/client-server-api/#mroompolicy)
40
+ state event.
41
+ content:
42
+ application/json:
43
+ schema:
44
+ type: object
45
+ properties:
46
+ public_keys:
47
+ type: object
48
+ description: |-
49
+ The unpadded base64-encoded public keys for the Policy Server. MUST contain
50
+ at least `ed25519`.
51
+ properties:
52
+ ed25519:
53
+ type: string
54
+ description: The unpadded base64-encoded ed25519 public key for the Policy Server.
55
+ required: ['ed25519']
56
+ additionalProperties:
57
+ type: string
58
+ description: The unpadded base64-encoded public key for the key algorithm.
59
+ required: ["public_keys"]
60
+ examples:
61
+ response:
62
+ value:
63
+ {
64
+ "public_keys": {
65
+ "ed25519": "6yhHGKhCiXTSEN2ksjV7kX_N6rBQZ3Xb-M7LlC6NS-s"
66
+ }
67
+ }
68
+ "404":
69
+ description: No policy server information available.
70
+ tags:
71
+ - Server administration
72
+ servers:
73
+ - url: "{protocol}://{hostname}{basePath}"
74
+ variables:
75
+ protocol:
76
+ enum:
77
+ - https
78
+ default: https
79
+ hostname:
80
+ default: localhost:8008
81
+ basePath:
82
+ default: /.well-known
@@ -0,0 +1,169 @@
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 Presence API
17
+ version: 1.0.0
18
+ paths:
19
+ "/presence/{userId}/status":
20
+ put:
21
+ summary: Update this user's presence state.
22
+ description: |-
23
+ This API sets the given user's presence state. When setting the status,
24
+ the activity time is updated to reflect that activity; the client does
25
+ not need to specify the `last_active_ago` field. You cannot set the
26
+ presence state of another user.
27
+ operationId: setPresence
28
+ security:
29
+ - accessTokenQuery: []
30
+ - accessTokenBearer: []
31
+ parameters:
32
+ - in: path
33
+ name: userId
34
+ description: The user whose presence state to update.
35
+ required: true
36
+ example: "@alice:example.com"
37
+ schema:
38
+ type: string
39
+ requestBody:
40
+ content:
41
+ application/json:
42
+ schema:
43
+ type: object
44
+ example: {
45
+ "presence": "online",
46
+ "status_msg": "I am here."
47
+ }
48
+ properties:
49
+ presence:
50
+ type: string
51
+ enum:
52
+ - online
53
+ - offline
54
+ - unavailable
55
+ description: The new presence state.
56
+ status_msg:
57
+ type: string
58
+ description: The status message to attach to this state.
59
+ required:
60
+ - presence
61
+ description: The updated presence state.
62
+ required: true
63
+ responses:
64
+ "200":
65
+ description: The new presence state was set.
66
+ content:
67
+ application/json:
68
+ schema:
69
+ type: object # empty json object
70
+ examples:
71
+ response:
72
+ value: {}
73
+ "429":
74
+ description: This request was rate-limited.
75
+ content:
76
+ application/json:
77
+ schema:
78
+ $ref: definitions/errors/rate_limited.yaml
79
+ tags:
80
+ - Presence
81
+ get:
82
+ summary: Get this user's presence state.
83
+ description: Get the given user's presence state.
84
+ operationId: getPresence
85
+ security:
86
+ - accessTokenQuery: []
87
+ - accessTokenBearer: []
88
+ parameters:
89
+ - in: path
90
+ name: userId
91
+ description: The user whose presence state to get.
92
+ required: true
93
+ example: "@alice:example.com"
94
+ schema:
95
+ type: string
96
+ responses:
97
+ "200":
98
+ description: The presence state for this user.
99
+ content:
100
+ application/json:
101
+ schema:
102
+ type: object
103
+ properties:
104
+ presence:
105
+ type: string
106
+ enum:
107
+ - online
108
+ - offline
109
+ - unavailable
110
+ description: This user's presence.
111
+ last_active_ago:
112
+ type: integer
113
+ description: |-
114
+ The length of time in milliseconds since an action was performed
115
+ by this user.
116
+ status_msg:
117
+ description: The state message for this user if one was set.
118
+ type: ["string", "null"]
119
+ currently_active:
120
+ type: boolean
121
+ description: Whether the user is currently active
122
+ required:
123
+ - presence
124
+ examples:
125
+ response:
126
+ value: {
127
+ "presence": "unavailable",
128
+ "last_active_ago": 420845
129
+ }
130
+ "403":
131
+ description: You are not allowed to see this user's presence status.
132
+ content:
133
+ application/json:
134
+ schema:
135
+ $ref: definitions/errors/error.yaml
136
+ examples:
137
+ response:
138
+ value: {
139
+ "errcode": "M_FORBIDDEN",
140
+ "error": "You are not allowed to see their presence"
141
+ }
142
+ "404":
143
+ description: |-
144
+ There is no presence state for this user. This user may not exist or
145
+ isn't exposing presence information to you.
146
+ content:
147
+ application/json:
148
+ schema:
149
+ $ref: definitions/errors/error.yaml
150
+ tags:
151
+ - Presence
152
+ servers:
153
+ - url: "{protocol}://{hostname}{basePath}"
154
+ variables:
155
+ protocol:
156
+ enum:
157
+ - http
158
+ - https
159
+ default: https
160
+ hostname:
161
+ default: localhost:8008
162
+ basePath:
163
+ default: /_matrix/client/v3
164
+ components:
165
+ securitySchemes:
166
+ accessTokenQuery:
167
+ $ref: definitions/security.yaml#/accessTokenQuery
168
+ accessTokenBearer:
169
+ $ref: definitions/security.yaml#/accessTokenBearer