mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-01-06 07:53:42 +01:00
Rename "schema/v1/core" to "schema/v1/core-event-schema". Add self-referential symlinks to schema/v1/core-event-schema The python json schema libraries expect that relative references are relative to the file they are in. The node json schema libraries expect that relateive references are relative to the first file loaded. To support both kinds we reference the core event schema using "core-event-schema/event.json". We then symlink the core-event-schema directory to both the location of the file refering to "event.json" so that it will work in python and to the location of the top level file so that it will work in node.
68 lines
3.3 KiB
Plaintext
68 lines
3.3 KiB
Plaintext
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"type": "object",
|
|
"title": "Defines the power levels (privileges) of users in the room.",
|
|
"description": "This event specifies the minimum level a user must have in order to perform a certain action. It also specifies the levels of each user in the room. If a ``user_id`` is in the ``users`` list, then that ``user_id`` has the associated power level. Otherwise they have the default level ``users_default``. If ``users_default`` is not supplied, it is assumed to be 0. The level required to send a certain event is governed by ``events``, ``state_default`` and ``events_default``. If an event type is specified in ``events``, then the user must have at least the level specified in order to send that event. If the event type is not supplied, it defaults to ``events_default`` for Message Events and ``state_default`` for State Events.",
|
|
"allOf": [{
|
|
"$ref": "core-event-schema/state_event.json"
|
|
}],
|
|
"properties": {
|
|
"content": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ban": {
|
|
"type": "number",
|
|
"description": "The level required to ban a user."
|
|
},
|
|
"events_default": {
|
|
"type": "number",
|
|
"description": "The default level required to send message events. Can be overridden by the ``events`` key."
|
|
},
|
|
"kick": {
|
|
"type": "number",
|
|
"description": "The level required to kick a user."
|
|
},
|
|
"redact": {
|
|
"type": "number",
|
|
"description": "The level required to redact an event."
|
|
},
|
|
"state_default": {
|
|
"type": "number",
|
|
"description": "The default level required to send state events. Can be overridden by the ``events`` key."
|
|
},
|
|
"users_default": {
|
|
"type": "number",
|
|
"description": "The default power level for every user in the room, unless their ``user_id`` is mentioned in the ``users`` key."
|
|
},
|
|
"events": {
|
|
"type": "object",
|
|
"title": "Event power levels",
|
|
"description": "The level required to send specific event types. This is a mapping from event type to power level required.",
|
|
"additionalProperties": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"users": {
|
|
"type": "object",
|
|
"title": "User power levels",
|
|
"description": "The power levels for specific users. This is a mapping from ``user_id`` to power level for that user.",
|
|
"additionalProperties": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
},
|
|
"required": ["ban","events","events_default","kick","redact",
|
|
"state_default","users"]
|
|
},
|
|
"state_key": {
|
|
"type": "string",
|
|
"description": "A zero-length string.",
|
|
"pattern": "^$"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": ["m.room.power_levels"]
|
|
}
|
|
}
|
|
}
|