type: object properties: role: type: string enum: ['moderator', 'speaker'] description: | A role that a participant can have in a room. The role determines the permissions of the participant in the room. - `moderator`: Can manage the room and its participants. - `speaker`: Can publish media streams to the room. example: 'moderator' permissions: type: object properties: livekit: type: object properties: roomJoin: type: boolean description: > Indicates whether the participant can join a room. example: true room: type: string description: > Unique identifier of the room to which the participant is assigned. canPublish: type: boolean description: > Indicates whether the participant can publish media streams to the room. example: true canSubscribe: type: boolean description: > Indicates whether the participant can subscribe to media streams in the room. example: true canPublishData: type: boolean description: > Indicates whether the participant can publish data messages to the room. example: true canUpdateOwnMetadata: type: boolean description: > Indicates whether the participant can update their own metadata. example: true openvidu: type: object properties: canRecord: type: boolean description: > Indicates whether the participant can record the room. example: true canChat: type: boolean description: > Indicates whether the participant can send and receive chat messages in the room. example: true canChangeVirtualBackground: type: boolean description: > Indicates whether the participant can change their own virtual background. example: true