Live video on the AT Protocol
1{
2 "lexicon": 1,
3 "id": "place.stream.server.defs",
4 "defs": {
5 "webhook": {
6 "type": "object",
7 "description": "A webhook configuration for receiving Streamplace events.",
8 "required": ["id", "url", "events", "active", "createdAt"],
9 "properties": {
10 "id": {
11 "type": "string",
12 "description": "Unique identifier for this webhook."
13 },
14 "url": {
15 "type": "string",
16 "format": "uri",
17 "description": "The webhook URL where events will be sent."
18 },
19 "events": {
20 "type": "array",
21 "items": {
22 "type": "string",
23 "enum": ["chat", "livestream", "follow", "mention"]
24 },
25 "description": "The types of events this webhook should receive."
26 },
27 "active": {
28 "type": "boolean",
29 "description": "Whether this webhook is currently active."
30 },
31 "prefix": {
32 "type": "string",
33 "maxLength": 100,
34 "description": "Text to prepend to webhook messages."
35 },
36 "suffix": {
37 "type": "string",
38 "maxLength": 100,
39 "description": "Text to append to webhook messages."
40 },
41 "rewrite": {
42 "type": "array",
43 "items": { "type": "ref", "ref": "#rewriteRule" },
44 "description": "Text replacement rules for webhook messages."
45 },
46 "createdAt": {
47 "type": "string",
48 "format": "datetime",
49 "description": "When this webhook was created."
50 },
51 "updatedAt": {
52 "type": "string",
53 "format": "datetime",
54 "description": "When this webhook was last updated."
55 },
56 "name": {
57 "type": "string",
58 "maxLength": 100,
59 "description": "A user-friendly name for this webhook."
60 },
61 "description": {
62 "type": "string",
63 "maxLength": 500,
64 "description": "A description of what this webhook is used for."
65 },
66 "lastTriggered": {
67 "type": "string",
68 "format": "datetime",
69 "description": "When this webhook was last triggered."
70 },
71 "errorCount": {
72 "type": "integer",
73 "description": "Number of consecutive errors for this webhook."
74 },
75 "muteWords": {
76 "type": "array",
77 "items": {
78 "type": "string",
79 "maxLength": 100
80 },
81 "description": "Words to filter out from chat messages. Messages containing any of these words will not be forwarded."
82 }
83 }
84 },
85 "rewriteRule": {
86 "type": "object",
87 "required": ["from", "to"],
88 "properties": {
89 "from": {
90 "type": "string",
91 "maxLength": 100,
92 "minLength": 1,
93 "description": "Text to search for and replace."
94 },
95 "to": {
96 "type": "string",
97 "maxLength": 100,
98 "description": "Text to replace with."
99 }
100 }
101 }
102 }
103}