{
"id": "social.colibri.sync.subscribeEvents",
"defs": {
"ack": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"const": "ack"
}
},
"description": "Sent in response to a heartbeat message."
},
"main": {
"type": "subscription",
"errors": [
{
"name": "AuthRequired"
}
],
"message": {
"schema": {
"refs": [
"lex:social.colibri.sync.subscribeEvents#ack",
"lex:social.colibri.sync.subscribeEvents#communityEvent",
"lex:social.colibri.sync.subscribeEvents#memberEvent",
"lex:social.colibri.sync.subscribeEvents#categoryEvent",
"lex:social.colibri.sync.subscribeEvents#channelEvent",
"lex:social.colibri.sync.subscribeEvents#messageEvent",
"lex:social.colibri.sync.subscribeEvents#reactionEvent",
"lex:social.colibri.sync.subscribeEvents#userEvent",
"lex:social.colibri.sync.subscribeEvents#typingEvent"
],
"type": "union"
}
},
"description": "Opens a WebSocket stream that transmits relevant events for the authenticated user."
},
"userEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#userEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "user_event"
}
},
"description": "Sent when a known user has updated their profile or Colibri status."
},
"userStatus": {
"type": "object",
"required": [
"state",
"text"
],
"properties": {
"text": {
"type": "string"
},
"emoji": {
"type": "string"
},
"state": {
"type": "string",
"knownValues": [
"online",
"away",
"dnd",
"offline"
]
}
}
},
"memberEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#memberEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "member_event"
}
},
"description": "Sent when a member has joined or left a community."
},
"typingEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#typingEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "typing_event"
}
},
"description": "Sent when a user is typing in a channel the client is viewing."
},
"userProfile": {
"type": "object",
"required": [
"handle"
],
"properties": {
"avatar": {
"type": "blob"
},
"banner": {
"type": "blob"
},
"handle": {
"type": "string",
"format": "handle"
},
"description": {
"type": "string"
},
"displayName": {
"type": "string"
}
}
},
"channelEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#channelEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "channel_event"
}
},
"description": "Sent when a channel has been created, updated, or deleted."
},
"messageEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#messageEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "message_event"
}
},
"description": "Sent when a message has been sent, edited, or deleted."
},
"categoryEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#categoryEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "category_event"
}
},
"description": "Sent when a category has been created, updated, or deleted."
},
"reactionEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#reactionEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "reaction_event"
}
},
"description": "Sent when a reaction has been added to or removed from a message."
},
"userEventData": {
"type": "object",
"required": [
"did",
"profile"
],
"properties": {
"did": {
"type": "string",
"format": "did"
},
"status": {
"ref": "lex:social.colibri.sync.subscribeEvents#userStatus",
"type": "ref"
},
"profile": {
"ref": "lex:social.colibri.sync.subscribeEvents#userProfile",
"type": "ref"
}
}
},
"communityEvent": {
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#communityEventData",
"type": "ref"
},
"type": {
"type": "string",
"const": "community_event"
}
},
"description": "Sent when a community has been updated or deleted."
},
"memberEventData": {
"type": "object",
"required": [
"event",
"community",
"membership"
],
"properties": {
"event": {
"type": "string",
"knownValues": [
"join",
"leave"
]
},
"community": {
"type": "string",
"format": "at-uri"
},
"membership": {
"type": "string",
"format": "at-uri"
}
}
},
"typingEventData": {
"type": "object",
"required": [
"event",
"channel",
"did"
],
"properties": {
"did": {
"type": "string",
"format": "did"
},
"event": {
"type": "string",
"knownValues": [
"start",
"stop"
]
},
"channel": {
"type": "string",
"format": "at-uri"
}
}
},
"channelEventData": {
"type": "object",
"required": [
"event",
"uri",
"community"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"event": {
"type": "string",
"knownValues": [
"upsert",
"delete"
]
},
"community": {
"type": "string",
"format": "at-uri"
},
"description": {
"type": "string"
}
}
},
"messageEventData": {
"type": "object",
"required": [
"event",
"uri",
"channel"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri"
},
"text": {
"type": "string"
},
"event": {
"type": "string",
"knownValues": [
"upsert",
"delete"
]
},
"edited": {
"type": "boolean"
},
"facets": {
"type": "array",
"items": {
"ref": "lex:social.colibri.richtext.facet",
"type": "ref"
}
},
"parent": {
"type": "string",
"format": "at-uri"
},
"channel": {
"type": "string",
"format": "at-uri"
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"indexedAt": {
"type": "string",
"format": "datetime"
},
"attachments": {
"type": "array",
"items": {
"type": "blob"
}
}
}
},
"categoryEventData": {
"type": "object",
"required": [
"event",
"uri",
"community"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri"
},
"name": {
"type": "string"
},
"event": {
"type": "string",
"knownValues": [
"upsert",
"delete"
]
},
"community": {
"type": "string",
"format": "at-uri"
},
"channelOrder": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"reactionEventData": {
"type": "object",
"required": [
"event",
"uri",
"emoji",
"target",
"channel"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri"
},
"emoji": {
"type": "string"
},
"event": {
"type": "string",
"knownValues": [
"added",
"removed"
]
},
"target": {
"type": "string",
"format": "at-uri"
},
"channel": {
"type": "string",
"format": "at-uri"
}
}
},
"communityEventData": {
"type": "object",
"required": [
"event",
"uri"
],
"properties": {
"uri": {
"type": "string",
"format": "at-uri"
},
"name": {
"type": "string"
},
"event": {
"type": "string",
"knownValues": [
"upsert",
"delete"
]
},
"picture": {
"type": "blob"
},
"description": {
"type": "string"
},
"categoryOrder": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"revision": 1
}