Room Membership v1¶
Source schema: doc/schemas/room-membership.v1.schema.json
Durable room membership grant, join, leave or revoke payload carried by an Agora record envelope.
Governing Basis¶
Project Lineage¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
|
room/id |
yes |
ref: room.v1.schema.json#/$defs/room_id |
|
subject |
yes |
ref: room.v1.schema.json#/$defs/subject |
|
op |
yes |
enum: grant, revoke, join, leave |
|
grants |
no |
array | |
authority/subject |
yes |
ref: room.v1.schema.json#/$defs/subject |
|
seq/no |
yes |
integer | |
created-at |
yes |
string | |
reason/ref |
no |
string | |
extensions |
no |
ref: room.v1.schema.json#/$defs/extensions |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"op": {
"enum": [
"grant",
"join"
]
}
},
"required": [
"op"
]
}
Then:
{
"required": [
"grants"
],
"properties": {
"grants": {
"minItems": 1
}
}
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
room/id¶
- Required:
yes - Shape: ref:
room.v1.schema.json#/$defs/room_id
subject¶
- Required:
yes - Shape: ref:
room.v1.schema.json#/$defs/subject
op¶
- Required:
yes - Shape: enum:
grant,revoke,join,leave
grants¶
- Required:
no - Shape: array
authority/subject¶
- Required:
yes - Shape: ref:
room.v1.schema.json#/$defs/subject
seq/no¶
- Required:
yes - Shape: integer
created-at¶
- Required:
yes - Shape: string
reason/ref¶
- Required:
no - Shape: string
extensions¶
- Required:
no - Shape: ref:
room.v1.schema.json#/$defs/extensions