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.
121 lines
3.1 KiB
YAML
121 lines
3.1 KiB
YAML
![]()
10 years ago
|
# 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
|
||
|
items:
|
||
|
- type: string
|
||
|
description: Event id of the referenced event.
|
||
|
$ref: "#/definitions/event_id"
|
||
|
- type: object
|
||
|
description: Reference hashes of the reference event.
|
||
|
$ref: "#/definitions/hashes"
|
||
|
event_reference_list:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: "#/definitions/event_reference"
|