Skip to content

Room Access Denial v1

Source schema: doc/schemas/room-access-denial.v1.schema.json

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
denial/ref yes string
op yes enum: deny, reinstate
subject yes ref: room.v1.schema.json#/$defs/subject
authority/subject yes ref: room.v1.schema.json#/$defs/subject
seq/no yes integer
issued-at yes string
expires-at no string
supersedes/ref no string
reason/code yes string
reason/ref no string

Conditional Rules

Rule 1

When:

{
  "properties": {
    "op": {
      "const": "deny"
    }
  },
  "required": [
    "op"
  ]
}

Then:

{
  "not": {
    "required": [
      "supersedes/ref"
    ]
  }
}

Rule 2

When:

{
  "properties": {
    "op": {
      "const": "reinstate"
    }
  },
  "required": [
    "op"
  ]
}

Then:

{
  "required": [
    "supersedes/ref"
  ],
  "not": {
    "required": [
      "expires-at"
    ]
  }
}

Field Semantics

schema/v

  • Required: yes
  • Shape: const: 1

room/id

  • Required: yes
  • Shape: ref: room.v1.schema.json#/$defs/room_id

denial/ref

  • Required: yes
  • Shape: string

op

  • Required: yes
  • Shape: enum: deny, reinstate

subject

  • Required: yes
  • Shape: ref: room.v1.schema.json#/$defs/subject

authority/subject

  • Required: yes
  • Shape: ref: room.v1.schema.json#/$defs/subject

seq/no

  • Required: yes
  • Shape: integer

issued-at

  • Required: yes
  • Shape: string

expires-at

  • Required: no
  • Shape: string

supersedes/ref

  • Required: no
  • Shape: string

reason/code

  • Required: yes
  • Shape: string

reason/ref

  • Required: no
  • Shape: string