async-matrix 0.1.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +131 -0
- data/data/discord-api-spec/openapi.json +40404 -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/discord/api/path_tree.rb +130 -0
- data/lib/async/discord/api.rb +156 -0
- data/lib/async/discord/client.rb +286 -0
- data/lib/async/discord/error.rb +88 -0
- data/lib/async/discord/gateway.rb +362 -0
- data/lib/async/discord.rb +16 -0
- data/lib/async/matrix/api/chain.rb +584 -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 +113 -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 +206 -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/bridge/discord/db/connection.rb +143 -0
- data/lib/async/matrix/bridge/discord/db/file.rb +120 -0
- data/lib/async/matrix/bridge/discord/db/guild.rb +122 -0
- data/lib/async/matrix/bridge/discord/db/message.rb +162 -0
- data/lib/async/matrix/bridge/discord/db/migrations/001_create_users.rb +14 -0
- data/lib/async/matrix/bridge/discord/db/migrations/002_create_guilds.rb +14 -0
- data/lib/async/matrix/bridge/discord/db/migrations/003_create_portals.rb +23 -0
- data/lib/async/matrix/bridge/discord/db/migrations/004_create_puppets.rb +19 -0
- data/lib/async/matrix/bridge/discord/db/migrations/005_create_messages.rb +20 -0
- data/lib/async/matrix/bridge/discord/db/migrations/006_create_reactions.rb +19 -0
- data/lib/async/matrix/bridge/discord/db/migrations/007_create_files.rb +18 -0
- data/lib/async/matrix/bridge/discord/db/portal.rb +152 -0
- data/lib/async/matrix/bridge/discord/db/puppet.rb +130 -0
- data/lib/async/matrix/bridge/discord/db/reaction.rb +167 -0
- data/lib/async/matrix/bridge/discord/db/user.rb +114 -0
- data/lib/async/matrix/bridge/discord/db.rb +140 -0
- data/lib/async/matrix/client.rb +919 -179
- data/lib/async/matrix/connection.rb +8 -8
- data/lib/async/matrix/double_puppet_client.rb +84 -0
- 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 +8 -7
- data/lib/async/matrix/stream.rb +7 -7
- data/lib/async/matrix/version.rb +1 -1
- data/lib/async/matrix.rb +4 -2
- metadata +419 -1
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
|
|
15
|
+
# Note: this is technically not a core event schema, however it is included here
|
|
16
|
+
# to keep things sane. The short story is that /sync doesn't require a room_id to
|
|
17
|
+
# be on events, so we give it a whole event structure as a base for room_event.
|
|
18
|
+
# This base doesn't declare a room_id, which instead appears in the room_event.
|
|
19
|
+
|
|
20
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
21
|
+
|
|
22
|
+
title: SyncRoomEvent
|
|
23
|
+
description: In addition to the Event fields, Room Events have the following additional
|
|
24
|
+
fields.
|
|
25
|
+
allOf:
|
|
26
|
+
- $ref: event.yaml
|
|
27
|
+
- type: object
|
|
28
|
+
properties:
|
|
29
|
+
event_id:
|
|
30
|
+
description: The globally unique event identifier.
|
|
31
|
+
type: string
|
|
32
|
+
format: mx-event-id
|
|
33
|
+
pattern: "^\\$"
|
|
34
|
+
sender:
|
|
35
|
+
description: Contains the fully-qualified ID of the user who sent this event.
|
|
36
|
+
type: string
|
|
37
|
+
format: mx-user-id
|
|
38
|
+
pattern: "^@"
|
|
39
|
+
origin_server_ts:
|
|
40
|
+
description: Timestamp in milliseconds on originating homeserver
|
|
41
|
+
when this event was sent.
|
|
42
|
+
type: integer
|
|
43
|
+
format: int64
|
|
44
|
+
unsigned:
|
|
45
|
+
$ref: unsigned_prop.yaml
|
|
46
|
+
required:
|
|
47
|
+
- event_id
|
|
48
|
+
- sender
|
|
49
|
+
- origin_server_ts
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
|
|
15
|
+
# See sync_room_event.yaml for why this file is here.
|
|
16
|
+
|
|
17
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
18
|
+
|
|
19
|
+
title: SyncStateEvent
|
|
20
|
+
description: In addition to the Room Event fields, State Events have the following
|
|
21
|
+
additional fields.
|
|
22
|
+
allOf:
|
|
23
|
+
- $ref: sync_room_event.yaml
|
|
24
|
+
- type: object
|
|
25
|
+
properties:
|
|
26
|
+
state_key:
|
|
27
|
+
description: A unique key which defines the overwriting semantics for this piece
|
|
28
|
+
of room state. This value is often a zero-length string. The presence of this
|
|
29
|
+
key makes this event a State Event.
|
|
30
|
+
|
|
31
|
+
State keys starting with an `@` are reserved for referencing user IDs, such
|
|
32
|
+
as room members. With the exception of a few events, state events set with a
|
|
33
|
+
given user's ID as the state key MUST only be set by that user.
|
|
34
|
+
type: string
|
|
35
|
+
required:
|
|
36
|
+
- state_key
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
15
|
+
|
|
16
|
+
title: UnsignedData
|
|
17
|
+
type: object
|
|
18
|
+
description: Contains optional extra information about the event.
|
|
19
|
+
properties:
|
|
20
|
+
age:
|
|
21
|
+
description: The time in milliseconds that has elapsed since the event was
|
|
22
|
+
sent.
|
|
23
|
+
type: integer
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
3
|
+
|
|
4
|
+
allOf:
|
|
5
|
+
- $ref: core-event-schema/event.yaml
|
|
6
|
+
description: |-
|
|
7
|
+
A list of terms URLs the user has previously accepted. Clients SHOULD use this
|
|
8
|
+
to avoid presenting the user with terms they have already agreed to.
|
|
9
|
+
properties:
|
|
10
|
+
content:
|
|
11
|
+
type: object
|
|
12
|
+
properties:
|
|
13
|
+
accepted:
|
|
14
|
+
type: array
|
|
15
|
+
items:
|
|
16
|
+
type: string
|
|
17
|
+
description: |-
|
|
18
|
+
The list of URLs the user has previously accepted. Should be appended to
|
|
19
|
+
when the user agrees to new terms.
|
|
20
|
+
type:
|
|
21
|
+
enum:
|
|
22
|
+
- m.accepted_terms
|
|
23
|
+
type: string
|
|
24
|
+
title: Accepted Terms of Service URLs
|
|
25
|
+
type: object
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"description": "This event is sent by the callee when they wish to answer the call.",
|
|
5
|
+
"x-weight": 40,
|
|
6
|
+
"allOf": [{
|
|
7
|
+
"$ref": "core-event-schema/room_event.yaml"
|
|
8
|
+
}],
|
|
9
|
+
"properties": {
|
|
10
|
+
"content": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"allOf": [{
|
|
13
|
+
"$ref": "core-event-schema/call_event.yaml"
|
|
14
|
+
}],
|
|
15
|
+
"properties": {
|
|
16
|
+
"answer": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"title": "Answer",
|
|
19
|
+
"description": "The session description object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"type": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["answer"],
|
|
24
|
+
"description": "The type of session description."
|
|
25
|
+
},
|
|
26
|
+
"sdp": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "The SDP text of the session description."
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": ["type", "sdp"]
|
|
32
|
+
},
|
|
33
|
+
"sdp_stream_metadata": {
|
|
34
|
+
"$ref": "components/sdp_stream_metadata.yaml"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"required": ["answer"]
|
|
38
|
+
},
|
|
39
|
+
"type": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"enum": ["m.call.answer"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
|
|
3
|
+
type: object
|
|
4
|
+
description: |-
|
|
5
|
+
This event is sent by callers after sending an invite and by the callee after
|
|
6
|
+
answering. Its purpose is to give the other party additional ICE candidates to
|
|
7
|
+
try using to communicate.
|
|
8
|
+
x-weight: 20
|
|
9
|
+
allOf:
|
|
10
|
+
- $ref: core-event-schema/room_event.yaml
|
|
11
|
+
properties:
|
|
12
|
+
content:
|
|
13
|
+
type: object
|
|
14
|
+
allOf:
|
|
15
|
+
- $ref: core-event-schema/call_event.yaml
|
|
16
|
+
properties:
|
|
17
|
+
candidates:
|
|
18
|
+
type: array
|
|
19
|
+
description: Array of objects describing the candidates.
|
|
20
|
+
items:
|
|
21
|
+
type: object
|
|
22
|
+
title: Candidate
|
|
23
|
+
properties:
|
|
24
|
+
sdpMid:
|
|
25
|
+
type: string
|
|
26
|
+
description: |-
|
|
27
|
+
The SDP media type this candidate is intended for.
|
|
28
|
+
|
|
29
|
+
At least one of `sdpMid` or `sdpMLineIndex` is required, unless
|
|
30
|
+
this an end-of-candidates candidate.
|
|
31
|
+
sdpMLineIndex:
|
|
32
|
+
type: number
|
|
33
|
+
description: |-
|
|
34
|
+
The index of the SDP 'm' line this candidate is intended for.
|
|
35
|
+
|
|
36
|
+
At least one of `sdpMid` or `sdpMLineIndex` is required, unless
|
|
37
|
+
this an end-of-candidates candidate.
|
|
38
|
+
candidate:
|
|
39
|
+
type: string
|
|
40
|
+
description: |-
|
|
41
|
+
The SDP 'a' line of the candidate.
|
|
42
|
+
|
|
43
|
+
If this is an [end-of-candidates](/client-server-api/#end-of-candidates)
|
|
44
|
+
candidate, this is the empty string.
|
|
45
|
+
required:
|
|
46
|
+
- candidate
|
|
47
|
+
required:
|
|
48
|
+
- candidates
|
|
49
|
+
type:
|
|
50
|
+
type: string
|
|
51
|
+
enum:
|
|
52
|
+
- m.call.candidates
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
3
|
+
|
|
4
|
+
type: object
|
|
5
|
+
description: |
|
|
6
|
+
Sent by either party to signal their termination of the call. This can
|
|
7
|
+
be sent either once the call has has been established or before to abort the call.
|
|
8
|
+
|
|
9
|
+
The meanings of the `reason` field are as follows:
|
|
10
|
+
* `ice_failed`: ICE negotiation has failed and a media connection could not be established.
|
|
11
|
+
* `ice_timeout`: The connection failed after some media was exchanged (as opposed to `ice_failed`
|
|
12
|
+
which means no media connection could be established). Note that, in the case of an ICE
|
|
13
|
+
renegotiation, a client should be sure to send `ice_timeout` rather than `ice_failed` if media
|
|
14
|
+
had previously been received successfully, even if the ICE renegotiation itself failed.
|
|
15
|
+
* `invite_timeout`: The other party did not answer in time.
|
|
16
|
+
* `user_hangup`: Clients must now send this code when the user chooses to end the call, although
|
|
17
|
+
for backwards compatibility with version 0, a clients should treat an absence of the `reason`
|
|
18
|
+
field as `user_hangup`.
|
|
19
|
+
* `user_media_failed`: The client was unable to start capturing media in such a way that it is unable
|
|
20
|
+
to continue the call.
|
|
21
|
+
* `user_busy`: The user is busy. Note that this exists primarily for bridging to other networks such
|
|
22
|
+
as the PSTN. A Matrix client that receives a call whilst already in a call would not generally reject
|
|
23
|
+
the new call unless the user had specifically chosen to do so.
|
|
24
|
+
* `unknown_error`: Some other failure occurred that meant the client was unable to continue the call
|
|
25
|
+
rather than the user choosing to end it.
|
|
26
|
+
x-weight: 80
|
|
27
|
+
allOf:
|
|
28
|
+
- "$ref": core-event-schema/room_event.yaml
|
|
29
|
+
properties:
|
|
30
|
+
content:
|
|
31
|
+
type: object
|
|
32
|
+
allOf:
|
|
33
|
+
- "$ref": core-event-schema/call_event.yaml
|
|
34
|
+
properties:
|
|
35
|
+
reason:
|
|
36
|
+
type: string
|
|
37
|
+
description: Reason for the hangup. Note that this was optional in
|
|
38
|
+
previous previous versions of the spec, so a missing value should be
|
|
39
|
+
treated as `user_hangup`.
|
|
40
|
+
x-changedInMatrixVersion:
|
|
41
|
+
"1.7": |-
|
|
42
|
+
Additional values were added.
|
|
43
|
+
enum:
|
|
44
|
+
- ice_timeout
|
|
45
|
+
- ice_failed
|
|
46
|
+
- invite_timeout
|
|
47
|
+
- user_hangup
|
|
48
|
+
- user_media_failed
|
|
49
|
+
- user_busy
|
|
50
|
+
- unknown_error
|
|
51
|
+
required:
|
|
52
|
+
- reason
|
|
53
|
+
type:
|
|
54
|
+
type: string
|
|
55
|
+
enum:
|
|
56
|
+
- m.call.hangup
|
|
57
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"description": "This event is sent by the caller when they wish to establish a call.",
|
|
5
|
+
"x-weight": 10,
|
|
6
|
+
"allOf": [{
|
|
7
|
+
"$ref": "core-event-schema/room_event.yaml"
|
|
8
|
+
}],
|
|
9
|
+
"properties": {
|
|
10
|
+
"content": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"allOf": [{
|
|
13
|
+
"$ref": "core-event-schema/call_event.yaml"
|
|
14
|
+
}],
|
|
15
|
+
"properties": {
|
|
16
|
+
"offer": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"title": "Offer",
|
|
19
|
+
"description": "The session description object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"type": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["offer"],
|
|
24
|
+
"description": "The type of session description."
|
|
25
|
+
},
|
|
26
|
+
"sdp": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "The SDP text of the session description."
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": ["type", "sdp"]
|
|
32
|
+
},
|
|
33
|
+
"lifetime": {
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"description": "The time in milliseconds that the invite is valid for. Once the invite age exceeds this value, clients should discard it. They should also no longer show the call as awaiting an answer in the UI."
|
|
36
|
+
},
|
|
37
|
+
"invitee": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "The ID of the user being called. If omitted, any user in the room can answer.",
|
|
40
|
+
"x-addedInMatrixVersion": "1.7"
|
|
41
|
+
},
|
|
42
|
+
"sdp_stream_metadata": {
|
|
43
|
+
"$ref": "components/sdp_stream_metadata.yaml"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"required": ["offer", "lifetime"]
|
|
47
|
+
},
|
|
48
|
+
"type": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": ["m.call.invite"]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
3
|
+
|
|
4
|
+
type: object
|
|
5
|
+
description: |
|
|
6
|
+
Provides SDP negotiation semantics for media pause, hold/resume, ICE restarts
|
|
7
|
+
and voice/video call up/downgrading. Clients should implement and honour hold
|
|
8
|
+
functionality as per [WebRTC's recommendation](https://www.w3.org/TR/webrtc/#hold-functionality).
|
|
9
|
+
|
|
10
|
+
If both the invite event and the accepted answer event have `version` equal
|
|
11
|
+
to `"1"`, either party may send `m.call.negotiate` with a `description` field
|
|
12
|
+
to offer new SDP to the other party. This event has `call_id` with the ID of
|
|
13
|
+
the call and `party_id` equal to the client's party ID for that call. The
|
|
14
|
+
caller ignores any negotiate events with `party_id` + `user_id` tuple not
|
|
15
|
+
equal to that of the answer it accepted and the callee ignores any negotiate
|
|
16
|
+
events with `party_id` + `user_id` tuple not equal to that of the caller.
|
|
17
|
+
Clients should use the `party_id` field to ignore the remote echo of their
|
|
18
|
+
own negotiate events.
|
|
19
|
+
|
|
20
|
+
This has a `lifetime` field as in `m.call.invite`, after which the sender of
|
|
21
|
+
the negotiate event should consider the negotiation failed (timed out) and
|
|
22
|
+
the recipient should ignore it.
|
|
23
|
+
|
|
24
|
+
The `description` field is the same as the `offer` field in `m.call.invite`
|
|
25
|
+
and `answer` field in `m.call.answer` and is an `RTCSessionDescriptionInit`
|
|
26
|
+
object as per https://www.w3.org/TR/webrtc/#dom-rtcsessiondescriptioninit.
|
|
27
|
+
|
|
28
|
+
Once an `m.call.negotiate` event is received, the client must respond with
|
|
29
|
+
another `m.call.negotiate` event, with the SDP answer (with `"type": "answer"`)
|
|
30
|
+
in the `description` property.
|
|
31
|
+
|
|
32
|
+
In the `m.call.invite` and `m.call.answer` events, the `offer` and `answer`
|
|
33
|
+
fields respectively are objects of type `RTCSessionDescriptionInit`. Hence
|
|
34
|
+
the `type` field, whilst redundant in these events, is included for ease of
|
|
35
|
+
working with the WebRTC API and is mandatory. Receiving clients should not
|
|
36
|
+
attempt to validate the `type` field, but simply pass the object into the
|
|
37
|
+
WebRTC API.
|
|
38
|
+
x-addedInMatrixVersion: "1.7"
|
|
39
|
+
x-weight: 60
|
|
40
|
+
allOf:
|
|
41
|
+
- "$ref": core-event-schema/room_event.yaml
|
|
42
|
+
properties:
|
|
43
|
+
content:
|
|
44
|
+
type: object
|
|
45
|
+
allOf:
|
|
46
|
+
- "$ref": core-event-schema/call_event.yaml
|
|
47
|
+
properties:
|
|
48
|
+
description:
|
|
49
|
+
type: object
|
|
50
|
+
title: Description
|
|
51
|
+
description: The session description object
|
|
52
|
+
properties:
|
|
53
|
+
type:
|
|
54
|
+
type: string
|
|
55
|
+
enum:
|
|
56
|
+
- offer
|
|
57
|
+
- answer
|
|
58
|
+
description: The type of session description.
|
|
59
|
+
sdp:
|
|
60
|
+
type: string
|
|
61
|
+
description: The SDP text of the session description.
|
|
62
|
+
required:
|
|
63
|
+
- type
|
|
64
|
+
- sdp
|
|
65
|
+
lifetime:
|
|
66
|
+
type: integer
|
|
67
|
+
description: The time in milliseconds that the negotiation is valid for.
|
|
68
|
+
Once the negotiation age exceeds this value, clients should discard it.
|
|
69
|
+
sdp_stream_metadata:
|
|
70
|
+
$ref: components/sdp_stream_metadata.yaml
|
|
71
|
+
required:
|
|
72
|
+
- description
|
|
73
|
+
- lifetime
|
|
74
|
+
type:
|
|
75
|
+
type: string
|
|
76
|
+
enum:
|
|
77
|
+
- m.call.negotiate
|
|
78
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
3
|
+
|
|
4
|
+
type: object
|
|
5
|
+
description: |
|
|
6
|
+
If the `m.call.invite` event has `version` `"1"`, a client wishing to
|
|
7
|
+
reject the call sends an `m.call.reject` event. This rejects the call on all devices,
|
|
8
|
+
but if the calling device sees an `answer` before the `reject`, it disregards the
|
|
9
|
+
reject event and carries on. The reject has a `party_id` just like an answer, and
|
|
10
|
+
the caller sends a `select_answer` for it just like an answer. If another client
|
|
11
|
+
had already sent an answer and sees the caller select the reject response instead
|
|
12
|
+
of its answer, it ends the call. If the `m.call.invite` event has `version` `0`,
|
|
13
|
+
the callee sends an `m.call.hangup` event. If the calling user chooses to end the
|
|
14
|
+
call before setup is complete, the client sends `m.call.hangup` as previously.
|
|
15
|
+
|
|
16
|
+
Note that, unlike `m.call.hangup`, this event has no `reason` field: the rejection of
|
|
17
|
+
a call is always implicitly because the user chose not to answer it.
|
|
18
|
+
x-addedInMatrixVersion: "1.7"
|
|
19
|
+
x-weight: 30
|
|
20
|
+
allOf:
|
|
21
|
+
- "$ref": core-event-schema/room_event.yaml
|
|
22
|
+
properties:
|
|
23
|
+
content:
|
|
24
|
+
"$ref": core-event-schema/call_event.yaml
|
|
25
|
+
type:
|
|
26
|
+
type: string
|
|
27
|
+
enum:
|
|
28
|
+
- m.call.reject
|
|
29
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
|
|
3
|
+
type: object
|
|
4
|
+
x-addedInMatrixVersion: "1.11"
|
|
5
|
+
x-weight: 70
|
|
6
|
+
description: |-
|
|
7
|
+
This event is sent by callers when they wish to update a stream's metadata
|
|
8
|
+
but no negotiation is required.
|
|
9
|
+
allOf:
|
|
10
|
+
- $ref: core-event-schema/room_event.yaml
|
|
11
|
+
properties:
|
|
12
|
+
content:
|
|
13
|
+
type: object
|
|
14
|
+
allOf:
|
|
15
|
+
- $ref: core-event-schema/call_event.yaml
|
|
16
|
+
properties:
|
|
17
|
+
sdp_stream_metadata:
|
|
18
|
+
$ref: components/sdp_stream_metadata.yaml
|
|
19
|
+
required:
|
|
20
|
+
- sdp_stream_metadata
|
|
21
|
+
type:
|
|
22
|
+
type: string
|
|
23
|
+
enum:
|
|
24
|
+
- m.call.sdp_stream_metadata_changed
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"description": "This event is sent by the caller's client once it has decided which other client to talk to, by selecting one of multiple possible incoming `m.call.answer` events. Its `selected_party_id` field indicates the answer it's chosen. The `call_id` and `party_id` of the caller is also included. If the callee's client sees a `select_answer` for an answer with party ID other than the one it sent, it ends the call and informs the user the call was answered elsewhere. It does not send any events. Media can start flowing before this event is seen or even sent. Clients that implement previous versions of this specification will ignore this event and behave as they did before.",
|
|
5
|
+
"x-addedInMatrixVersion": "1.7",
|
|
6
|
+
"x-weight": 50,
|
|
7
|
+
"allOf": [{
|
|
8
|
+
"$ref": "core-event-schema/room_event.yaml"
|
|
9
|
+
}],
|
|
10
|
+
"properties": {
|
|
11
|
+
"content": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"allOf": [{
|
|
14
|
+
"$ref": "core-event-schema/call_event.yaml"
|
|
15
|
+
}],
|
|
16
|
+
"properties": {
|
|
17
|
+
"selected_party_id": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "The `party_id` field from the answer event that the caller chose."
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
"required": ["selected_party_id"]
|
|
23
|
+
},
|
|
24
|
+
"type": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"enum": ["m.call.select_answer"]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
3
|
+
|
|
4
|
+
allOf:
|
|
5
|
+
- $ref: core-event-schema/event.yaml
|
|
6
|
+
description: |-
|
|
7
|
+
A map of which rooms are considered 'direct' rooms for specific users
|
|
8
|
+
is kept in `account_data` in an event of type `m.direct`. The
|
|
9
|
+
content of this event is an object where the keys are the user IDs
|
|
10
|
+
and values are lists of room ID strings of the 'direct' rooms for
|
|
11
|
+
that user ID.
|
|
12
|
+
properties:
|
|
13
|
+
content:
|
|
14
|
+
patternProperties:
|
|
15
|
+
"^@":
|
|
16
|
+
x-pattern-format: mx-user-id
|
|
17
|
+
type: array
|
|
18
|
+
items:
|
|
19
|
+
type: string
|
|
20
|
+
type: object
|
|
21
|
+
description: |-
|
|
22
|
+
The mapping of user ID to a list of room IDs of the 'direct' rooms for
|
|
23
|
+
that user ID.
|
|
24
|
+
type:
|
|
25
|
+
enum:
|
|
26
|
+
- m.direct
|
|
27
|
+
type: string
|
|
28
|
+
title: Direct Chat Mapping
|
|
29
|
+
type: object
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
3
|
+
|
|
4
|
+
allOf:
|
|
5
|
+
- $ref: core-event-schema/event.yaml
|
|
6
|
+
|
|
7
|
+
description: |-
|
|
8
|
+
This event type is used to indicate new Olm sessions for end-to-end encryption.
|
|
9
|
+
Typically it is encrypted as an `m.room.encrypted` event, then sent as a [to-device](/client-server-api/#send-to-device-messaging)
|
|
10
|
+
event.
|
|
11
|
+
|
|
12
|
+
The event does not have any content associated with it. The sending client is expected
|
|
13
|
+
to send a key share request shortly after this message, causing the receiving client to
|
|
14
|
+
process this `m.dummy` event as the most recent event and using the keyshare request
|
|
15
|
+
to set up the session. The keyshare request and `m.dummy` combination should result
|
|
16
|
+
in the original sending client receiving keys over the newly established session.
|
|
17
|
+
properties:
|
|
18
|
+
content:
|
|
19
|
+
properties: {}
|
|
20
|
+
type: object
|
|
21
|
+
type:
|
|
22
|
+
enum:
|
|
23
|
+
- m.dummy
|
|
24
|
+
type: string
|
|
25
|
+
type: object
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
3
|
+
|
|
4
|
+
allOf:
|
|
5
|
+
- $ref: core-event-schema/event.yaml
|
|
6
|
+
|
|
7
|
+
description: |-
|
|
8
|
+
This event type is used to forward keys for end-to-end encryption.
|
|
9
|
+
It is encrypted as an `m.room.encrypted` event using [Olm](/client-server-api/#molmv1curve25519-aes-sha2),
|
|
10
|
+
then sent as a [to-device](/client-server-api/#send-to-device-messaging) event.
|
|
11
|
+
properties:
|
|
12
|
+
content:
|
|
13
|
+
properties:
|
|
14
|
+
algorithm:
|
|
15
|
+
type: string
|
|
16
|
+
description: |-
|
|
17
|
+
The encryption algorithm the key in this event is to be used with.
|
|
18
|
+
room_id:
|
|
19
|
+
type: string
|
|
20
|
+
description: The room where the key is used.
|
|
21
|
+
sender_key:
|
|
22
|
+
type: string
|
|
23
|
+
description: |-
|
|
24
|
+
The Curve25519 key of the device which initiated the session originally.
|
|
25
|
+
session_id:
|
|
26
|
+
type: string
|
|
27
|
+
description: The ID of the session that the key is for.
|
|
28
|
+
session_key:
|
|
29
|
+
type: string
|
|
30
|
+
description: The key to be exchanged.
|
|
31
|
+
sender_claimed_ed25519_key:
|
|
32
|
+
type: string
|
|
33
|
+
description: |-
|
|
34
|
+
The Ed25519 key of the device which initiated the session originally.
|
|
35
|
+
It is 'claimed' because the receiving device has no way to tell that the
|
|
36
|
+
original room_key actually came from a device which owns the private part of
|
|
37
|
+
this key unless they have done device verification.
|
|
38
|
+
forwarding_curve25519_key_chain:
|
|
39
|
+
type: array
|
|
40
|
+
items:
|
|
41
|
+
type: string
|
|
42
|
+
description: |-
|
|
43
|
+
Chain of Curve25519 keys. It starts out empty, but each time the
|
|
44
|
+
key is forwarded to another device, the previous sender in the chain is added
|
|
45
|
+
to the end of the list. For example, if the key is forwarded from A to B to
|
|
46
|
+
C, this field is empty between A and B, and contains A's Curve25519 key between
|
|
47
|
+
B and C.
|
|
48
|
+
withheld:
|
|
49
|
+
type: object
|
|
50
|
+
description: |-
|
|
51
|
+
Indicates that the key cannot be used to decrypt all the messages
|
|
52
|
+
from the session because a portion of the session was withheld as
|
|
53
|
+
described in [Reporting that decryption keys are withheld](/client-server-api/#reporting-that-decryption-keys-are-withheld). This
|
|
54
|
+
object must include the `code` and `reason` properties from the
|
|
55
|
+
`m.room_key.withheld` message that was received by the sender of
|
|
56
|
+
this message.
|
|
57
|
+
required:
|
|
58
|
+
- algorithm
|
|
59
|
+
- room_id
|
|
60
|
+
- session_id
|
|
61
|
+
- session_key
|
|
62
|
+
- sender_claimed_ed25519_key
|
|
63
|
+
- forwarding_curve25519_key_chain
|
|
64
|
+
- sender_key
|
|
65
|
+
type: object
|
|
66
|
+
type:
|
|
67
|
+
enum:
|
|
68
|
+
- m.forwarded_room_key
|
|
69
|
+
type: string
|
|
70
|
+
type: object
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"title": "Read Marker Location Event",
|
|
5
|
+
"description": "The current location of the user's read marker in a room. This event appears in the user's room account data for the room the marker is applicable for.",
|
|
6
|
+
"allOf": [{
|
|
7
|
+
"$ref": "core-event-schema/event.yaml"
|
|
8
|
+
}],
|
|
9
|
+
"properties": {
|
|
10
|
+
"content": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"event_id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "The event the user's read marker is located at in the room."
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": ["event_id"]
|
|
19
|
+
},
|
|
20
|
+
"type": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"enum": ["m.fully_read"]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"required": ["type", "content"]
|
|
26
|
+
}
|