async-matrix 0.1.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +131 -0
  3. data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
  4. data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
  5. data/data/matrix-spec/api/client-server/admin.yaml +512 -0
  6. data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
  7. data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
  8. data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
  9. data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
  10. data/data/matrix-spec/api/client-server/banning.yaml +177 -0
  11. data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
  12. data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
  13. data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
  14. data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
  15. data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
  16. data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
  17. data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
  18. data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
  19. data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
  20. data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
  21. data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
  22. data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
  23. data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
  24. data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
  25. data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
  26. data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
  27. data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
  28. data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
  29. data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
  30. data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
  31. data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
  32. data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
  33. data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
  34. data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
  35. data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
  36. data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
  37. data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
  38. data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
  39. data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
  40. data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
  41. data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
  42. data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
  43. data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
  44. data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
  45. data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
  46. data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
  47. data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
  48. data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
  49. data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
  50. data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
  51. data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
  52. data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
  53. data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
  54. data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
  55. data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
  56. data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
  57. data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
  58. data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
  59. data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
  60. data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
  61. data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
  62. data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
  63. data/data/matrix-spec/api/client-server/directory.yaml +318 -0
  64. data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
  65. data/data/matrix-spec/api/client-server/filter.yaml +224 -0
  66. data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
  67. data/data/matrix-spec/api/client-server/joining.yaml +238 -0
  68. data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
  69. data/data/matrix-spec/api/client-server/keys.yaml +482 -0
  70. data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
  71. data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
  72. data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
  73. data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
  74. data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
  75. data/data/matrix-spec/api/client-server/login.yaml +321 -0
  76. data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
  77. data/data/matrix-spec/api/client-server/logout.yaml +86 -0
  78. data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
  79. data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
  80. data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
  81. data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
  82. data/data/matrix-spec/api/client-server/openid.yaml +98 -0
  83. data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
  84. data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
  85. data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
  86. data/data/matrix-spec/api/client-server/presence.yaml +169 -0
  87. data/data/matrix-spec/api/client-server/profile.yaml +366 -0
  88. data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
  89. data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
  90. data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
  91. data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
  92. data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
  93. data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
  94. data/data/matrix-spec/api/client-server/registration.yaml +488 -0
  95. data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
  96. data/data/matrix-spec/api/client-server/relations.yaml +382 -0
  97. data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
  98. data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
  99. data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
  100. data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
  101. data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
  102. data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
  103. data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
  104. data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
  105. data/data/matrix-spec/api/client-server/search.yaml +385 -0
  106. data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
  107. data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
  108. data/data/matrix-spec/api/client-server/support.yaml +142 -0
  109. data/data/matrix-spec/api/client-server/sync.yaml +692 -0
  110. data/data/matrix-spec/api/client-server/tags.yaml +183 -0
  111. data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
  112. data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
  113. data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
  114. data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
  115. data/data/matrix-spec/api/client-server/typing.yaml +103 -0
  116. data/data/matrix-spec/api/client-server/users.yaml +136 -0
  117. data/data/matrix-spec/api/client-server/versions.yaml +108 -0
  118. data/data/matrix-spec/api/client-server/voip.yaml +93 -0
  119. data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
  120. data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
  121. data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
  122. data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
  123. data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
  124. data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
  125. data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
  126. data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
  127. data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
  128. data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
  129. data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
  130. data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
  131. data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
  132. data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
  133. data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
  134. data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
  135. data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
  136. data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
  137. data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
  138. data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
  139. data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
  140. data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
  141. data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
  142. data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
  143. data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
  144. data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
  145. data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
  146. data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
  147. data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
  148. data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
  149. data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
  150. data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
  151. data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
  152. data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
  153. data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
  154. data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
  155. data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
  156. data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
  157. data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
  158. data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
  159. data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
  160. data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
  161. data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
  162. data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
  163. data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
  164. data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
  165. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
  166. data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
  167. data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
  168. data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
  169. data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
  170. data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
  171. data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
  172. data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
  173. data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
  174. data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
  175. data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
  176. data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
  177. data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
  178. data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
  179. data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
  180. data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
  181. data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
  182. data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
  183. data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
  184. data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
  185. data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
  186. data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
  187. data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
  188. data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
  189. data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
  190. data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
  191. data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
  192. data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
  193. data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
  194. data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
  195. data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
  196. data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
  197. data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
  198. data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
  199. data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
  200. data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
  201. data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
  202. data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
  203. data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
  204. data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
  205. data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
  206. data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
  207. data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
  208. data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
  209. data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
  210. data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
  211. data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
  212. data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
  213. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
  214. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
  215. data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
  216. data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
  217. data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
  218. data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
  219. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
  220. data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
  221. data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
  222. data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
  223. data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
  224. data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
  225. data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
  226. data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
  227. data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
  228. data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
  229. data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
  230. data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
  231. data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
  232. data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
  233. data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
  234. data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
  235. data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
  236. data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
  237. data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
  238. data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
  239. data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
  240. data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
  241. data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
  242. data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
  243. data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
  244. data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
  245. data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
  246. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
  247. data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
  248. data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
  249. data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
  250. data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
  251. data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
  252. data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
  253. data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
  254. data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
  255. data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
  256. data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
  257. data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
  258. data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
  259. data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
  260. data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
  261. data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
  262. data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
  263. data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
  264. data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
  265. data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
  266. data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
  267. data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
  268. data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
  269. data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
  270. data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
  271. data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
  272. data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
  273. data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
  274. data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
  275. data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
  276. data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
  277. data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
  278. data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
  279. data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
  280. data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
  281. data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
  282. data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
  283. data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
  284. data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
  285. data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
  286. data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
  287. data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
  288. data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
  289. data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
  290. data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
  291. data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
  292. data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
  293. data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
  294. data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
  295. data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
  296. data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
  297. data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
  298. data/lib/async/matrix/api/chain.rb +575 -0
  299. data/lib/async/matrix/api/concat.rb +105 -0
  300. data/lib/async/matrix/api/path_tree.rb +208 -0
  301. data/lib/async/matrix/api.rb +204 -0
  302. data/lib/async/matrix/application_service/bot.rb +235 -0
  303. data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
  304. data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
  305. data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
  306. data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
  307. data/lib/async/matrix/application_service/config/schema/config.json +61 -0
  308. data/lib/async/matrix/application_service/config/schema/database.json +38 -0
  309. data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
  310. data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
  311. data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
  312. data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
  313. data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
  314. data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
  315. data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
  316. data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
  317. data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
  318. data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
  319. data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
  320. data/lib/async/matrix/application_service/config/vivify.rb +110 -0
  321. data/lib/async/matrix/application_service/config.rb +214 -123
  322. data/lib/async/matrix/application_service/dispatcher.rb +115 -113
  323. data/lib/async/matrix/application_service/error_response.rb +26 -26
  324. data/lib/async/matrix/application_service/event.rb +217 -1
  325. data/lib/async/matrix/application_service/server.rb +286 -215
  326. data/lib/async/matrix/application_service/transaction.rb +52 -52
  327. data/lib/async/matrix/application_service/transaction_store.rb +62 -62
  328. data/lib/async/matrix/client.rb +919 -179
  329. data/lib/async/matrix/connection.rb +8 -8
  330. data/lib/async/matrix/endpoint.rb +45 -45
  331. data/lib/async/matrix/error.rb +49 -43
  332. data/lib/async/matrix/media_client.rb +173 -0
  333. data/lib/async/matrix/notifier.rb +92 -92
  334. data/lib/async/matrix/schema/registry.rb +355 -0
  335. data/lib/async/matrix/schema/validation_error.rb +226 -0
  336. data/lib/async/matrix/schema.rb +174 -0
  337. data/lib/async/matrix/server.rb +7 -7
  338. data/lib/async/matrix/stream.rb +7 -7
  339. data/lib/async/matrix/version.rb +1 -1
  340. data/lib/async/matrix.rb +2 -2
  341. metadata +353 -1
