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.
- checksums.yaml +4 -4
- data/README.md +131 -0
- data/data/matrix-spec/api/client-server/account-data.yaml +389 -0
- data/data/matrix-spec/api/client-server/account_deactivation.yaml +149 -0
- data/data/matrix-spec/api/client-server/admin.yaml +512 -0
- data/data/matrix-spec/api/client-server/administrative_contact.yaml +620 -0
- data/data/matrix-spec/api/client-server/appservice_ping.yaml +183 -0
- data/data/matrix-spec/api/client-server/appservice_room_directory.yaml +104 -0
- data/data/matrix-spec/api/client-server/authed-content-repo.yaml +590 -0
- data/data/matrix-spec/api/client-server/banning.yaml +177 -0
- data/data/matrix-spec/api/client-server/capabilities.yaml +235 -0
- data/data/matrix-spec/api/client-server/content-repo.yaml +887 -0
- data/data/matrix-spec/api/client-server/create_room.yaml +306 -0
- data/data/matrix-spec/api/client-server/cross_signing.yaml +300 -0
- data/data/matrix-spec/api/client-server/definitions/auth_data.yaml +34 -0
- data/data/matrix-spec/api/client-server/definitions/auth_response.yaml +62 -0
- data/data/matrix-spec/api/client-server/definitions/client_device.yaml +44 -0
- data/data/matrix-spec/api/client-server/definitions/client_event.yaml +49 -0
- data/data/matrix-spec/api/client-server/definitions/client_event_without_room_id.yaml +147 -0
- data/data/matrix-spec/api/client-server/definitions/cross_signing_key.yaml +57 -0
- data/data/matrix-spec/api/client-server/definitions/device_keys.yaml +70 -0
- data/data/matrix-spec/api/client-server/definitions/errors/error.yaml +26 -0
- data/data/matrix-spec/api/client-server/definitions/errors/rate_limited.yaml +34 -0
- data/data/matrix-spec/api/client-server/definitions/event_batch.yaml +22 -0
- data/data/matrix-spec/api/client-server/definitions/event_filter.yaml +55 -0
- data/data/matrix-spec/api/client-server/definitions/invite_3pid.yaml +45 -0
- data/data/matrix-spec/api/client-server/definitions/key_backup_auth_data.yaml +36 -0
- data/data/matrix-spec/api/client-server/definitions/key_backup_data.yaml +50 -0
- data/data/matrix-spec/api/client-server/definitions/key_backup_session_data.yaml +57 -0
- data/data/matrix-spec/api/client-server/definitions/m.login.terms_params.yaml +83 -0
- data/data/matrix-spec/api/client-server/definitions/m.mentions.yaml +33 -0
- data/data/matrix-spec/api/client-server/definitions/m.oauth_params.yaml +30 -0
- data/data/matrix-spec/api/client-server/definitions/m.relates_to.yaml +45 -0
- data/data/matrix-spec/api/client-server/definitions/megolm_export_session_data.yaml +39 -0
- data/data/matrix-spec/api/client-server/definitions/olm_payload.yaml +88 -0
- data/data/matrix-spec/api/client-server/definitions/one_time_keys.yaml +27 -0
- data/data/matrix-spec/api/client-server/definitions/openid_token.yaml +37 -0
- data/data/matrix-spec/api/client-server/definitions/protocol.yaml +44 -0
- data/data/matrix-spec/api/client-server/definitions/public_rooms_chunk.yaml +74 -0
- data/data/matrix-spec/api/client-server/definitions/public_rooms_response.yaml +59 -0
- data/data/matrix-spec/api/client-server/definitions/push_condition.yaml +53 -0
- data/data/matrix-spec/api/client-server/definitions/push_rule.yaml +53 -0
- data/data/matrix-spec/api/client-server/definitions/push_ruleset.yaml +206 -0
- data/data/matrix-spec/api/client-server/definitions/recent_emoji.yaml +29 -0
- data/data/matrix-spec/api/client-server/definitions/request_email_validation.yaml +36 -0
- data/data/matrix-spec/api/client-server/definitions/request_msisdn_validation.yaml +36 -0
- data/data/matrix-spec/api/client-server/definitions/request_token_response.yaml +46 -0
- data/data/matrix-spec/api/client-server/definitions/room_event_filter.yaml +60 -0
- data/data/matrix-spec/api/client-server/definitions/room_key_backup.yaml +37 -0
- data/data/matrix-spec/api/client-server/definitions/room_summary.yaml +44 -0
- data/data/matrix-spec/api/client-server/definitions/security.yaml +47 -0
- data/data/matrix-spec/api/client-server/definitions/sso_login_flow.yaml +98 -0
- data/data/matrix-spec/api/client-server/definitions/state_event_batch.yaml +21 -0
- data/data/matrix-spec/api/client-server/definitions/sync_filter.yaml +86 -0
- data/data/matrix-spec/api/client-server/definitions/tag.yaml +24 -0
- data/data/matrix-spec/api/client-server/definitions/third_party_signed.yaml +45 -0
- data/data/matrix-spec/api/client-server/definitions/timeline_batch.yaml +36 -0
- data/data/matrix-spec/api/client-server/definitions/user_identifier.yaml +27 -0
- data/data/matrix-spec/api/client-server/definitions/wellknown/full.yaml +38 -0
- data/data/matrix-spec/api/client-server/definitions/wellknown/homeserver.yaml +25 -0
- data/data/matrix-spec/api/client-server/definitions/wellknown/identity_server.yaml +25 -0
- data/data/matrix-spec/api/client-server/device_management.yaml +314 -0
- data/data/matrix-spec/api/client-server/directory.yaml +318 -0
- data/data/matrix-spec/api/client-server/event_context.yaml +161 -0
- data/data/matrix-spec/api/client-server/filter.yaml +224 -0
- data/data/matrix-spec/api/client-server/inviting.yaml +149 -0
- data/data/matrix-spec/api/client-server/joining.yaml +238 -0
- data/data/matrix-spec/api/client-server/key_backup.yaml +993 -0
- data/data/matrix-spec/api/client-server/keys.yaml +482 -0
- data/data/matrix-spec/api/client-server/kicking.yaml +110 -0
- data/data/matrix-spec/api/client-server/knocking.yaml +152 -0
- data/data/matrix-spec/api/client-server/leaving.yaml +163 -0
- data/data/matrix-spec/api/client-server/list_joined_rooms.yaml +68 -0
- data/data/matrix-spec/api/client-server/list_public_rooms.yaml +280 -0
- data/data/matrix-spec/api/client-server/login.yaml +321 -0
- data/data/matrix-spec/api/client-server/login_token.yaml +138 -0
- data/data/matrix-spec/api/client-server/logout.yaml +86 -0
- data/data/matrix-spec/api/client-server/message_pagination.yaml +194 -0
- data/data/matrix-spec/api/client-server/notifications.yaml +152 -0
- data/data/matrix-spec/api/client-server/oauth_server_metadata.yaml +238 -0
- data/data/matrix-spec/api/client-server/old_sync.yaml +379 -0
- data/data/matrix-spec/api/client-server/openid.yaml +98 -0
- data/data/matrix-spec/api/client-server/password_management.yaml +246 -0
- data/data/matrix-spec/api/client-server/peeking_events.yaml +122 -0
- data/data/matrix-spec/api/client-server/policy_server.yaml +82 -0
- data/data/matrix-spec/api/client-server/presence.yaml +169 -0
- data/data/matrix-spec/api/client-server/profile.yaml +366 -0
- data/data/matrix-spec/api/client-server/pusher.yaml +303 -0
- data/data/matrix-spec/api/client-server/pushrules.yaml +633 -0
- data/data/matrix-spec/api/client-server/read_markers.yaml +103 -0
- data/data/matrix-spec/api/client-server/receipts.yaml +139 -0
- data/data/matrix-spec/api/client-server/redaction.yaml +116 -0
- data/data/matrix-spec/api/client-server/refresh.yaml +119 -0
- data/data/matrix-spec/api/client-server/registration.yaml +488 -0
- data/data/matrix-spec/api/client-server/registration_tokens.yaml +93 -0
- data/data/matrix-spec/api/client-server/relations.yaml +382 -0
- data/data/matrix-spec/api/client-server/report_content.yaml +283 -0
- data/data/matrix-spec/api/client-server/room_event_by_timestamp.yaml +147 -0
- data/data/matrix-spec/api/client-server/room_initial_sync.yaml +188 -0
- data/data/matrix-spec/api/client-server/room_send.yaml +130 -0
- data/data/matrix-spec/api/client-server/room_state.yaml +159 -0
- data/data/matrix-spec/api/client-server/room_summary.yaml +138 -0
- data/data/matrix-spec/api/client-server/room_upgrades.yaml +130 -0
- data/data/matrix-spec/api/client-server/rooms.yaml +380 -0
- data/data/matrix-spec/api/client-server/search.yaml +385 -0
- data/data/matrix-spec/api/client-server/space_hierarchy.yaml +237 -0
- data/data/matrix-spec/api/client-server/sso_login_redirect.yaml +135 -0
- data/data/matrix-spec/api/client-server/support.yaml +142 -0
- data/data/matrix-spec/api/client-server/sync.yaml +692 -0
- data/data/matrix-spec/api/client-server/tags.yaml +183 -0
- data/data/matrix-spec/api/client-server/third_party_lookup.yaml +324 -0
- data/data/matrix-spec/api/client-server/third_party_membership.yaml +139 -0
- data/data/matrix-spec/api/client-server/threads_list.yaml +167 -0
- data/data/matrix-spec/api/client-server/to_device.yaml +104 -0
- data/data/matrix-spec/api/client-server/typing.yaml +103 -0
- data/data/matrix-spec/api/client-server/users.yaml +136 -0
- data/data/matrix-spec/api/client-server/versions.yaml +108 -0
- data/data/matrix-spec/api/client-server/voip.yaml +93 -0
- data/data/matrix-spec/api/client-server/wellknown.yaml +60 -0
- data/data/matrix-spec/api/client-server/whoami.yaml +121 -0
- data/data/matrix-spec/event-schemas/examples/core/event.json +6 -0
- data/data/matrix-spec/event-schemas/examples/core/room_edu.json +3 -0
- data/data/matrix-spec/event-schemas/examples/core/room_event.json +11 -0
- data/data/matrix-spec/event-schemas/examples/core/state_event.json +4 -0
- data/data/matrix-spec/event-schemas/examples/invite_room_state.json +18 -0
- data/data/matrix-spec/event-schemas/examples/knock_room_state.json +18 -0
- data/data/matrix-spec/event-schemas/examples/m.accepted_terms.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.call.answer.yaml +21 -0
- data/data/matrix-spec/event-schemas/examples/m.call.candidates.yaml +16 -0
- data/data/matrix-spec/event-schemas/examples/m.call.hangup.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.call.invite.yaml +22 -0
- data/data/matrix-spec/event-schemas/examples/m.call.negotiate.yaml +22 -0
- data/data/matrix-spec/event-schemas/examples/m.call.reject.yaml +9 -0
- data/data/matrix-spec/event-schemas/examples/m.call.sdp_stream_metadata_changed.yaml +16 -0
- data/data/matrix-spec/event-schemas/examples/m.call.select_answer.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.direct.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.dummy.yaml +4 -0
- data/data/matrix-spec/event-schemas/examples/m.forwarded_room_key.yaml +14 -0
- data/data/matrix-spec/event-schemas/examples/m.fully_read.yaml +7 -0
- data/data/matrix-spec/event-schemas/examples/m.identity_server.yaml +7 -0
- data/data/matrix-spec/event-schemas/examples/m.ignored_user_list.yaml +9 -0
- data/data/matrix-spec/event-schemas/examples/m.invite_permission_config.yaml +7 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.accept.yaml +12 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.cancel.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.done.yaml +6 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.key.yaml +7 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.mac.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.ready.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.request.yaml +11 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.start$m.sas.v1.yaml +12 -0
- data/data/matrix-spec/event-schemas/examples/m.key.verification.start.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.key_backup.yaml +7 -0
- data/data/matrix-spec/event-schemas/examples/m.marked_unread.yaml +7 -0
- data/data/matrix-spec/event-schemas/examples/m.policy.rule.room.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.policy.rule.server.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.policy.rule.user.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.presence.yaml +12 -0
- data/data/matrix-spec/event-schemas/examples/m.push_rules.yaml +177 -0
- data/data/matrix-spec/event-schemas/examples/m.reaction.yaml +11 -0
- data/data/matrix-spec/event-schemas/examples/m.receipt.yaml +18 -0
- data/data/matrix-spec/event-schemas/examples/m.recent_emoji.yaml +16 -0
- data/data/matrix-spec/event-schemas/examples/m.room.avatar.yaml +14 -0
- data/data/matrix-spec/event-schemas/examples/m.room.canonical_alias.yaml +12 -0
- data/data/matrix-spec/event-schemas/examples/m.room.create.yaml +13 -0
- data/data/matrix-spec/event-schemas/examples/m.room.encrypted$megolm.yaml +11 -0
- data/data/matrix-spec/event-schemas/examples/m.room.encrypted$olm.yaml +14 -0
- data/data/matrix-spec/event-schemas/examples/m.room.encryption.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.room.guest_access.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.room.history_visibility.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.room.join_rules$restricted.yaml +18 -0
- data/data/matrix-spec/event-schemas/examples/m.room.join_rules.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.room.member$invite_room_state.yaml +15 -0
- data/data/matrix-spec/event-schemas/examples/m.room.member$join_authorised_via_users_server.yaml +12 -0
- data/data/matrix-spec/event-schemas/examples/m.room.member$knock_room_state.yaml +15 -0
- data/data/matrix-spec/event-schemas/examples/m.room.member$third_party_invite.yaml +20 -0
- data/data/matrix-spec/event-schemas/examples/m.room.member.yaml +12 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.audio.yaml +14 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.emote.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.file.yaml +14 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.image.yaml +16 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.key.verification.request.yaml +19 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.location.yaml +18 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.notice.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.server_notice.yaml +11 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.text.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.room.message$m.video.yaml +23 -0
- data/data/matrix-spec/event-schemas/examples/m.room.name.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.room.pinned_events.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.room.policy.yaml +11 -0
- data/data/matrix-spec/event-schemas/examples/m.room.power_levels.yaml +24 -0
- data/data/matrix-spec/event-schemas/examples/m.room.redaction.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.room.server_acl.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.room.third_party_invite.yaml +14 -0
- data/data/matrix-spec/event-schemas/examples/m.room.tombstone.yaml +9 -0
- data/data/matrix-spec/event-schemas/examples/m.room.topic.yaml +16 -0
- data/data/matrix-spec/event-schemas/examples/m.room_key.withheld.yaml +12 -0
- data/data/matrix-spec/event-schemas/examples/m.room_key.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.room_key_request$cancel_request.yaml +8 -0
- data/data/matrix-spec/event-schemas/examples/m.room_key_request$request.yaml +14 -0
- data/data/matrix-spec/event-schemas/examples/m.secret.request.yaml +9 -0
- data/data/matrix-spec/event-schemas/examples/m.secret.send.yaml +7 -0
- data/data/matrix-spec/event-schemas/examples/m.space.child.yaml +10 -0
- data/data/matrix-spec/event-schemas/examples/m.space.parent.yaml +9 -0
- data/data/matrix-spec/event-schemas/examples/m.sticker.yaml +22 -0
- data/data/matrix-spec/event-schemas/examples/m.tag.yaml +9 -0
- data/data/matrix-spec/event-schemas/examples/m.typing.yaml +7 -0
- data/data/matrix-spec/event-schemas/moderation_policy_rule.yaml +32 -0
- data/data/matrix-spec/event-schemas/schema/components/m_text_content_block.yaml +28 -0
- data/data/matrix-spec/event-schemas/schema/components/sdp_stream_metadata.yaml +43 -0
- data/data/matrix-spec/event-schemas/schema/components/signed_third_party_invite.yaml +48 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/call_event.yaml +27 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/event.yaml +16 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/avatar_info.yaml +30 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/image_info.yaml +52 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/msgtype_infos/thumbnail_info.yaml +22 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/room_event.yaml +17 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/state_event.yaml +8 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/stripped_state.yaml +48 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_room_event.yaml +49 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/sync_state_event.yaml +36 -0
- data/data/matrix-spec/event-schemas/schema/core-event-schema/unsigned_prop.yaml +23 -0
- data/data/matrix-spec/event-schemas/schema/m.accepted_terms.yaml +25 -0
- data/data/matrix-spec/event-schemas/schema/m.call.answer.yaml +44 -0
- data/data/matrix-spec/event-schemas/schema/m.call.candidates.yaml +52 -0
- data/data/matrix-spec/event-schemas/schema/m.call.hangup.yaml +57 -0
- data/data/matrix-spec/event-schemas/schema/m.call.invite.yaml +53 -0
- data/data/matrix-spec/event-schemas/schema/m.call.negotiate.yaml +78 -0
- data/data/matrix-spec/event-schemas/schema/m.call.reject.yaml +29 -0
- data/data/matrix-spec/event-schemas/schema/m.call.sdp_stream_metadata_changed.yaml +24 -0
- data/data/matrix-spec/event-schemas/schema/m.call.select_answer.yaml +29 -0
- data/data/matrix-spec/event-schemas/schema/m.direct.yaml +29 -0
- data/data/matrix-spec/event-schemas/schema/m.dummy.yaml +25 -0
- data/data/matrix-spec/event-schemas/schema/m.forwarded_room_key.yaml +70 -0
- data/data/matrix-spec/event-schemas/schema/m.fully_read.yaml +26 -0
- data/data/matrix-spec/event-schemas/schema/m.identity_server.yaml +28 -0
- data/data/matrix-spec/event-schemas/schema/m.ignored_user_list.yaml +30 -0
- data/data/matrix-spec/event-schemas/schema/m.invite_permission_config.yaml +21 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.accept.yaml +63 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.cancel.yaml +72 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.done.yaml +24 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.key.yaml +31 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.m.relates_to.yaml +23 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.mac.yaml +43 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.ready.yaml +41 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.request.yaml +47 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.reciprocate.v1.yaml +45 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.start$m.sas.v1.yaml +76 -0
- data/data/matrix-spec/event-schemas/schema/m.key.verification.start.yaml +46 -0
- data/data/matrix-spec/event-schemas/schema/m.key_backup.yaml +24 -0
- data/data/matrix-spec/event-schemas/schema/m.marked_unread.yaml +26 -0
- data/data/matrix-spec/event-schemas/schema/m.policy.rule.room.yaml +17 -0
- data/data/matrix-spec/event-schemas/schema/m.policy.rule.server.yaml +17 -0
- data/data/matrix-spec/event-schemas/schema/m.policy.rule.user.yaml +17 -0
- data/data/matrix-spec/event-schemas/schema/m.presence.yaml +50 -0
- data/data/matrix-spec/event-schemas/schema/m.push_rules.yaml +23 -0
- data/data/matrix-spec/event-schemas/schema/m.reaction.yaml +45 -0
- data/data/matrix-spec/event-schemas/schema/m.receipt.yaml +65 -0
- data/data/matrix-spec/event-schemas/schema/m.recent_emoji.yaml +29 -0
- data/data/matrix-spec/event-schemas/schema/m.room.avatar.yaml +29 -0
- data/data/matrix-spec/event-schemas/schema/m.room.canonical_alias.yaml +40 -0
- data/data/matrix-spec/event-schemas/schema/m.room.create.yaml +86 -0
- data/data/matrix-spec/event-schemas/schema/m.room.encrypted.yaml +91 -0
- data/data/matrix-spec/event-schemas/schema/m.room.encryption.yaml +38 -0
- data/data/matrix-spec/event-schemas/schema/m.room.guest_access.yaml +28 -0
- data/data/matrix-spec/event-schemas/schema/m.room.history_visibility.yaml +30 -0
- data/data/matrix-spec/event-schemas/schema/m.room.join_rules.yaml +78 -0
- data/data/matrix-spec/event-schemas/schema/m.room.member.yaml +174 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.audio.yaml +73 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.emote.yaml +36 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.file.yaml +85 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.image.yaml +63 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.key.verification.request.yaml +70 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.location.yaml +50 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.notice.yaml +36 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.server_notice.yaml +41 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.text.yaml +36 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message$m.video.yaml +95 -0
- data/data/matrix-spec/event-schemas/schema/m.room.message.yaml +25 -0
- data/data/matrix-spec/event-schemas/schema/m.room.name.yaml +35 -0
- data/data/matrix-spec/event-schemas/schema/m.room.pinned_events.yaml +27 -0
- data/data/matrix-spec/event-schemas/schema/m.room.policy.yaml +41 -0
- data/data/matrix-spec/event-schemas/schema/m.room.power_levels.yaml +139 -0
- data/data/matrix-spec/event-schemas/schema/m.room.redaction.yaml +29 -0
- data/data/matrix-spec/event-schemas/schema/m.room.server_acl.yaml +88 -0
- data/data/matrix-spec/event-schemas/schema/m.room.third_party_invite.yaml +79 -0
- data/data/matrix-spec/event-schemas/schema/m.room.tombstone.yaml +29 -0
- data/data/matrix-spec/event-schemas/schema/m.room.topic.yaml +53 -0
- data/data/matrix-spec/event-schemas/schema/m.room_key.withheld.yaml +88 -0
- data/data/matrix-spec/event-schemas/schema/m.room_key.yaml +38 -0
- data/data/matrix-spec/event-schemas/schema/m.room_key_request.yaml +73 -0
- data/data/matrix-spec/event-schemas/schema/m.secret.request.yaml +42 -0
- data/data/matrix-spec/event-schemas/schema/m.secret.send.yaml +35 -0
- data/data/matrix-spec/event-schemas/schema/m.space.child.yaml +50 -0
- data/data/matrix-spec/event-schemas/schema/m.space.parent.yaml +36 -0
- data/data/matrix-spec/event-schemas/schema/m.sticker.yaml +36 -0
- data/data/matrix-spec/event-schemas/schema/m.tag.yaml +28 -0
- data/data/matrix-spec/event-schemas/schema/m.typing.yaml +29 -0
- data/lib/async/matrix/api/chain.rb +575 -0
- data/lib/async/matrix/api/concat.rb +105 -0
- data/lib/async/matrix/api/path_tree.rb +208 -0
- data/lib/async/matrix/api.rb +204 -0
- data/lib/async/matrix/application_service/bot.rb +235 -0
- data/lib/async/matrix/application_service/config/schema/analytics.json +21 -0
- data/lib/async/matrix/application_service/config/schema/appservice.json +82 -0
- data/lib/async/matrix/application_service/config/schema/backfill.json +91 -0
- data/lib/async/matrix/application_service/config/schema/bridge.json +209 -0
- data/lib/async/matrix/application_service/config/schema/config.json +61 -0
- data/lib/async/matrix/application_service/config/schema/database.json +38 -0
- data/lib/async/matrix/application_service/config/schema/direct_media.json +35 -0
- data/lib/async/matrix/application_service/config/schema/double_puppet.json +24 -0
- data/lib/async/matrix/application_service/config/schema/encryption.json +164 -0
- data/lib/async/matrix/application_service/config/schema/homeserver.json +58 -0
- data/lib/async/matrix/application_service/config/schema/logging.json +50 -0
- data/lib/async/matrix/application_service/config/schema/management_room_texts.json +25 -0
- data/lib/async/matrix/application_service/config/schema/matrix.json +45 -0
- data/lib/async/matrix/application_service/config/schema/permissions.json +54 -0
- data/lib/async/matrix/application_service/config/schema/provisioning.json +23 -0
- data/lib/async/matrix/application_service/config/schema/public_media.json +39 -0
- data/lib/async/matrix/application_service/config/schema/relay.json +43 -0
- data/lib/async/matrix/application_service/config/vivify.rb +110 -0
- data/lib/async/matrix/application_service/config.rb +214 -123
- data/lib/async/matrix/application_service/dispatcher.rb +115 -113
- data/lib/async/matrix/application_service/error_response.rb +26 -26
- data/lib/async/matrix/application_service/event.rb +217 -1
- data/lib/async/matrix/application_service/server.rb +286 -215
- data/lib/async/matrix/application_service/transaction.rb +52 -52
- data/lib/async/matrix/application_service/transaction_store.rb +62 -62
- data/lib/async/matrix/client.rb +919 -179
- data/lib/async/matrix/connection.rb +8 -8
- data/lib/async/matrix/endpoint.rb +45 -45
- data/lib/async/matrix/error.rb +49 -43
- data/lib/async/matrix/media_client.rb +173 -0
- data/lib/async/matrix/notifier.rb +92 -92
- data/lib/async/matrix/schema/registry.rb +355 -0
- data/lib/async/matrix/schema/validation_error.rb +226 -0
- data/lib/async/matrix/schema.rb +174 -0
- data/lib/async/matrix/server.rb +7 -7
- data/lib/async/matrix/stream.rb +7 -7
- data/lib/async/matrix/version.rb +1 -1
- data/lib/async/matrix.rb +5 -2
- 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
|