{ "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"] } } }