You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.1 KiB
YAML
124 lines
3.1 KiB
YAML
# JSON Schema for Matrix events. http://json-schema.org/
|
|
title: "Matrix Event"
|
|
type: object
|
|
properties:
|
|
auth_events:
|
|
description: The events needed to authenticate this event
|
|
$ref: "#/definitions/event_reference_list"
|
|
content:
|
|
type: object
|
|
description: The body of the event.
|
|
depth:
|
|
type: integer
|
|
description: A number one greater than that of any preceeding event.
|
|
minimum: 0
|
|
event_id:
|
|
$ref: "#/definitions/event_id"
|
|
hashes:
|
|
$ref: "#/definitions/hashes"
|
|
origin:
|
|
$ref: "#/definitions/server_id"
|
|
origin_server_ts:
|
|
type: integer
|
|
description: Posix timestamp on the originating server
|
|
minimum: 0
|
|
prev_events:
|
|
description: The event(s) this event came after.
|
|
$ref: "#/definitions/event_reference_list"
|
|
prev_state:
|
|
description: The state event(s) this event replaces.
|
|
$ref: "#/definitions/event_reference_list"
|
|
room_id:
|
|
$ref: "#/definitions/room_id"
|
|
sender:
|
|
oneOf:
|
|
- $ref: "#/definitions/user_id"
|
|
- $ref: "#/definitions/server_id"
|
|
state_key:
|
|
type: string
|
|
type:
|
|
type: string
|
|
unsigned:
|
|
type: object
|
|
|
|
required:
|
|
- auth_events
|
|
- content
|
|
- depth
|
|
- event_id
|
|
- hashes
|
|
- origin
|
|
- origin_server_ts
|
|
- prev_events
|
|
- room_id
|
|
- sender
|
|
- type
|
|
|
|
dependencies:
|
|
state_key:
|
|
- prev_state
|
|
prev_state:
|
|
- state_key
|
|
|
|
definitions:
|
|
server_id:
|
|
type: string
|
|
description: Identifies a server.
|
|
pattern: "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*\
|
|
([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\
|
|
(:[0-9]*[0-9])?$"
|
|
event_id:
|
|
type: string
|
|
description: Identifies an event.
|
|
pattern: "^\\$[^:]+:\
|
|
(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*\
|
|
([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\
|
|
(:[0-9]*[0-9])?$"
|
|
room_id:
|
|
type: string
|
|
description: Identifies a room.
|
|
pattern: "^\\![^:]+:\
|
|
(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*\
|
|
([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\
|
|
(:[0-9]*[0-9])?$"
|
|
user_id:
|
|
type: string
|
|
description: Identifies a user.
|
|
pattern: "^\\@[^:]+:\
|
|
(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*\
|
|
([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\
|
|
(:[0-9]*[0-9])?$"
|
|
base64:
|
|
type: string
|
|
description: Base64 string without padding.
|
|
pattern: "^[a-zA-Z0-9/+]*$"
|
|
hashes:
|
|
type: object
|
|
description: Hashes
|
|
minProperties: 1
|
|
additionalProperties:
|
|
$ref: "#/definitions/base64"
|
|
signatures:
|
|
type: object
|
|
description: Signatures
|
|
additionalProperties:
|
|
type: object
|
|
minProperties: 1
|
|
additionalProperties:
|
|
$ref: "#/definitions/base64"
|
|
event_reference:
|
|
type: array
|
|
minItems: 2
|
|
maxItems: 2
|
|
items:
|
|
- type: string
|
|
description: Event id of the referenced event.
|
|
$ref: "#/definitions/event_id"
|
|
- type: object
|
|
description: Reference hashes of the referenced event.
|
|
$ref: "#/definitions/hashes"
|
|
event_reference_list:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/event_reference"
|