Live video on the AT Protocol
1{
2 "lexicon": 1,
3 "id": "place.stream.server.updateWebhook",
4 "defs": {
5 "main": {
6 "type": "procedure",
7 "description": "Update an existing webhook configuration.",
8 "input": {
9 "encoding": "application/json",
10 "schema": {
11 "type": "object",
12 "required": ["id"],
13 "properties": {
14 "id": {
15 "type": "string",
16 "description": "The ID of the webhook to update."
17 },
18 "url": {
19 "type": "string",
20 "format": "uri",
21 "description": "The webhook URL where events will be sent."
22 },
23
24 "events": {
25 "type": "array",
26 "items": {
27 "type": "string",
28 "enum": ["chat", "livestream", "follow", "mention"]
29 },
30 "description": "The types of events this webhook should receive."
31 },
32 "active": {
33 "type": "boolean",
34 "description": "Whether this webhook should be active."
35 },
36 "prefix": {
37 "type": "string",
38 "maxLength": 100,
39 "description": "Text to prepend to webhook messages."
40 },
41 "suffix": {
42 "type": "string",
43 "maxLength": 100,
44 "description": "Text to append to webhook messages."
45 },
46 "rewrite": {
47 "type": "array",
48 "items": {
49 "type": "ref",
50 "ref": "place.stream.server.defs#rewriteRule"
51 },
52 "description": "Text replacement rules for webhook messages."
53 },
54 "name": {
55 "type": "string",
56 "maxLength": 100,
57 "description": "A user-friendly name for this webhook."
58 },
59 "description": {
60 "type": "string",
61 "maxLength": 500,
62 "description": "A description of what this webhook is used for."
63 },
64 "muteWords": {
65 "type": "array",
66 "items": {
67 "type": "string",
68 "maxLength": 100
69 },
70 "description": "Words to filter out from chat messages. Messages containing any of these words will not be forwarded."
71 }
72 }
73 }
74 },
75 "output": {
76 "encoding": "application/json",
77 "schema": {
78 "type": "object",
79 "required": ["webhook"],
80 "properties": {
81 "webhook": {
82 "type": "ref",
83 "ref": "place.stream.server.defs#webhook"
84 }
85 }
86 }
87 },
88 "errors": [
89 {
90 "name": "WebhookNotFound",
91 "description": "The specified webhook was not found."
92 },
93 {
94 "name": "Unauthorized",
95 "description": "The authenticated user does not have access to this webhook."
96 },
97 {
98 "name": "InvalidUrl",
99 "description": "The provided webhook URL is invalid or unreachable."
100 },
101 {
102 "name": "DuplicateWebhook",
103 "description": "A webhook with this URL already exists for this user."
104 }
105 ]
106 }
107 }
108}