@@ -0,0 +1,183 @@
1
+ # Copyright 2016 OpenMarket Ltd
2
+ # Copyright 2018 New Vector Ltd
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 tag API
18
+ version: 1.0.0
19
+ paths:
20
+ "/user/{userId}/rooms/{roomId}/tags":
21
+ get:
22
+ summary: List the tags for a room.
23
+ description: List the tags set by a user on a room.
24
+ operationId: getRoomTags
25
+ security:
26
+ - accessTokenQuery: []
27
+ - accessTokenBearer: []
28
+ parameters:
29
+ - in: path
30
+ name: userId
31
+ required: true
32
+ description: |-
33
+ The id of the user to get tags for. The access token must be
34
+ authorized to make requests for this user ID.
35
+ example: "@alice:example.com"
36
+ schema:
37
+ type: string
38
+ - in: path
39
+ name: roomId
40
+ required: true
41
+ description: The ID of the room to get tags for.
42
+ example: "!726s6s6q:example.com"
43
+ schema:
44
+ type: string
45
+ responses:
46
+ "200":
47
+ description: The list of tags for the user for the room.
48
+ content:
49
+ application/json:
50
+ schema:
51
+ type: object
52
+ properties:
53
+ tags:
54
+ type: object
55
+ additionalProperties:
56
+ $ref: definitions/tag.yaml
57
+ examples:
58
+ response:
59
+ value: {
60
+ "tags": {
61
+ "m.favourite": {
62
+ "order": 0.1
63
+ },
64
+ "u.Work": {
65
+ "order": 0.7
66
+ },
67
+ "u.Customers": {}
68
+ }
69
+ }
70
+ tags:
71
+ - User data
72
+ "/user/{userId}/rooms/{roomId}/tags/{tag}":
73
+ put:
74
+ summary: Add a tag to a room.
75
+ description: Add a tag to the room.
76
+ operationId: setRoomTag
77
+ security:
78
+ - accessTokenQuery: []
79
+ - accessTokenBearer: []
80
+ parameters:
81
+ - in: path
82
+ name: userId
83
+ required: true
84
+ description: |-
85
+ The id of the user to add a tag for. The access token must be
86
+ authorized to make requests for this user ID.
87
+ example: "@alice:example.com"
88
+ schema:
89
+ type: string
90
+ - in: path
91
+ name: roomId
92
+ required: true
93
+ description: The ID of the room to add a tag to.
94
+ example: "!726s6s6q:example.com"
95
+ schema:
96
+ type: string
97
+ - in: path
98
+ name: tag
99
+ required: true
100
+ description: The tag to add.
101
+ example: u.work
102
+ schema:
103
+ type: string
104
+ requestBody:
105
+ content:
106
+ application/json:
107
+ schema:
108
+ $ref: definitions/tag.yaml
109
+ description: Extra data for the tag, e.g. ordering.
110
+ required: true
111
+ responses:
112
+ "200":
113
+ description: The tag was successfully added.
114
+ content:
115
+ application/json:
116
+ schema:
117
+ type: object
118
+ examples:
119
+ response:
120
+ value: {}
121
+ tags:
122
+ - User data
123
+ delete:
124
+ summary: Remove a tag from the room.
125
+ description: Remove a tag from the room.
126
+ operationId: deleteRoomTag
127
+ security:
128
+ - accessTokenQuery: []
129
+ - accessTokenBearer: []
130
+ parameters:
131
+ - in: path
132
+ name: userId
133
+ required: true
134
+ description: |-
135
+ The id of the user to remove a tag for. The access token must be
136
+ authorized to make requests for this user ID.
137
+ example: "@alice:example.com"
138
+ schema:
139
+ type: string
140
+ - in: path
141
+ name: roomId
142
+ required: true
143
+ description: The ID of the room to remove a tag from.
144
+ example: "!726s6s6q:example.com"
145
+ schema:
146
+ type: string
147
+ - in: path
148
+ name: tag
149
+ required: true
150
+ description: The tag to remove.
151
+ example: u.work
152
+ schema:
153
+ type: string
154
+ responses:
155
+ "200":
156
+ description: The tag was successfully removed.
157
+ content:
158
+ application/json:
159
+ schema:
160
+ type: object
161
+ examples:
162
+ response:
163
+ value: {}
164
+ tags:
165
+ - User data
166
+ servers:
167
+ - url: "{protocol}://{hostname}{basePath}"
168
+ variables:
169
+ protocol:
170
+ enum:
171
+ - http
172
+ - https
173
+ default: https
174
+ hostname:
175
+ default: localhost:8008
176
+ basePath:
177
+ default: /_matrix/client/v3
178
+ components:
179
+ securitySchemes:
180
+ accessTokenQuery:
181
+ $ref: definitions/security.yaml#/accessTokenQuery
182
+ accessTokenBearer:
183
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,324 @@
1
+ # Copyright 2018 New Vector Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server Third-party Lookup API
17
+ version: 1.0.0
18
+ paths:
19
+ /thirdparty/protocols:
20
+ get:
21
+ summary: Retrieve metadata about all protocols that a homeserver supports.
22
+ description: |-
23
+ Fetches the overall metadata about protocols supported by the
24
+ homeserver. Includes both the available protocols and all fields
25
+ required for queries against each protocol.
26
+ operationId: getProtocols
27
+ security:
28
+ - accessTokenQuery: []
29
+ - accessTokenBearer: []
30
+ responses:
31
+ "200":
32
+ description: The protocols supported by the homeserver.
33
+ content:
34
+ application/json:
35
+ schema:
36
+ type: object
37
+ description: Dictionary of supported third-party protocols.
38
+ additionalProperties:
39
+ $ref: definitions/protocol.yaml
40
+ example: {
41
+ "irc": {
42
+ "user_fields": ["network", "nickname"],
43
+ "location_fields": ["network", "channel"],
44
+ "icon": "mxc://example.org/aBcDeFgH",
45
+ "field_types": {
46
+ "network": {
47
+ "regexp": "([a-z0-9]+\\.)*[a-z0-9]+",
48
+ "placeholder": "irc.example.org"
49
+ },
50
+ "nickname": {
51
+ "regexp": "[^\\s]+",
52
+ "placeholder": "username"
53
+ },
54
+ "channel": {
55
+ "regexp": "#[^\\s]+",
56
+ "placeholder": "#foobar"
57
+ }
58
+ },
59
+ "instances": [
60
+ {
61
+ "network_id": "freenode",
62
+ "desc": "Freenode",
63
+ "icon": "mxc://example.org/JkLmNoPq",
64
+ "instance_id": "irc-freenode",
65
+ "fields": {
66
+ "network": "freenode.net"
67
+ }
68
+ }
69
+ ]
70
+ },
71
+ "gitter": {
72
+ "user_fields": ["username"],
73
+ "location_fields": ["room"],
74
+ "field_types": {
75
+ "username": {
76
+ "regexp": "@[^\\s]+",
77
+ "placeholder": "@username"
78
+ },
79
+ "room": {
80
+ "regexp": "[^\\s]+\\/[^\\s]+",
81
+ "placeholder": "matrix-org/matrix-spec"
82
+ }
83
+ },
84
+ "instances": [
85
+ {
86
+ "network_id": "gitter",
87
+ "desc": "Gitter",
88
+ "icon": "mxc://example.org/zXyWvUt",
89
+ "instance_id": "gitter-gitter",
90
+ "fields": {}
91
+ }
92
+ ]
93
+ }
94
+ }
95
+ tags:
96
+ - Third-party Lookup
97
+ "/thirdparty/protocol/{protocol}":
98
+ get:
99
+ summary: Retrieve metadata about a specific protocol that the homeserver supports.
100
+ description: Fetches the metadata from the homeserver about a particular
101
+ third-party protocol.
102
+ operationId: getProtocolMetadata
103
+ security:
104
+ - accessTokenQuery: []
105
+ - accessTokenBearer: []
106
+ parameters:
107
+ - in: path
108
+ name: protocol
109
+ description: The name of the protocol.
110
+ required: true
111
+ example: irc
112
+ schema:
113
+ type: string
114
+ responses:
115
+ "200":
116
+ description: The protocol was found and metadata returned.
117
+ content:
118
+ application/json:
119
+ schema:
120
+ $ref: definitions/protocol.yaml
121
+ "404":
122
+ description: The protocol is unknown.
123
+ content:
124
+ application/json:
125
+ schema:
126
+ $ref: definitions/errors/error.yaml
127
+ examples:
128
+ response:
129
+ value: {
130
+ "errcode": "M_NOT_FOUND"
131
+ }
132
+ tags:
133
+ - Third-party Lookup
134
+ "/thirdparty/location/{protocol}":
135
+ get:
136
+ summary: Retrieve Matrix-side portals rooms leading to a third-party location.
137
+ description: |-
138
+ Requesting this endpoint with a valid protocol name results in a list
139
+ of successful mapping results in a JSON array. Each result contains
140
+ objects to represent the Matrix room or rooms that represent a portal
141
+ to this third-party network. Each has the Matrix room alias string,
142
+ an identifier for the particular third-party network protocol, and an
143
+ object containing the network-specific fields that comprise this
144
+ identifier. It should attempt to canonicalise the identifier as much
145
+ as reasonably possible given the network type.
146
+ operationId: queryLocationByProtocol
147
+ security:
148
+ - accessTokenQuery: []
149
+ - accessTokenBearer: []
150
+ parameters:
151
+ - in: path
152
+ name: protocol
153
+ description: The protocol used to communicate to the third-party network.
154
+ required: true
155
+ example: irc
156
+ schema:
157
+ type: string
158
+ - in: query
159
+ name: fields
160
+ description: |-
161
+ One or more custom fields to help identify the third-party
162
+ location.
163
+ schema:
164
+ type: object
165
+ additionalProperties:
166
+ type: string
167
+ responses:
168
+ "200":
169
+ description: At least one portal room was found.
170
+ content:
171
+ application/json:
172
+ schema:
173
+ $ref: ../application-service/definitions/location_batch.yaml
174
+ "404":
175
+ description: No portal rooms were found.
176
+ content:
177
+ application/json:
178
+ schema:
179
+ $ref: definitions/errors/error.yaml
180
+ examples:
181
+ response:
182
+ value: {
183
+ "errcode": "M_NOT_FOUND"
184
+ }
185
+ tags:
186
+ - Third-party Lookup
187
+ "/thirdparty/user/{protocol}":
188
+ get:
189
+ summary: Retrieve the Matrix User ID of a corresponding third-party user.
190
+ description: |-
191
+ Retrieve a Matrix User ID linked to a user on the third-party service, given
192
+ a set of user parameters.
193
+ operationId: queryUserByProtocol
194
+ security:
195
+ - accessTokenQuery: []
196
+ - accessTokenBearer: []
197
+ parameters:
198
+ - in: path
199
+ name: protocol
200
+ description: The name of the protocol.
201
+ required: true
202
+ example: irc
203
+ schema:
204
+ type: string
205
+ - in: query
206
+ name: fields
207
+ description: One or more custom fields that are passed to the AS to help
208
+ identify the user.
209
+ schema:
210
+ type: object
211
+ additionalProperties:
212
+ type: string
213
+ responses:
214
+ "200":
215
+ description: The Matrix User IDs found with the given parameters.
216
+ content:
217
+ application/json:
218
+ schema:
219
+ $ref: ../application-service/definitions/user_batch.yaml
220
+ "404":
221
+ description: The Matrix User ID was not found.
222
+ content:
223
+ application/json:
224
+ schema:
225
+ $ref: definitions/errors/error.yaml
226
+ examples:
227
+ response:
228
+ value: {
229
+ "errcode": "M_NOT_FOUND"
230
+ }
231
+ tags:
232
+ - Third-party Lookup
233
+ /thirdparty/location:
234
+ get:
235
+ summary: Reverse-lookup third-party locations given a Matrix room alias.
236
+ description: |-
237
+ Retrieve an array of third-party network locations from a Matrix room
238
+ alias.
239
+ operationId: queryLocationByAlias
240
+ security:
241
+ - accessTokenQuery: []
242
+ - accessTokenBearer: []
243
+ parameters:
244
+ - in: query
245
+ name: alias
246
+ description: The Matrix room alias to look up.
247
+ required: true
248
+ example: "#matrix:matrix.org"
249
+ schema:
250
+ type: string
251
+ responses:
252
+ "200":
253
+ description: All found third-party locations.
254
+ content:
255
+ application/json:
256
+ schema:
257
+ $ref: ../application-service/definitions/location_batch.yaml
258
+ "404":
259
+ description: The Matrix room alias was not found
260
+ content:
261
+ application/json:
262
+ schema:
263
+ $ref: definitions/errors/error.yaml
264
+ examples:
265
+ response:
266
+ value: {
267
+ "errcode": "M_NOT_FOUND"
268
+ }
269
+ tags:
270
+ - Third-party Lookup
271
+ /thirdparty/user:
272
+ get:
273
+ summary: Reverse-lookup third-party users given a Matrix User ID.
274
+ description: Retrieve an array of third-party users from a Matrix User ID.
275
+ operationId: queryUserByID
276
+ security:
277
+ - accessTokenQuery: []
278
+ - accessTokenBearer: []
279
+ parameters:
280
+ - in: query
281
+ name: userid
282
+ description: The Matrix User ID to look up.
283
+ required: true
284
+ example: "@bob:matrix.org"
285
+ schema:
286
+ type: string
287
+ responses:
288
+ "200":
289
+ description: An array of third-party users.
290
+ content:
291
+ application/json:
292
+ schema:
293
+ $ref: ../application-service/definitions/user_batch.yaml
294
+ "404":
295
+ description: The Matrix User ID was not found.
296
+ content:
297
+ application/json:
298
+ schema:
299
+ $ref: definitions/errors/error.yaml
300
+ examples:
301
+ response:
302
+ value: {
303
+ "errcode": "M_NOT_FOUND"
304
+ }
305
+ tags:
306
+ - Third-party Lookup
307
+ servers:
308
+ - url: "{protocol}://{hostname}{basePath}"
309
+ variables:
310
+ protocol:
311
+ enum:
312
+ - http
313
+ - https
314
+ default: https
315
+ hostname:
316
+ default: localhost:8008
317
+ basePath:
318
+ default: /_matrix/client/v3
319
+ components:
320
+ securitySchemes:
321
+ accessTokenQuery:
322
+ $ref: definitions/security.yaml#/accessTokenQuery
323
+ accessTokenBearer:
324
+ $ref: definitions/security.yaml#/accessTokenBearer
@@ -0,0 +1,139 @@
1
+ # Copyright 2016 OpenMarket Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ openapi: 3.1.0
15
+ info:
16
+ title: Matrix Client-Server Room Membership API for third-party identifiers
17
+ version: 1.0.0
18
+ paths:
19
+ "/rooms/{roomId}/invite":
20
+ post:
21
+ summary: Invite a user to participate in a particular room.
22
+ description: |-
23
+ *Note that there are two forms of this API, which are documented separately.
24
+ This version of the API does not require that the inviter know the Matrix
25
+ identifier of the invitee, and instead relies on third-party identifiers.
26
+ The homeserver uses an identity server to perform the mapping from
27
+ third-party identifier to a Matrix identifier. The other is documented in the*
28
+ [joining rooms section](/client-server-api/#post_matrixclientv3roomsroomidinvite).
29
+
30
+ This API invites a user to participate in a particular room.
31
+ They do not start participating in the room until they actually join the
32
+ room.
33
+
34
+ Only users currently in a particular room can invite other users to
35
+ join that room.
36
+
37
+ If the identity server did know the Matrix user identifier for the
38
+ third-party identifier, the homeserver will append a `m.room.member`
39
+ event to the room.
40
+
41
+ If the identity server does not know a Matrix user identifier for the
42
+ passed third-party identifier, the homeserver will issue an invitation
43
+ which can be accepted upon providing proof of ownership of the third-
44
+ party identifier. This is achieved by the identity server generating a
45
+ token, which it gives to the inviting homeserver. The homeserver will
46
+ add an `m.room.third_party_invite` event into the graph for the room,
47
+ containing that token.
48
+
49
+ When the invitee binds the invited third-party identifier to a Matrix
50
+ user ID, the identity server will give the user a list of pending
51
+ invitations, each containing:
52
+
53
+ - The room ID to which they were invited
54
+
55
+ - The token given to the homeserver
56
+
57
+ - A signature of the token, signed with the identity server's private key
58
+
59
+ - The matrix user ID who invited them to the room
60
+ operationId: inviteBy3PID
61
+ security:
62
+ - accessTokenQuery: []
63
+ - accessTokenBearer: []
64
+ parameters:
65
+ - in: path
66
+ name: roomId
67
+ description: The room identifier (not alias) to which to invite the user.
68
+ required: true
69
+ example: "!d41d8cd:matrix.org"
70
+ schema:
71
+ type: string
72
+ format: mx-room-id
73
+ pattern: "^!"
74
+ requestBody:
75
+ content:
76
+ application/json:
77
+ schema:
78
+ $ref: definitions/invite_3pid.yaml
79
+ required: true
80
+ responses:
81
+ "200":
82
+ description: The user has been invited to join the room.
83
+ content:
84
+ application/json:
85
+ schema:
86
+ type: object
87
+ examples:
88
+ response:
89
+ value: {}
90
+ "403":
91
+ description: |-
92
+ You do not have permission to invite the user to the room. A
93
+ meaningful `errcode` and description error text will be returned.
94
+ Example reasons for rejections are:
95
+
96
+ - The invitee has been banned from the room.
97
+ - The invitee is already a member of the room.
98
+ - The inviter is not currently in the room.
99
+ - The inviter's power level is insufficient to invite users to the room.
100
+
101
+ {{% added-in v="1.18"%}} The `M_INVITE_BLOCKED` error code is used to
102
+ indicate that the homeserver rejected the invite due to
103
+ [invite blocking](/client-server-api/#invite-permission).
104
+ content:
105
+ application/json:
106
+ schema:
107
+ $ref: definitions/errors/error.yaml
108
+ examples:
109
+ response:
110
+ value: {
111
+ "errcode": "M_FORBIDDEN",
112
+ "error": "@cheeky_monkey:matrix.org is banned from the room"
113
+ }
114
+ "429":
115
+ description: This request was rate-limited.
116
+ content:
117
+ application/json:
118
+ schema:
119
+ $ref: definitions/errors/rate_limited.yaml
120
+ tags:
121
+ - Room membership
122
+ servers:
123
+ - url: "{protocol}://{hostname}{basePath}"
124
+ variables:
125
+ protocol:
126
+ enum:
127
+ - http
128
+ - https
129
+ default: https
130
+ hostname:
131
+ default: localhost:8008
132
+ basePath:
133
+ default: /_matrix/client/v3
134
+ components:
135
+ securitySchemes:
136
+ accessTokenQuery:
137
+ $ref: definitions/security.yaml#/accessTokenQuery
138
+ accessTokenBearer:
139
+ $ref: definitions/security.yaml#/accessTokenBearer