Skip to content

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