atproto blogging
1{
2 "lexicon": 1,
3 "id": "sh.weaver.actor.defs",
4 "defs": {
5 "author": {
6 "type": "object",
7 "description": "A single author in a Weaver notebook.",
8 "required": [
9 "did"
10 ],
11 "properties": {
12 "did": {
13 "type": "string",
14 "format": "did"
15 },
16 "signature": {
17 "type": "bytes",
18 "description": "signed bytes of the corresponding notebook record in the author's repo"
19 }
20 }
21 },
22 "pinnedList": {
23 "type": "array",
24 "items": {
25 "type": "ref",
26 "ref": "com.atproto.repo.strongRef"
27 }
28 },
29 "profileDataView": {
30 "type": "object",
31 "required": [
32 "inner"
33 ],
34 "properties": {
35 "collaborationCount": {
36 "type": "integer"
37 },
38 "entryCount": {
39 "type": "integer"
40 },
41 "followerCount": {
42 "type": "integer"
43 },
44 "followingCount": {
45 "type": "integer"
46 },
47 "inner": {
48 "type": "union",
49 "refs": [
50 "#profileView",
51 "app.bsky.actor.defs#profileViewDetailed",
52 "#tangledProfileView"
53 ]
54 },
55 "notebookCount": {
56 "type": "integer"
57 },
58 "viewer": {
59 "type": "ref",
60 "ref": "#viewerState"
61 }
62 }
63 },
64 "profileDataViewBasic": {
65 "type": "object",
66 "required": [
67 "inner"
68 ],
69 "properties": {
70 "followerCount": {
71 "type": "integer"
72 },
73 "followingCount": {
74 "type": "integer"
75 },
76 "inner": {
77 "type": "union",
78 "refs": [
79 "#profileViewBasic",
80 "app.bsky.actor.defs#profileViewBasic",
81 "#tangledProfileView"
82 ]
83 },
84 "viewer": {
85 "type": "ref",
86 "ref": "#viewerStateBasic"
87 }
88 }
89 },
90 "profileView": {
91 "type": "object",
92 "required": [
93 "did",
94 "handle"
95 ],
96 "properties": {
97 "avatar": {
98 "type": "string",
99 "format": "uri"
100 },
101 "banner": {
102 "type": "string",
103 "format": "uri"
104 },
105 "bluesky": {
106 "type": "boolean",
107 "description": "Include link to this account on Bluesky."
108 },
109 "createdAt": {
110 "type": "string",
111 "format": "datetime"
112 },
113 "description": {
114 "type": "string",
115 "maxLength": 10240,
116 "maxGraphemes": 1024
117 },
118 "did": {
119 "type": "string",
120 "format": "did"
121 },
122 "displayName": {
123 "type": "string",
124 "maxLength": 640,
125 "maxGraphemes": 64
126 },
127 "handle": {
128 "type": "string",
129 "format": "handle"
130 },
131 "indexedAt": {
132 "type": "string",
133 "format": "datetime"
134 },
135 "labels": {
136 "type": "array",
137 "items": {
138 "type": "ref",
139 "ref": "com.atproto.label.defs#label"
140 }
141 },
142 "links": {
143 "type": "array",
144 "items": {
145 "type": "string",
146 "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.",
147 "format": "uri"
148 },
149 "minLength": 0,
150 "maxLength": 5
151 },
152 "location": {
153 "type": "string",
154 "description": "Free-form location text.",
155 "maxLength": 400,
156 "maxGraphemes": 40
157 },
158 "pinned": {
159 "type": "ref",
160 "description": "Notebooks or other records pinned for display.",
161 "ref": "#pinnedList"
162 },
163 "pronouns": {
164 "type": "ref",
165 "description": "Pronouns to use in user-generated content.",
166 "ref": "#pronounsList"
167 },
168 "streamplace": {
169 "type": "boolean",
170 "description": "Include link to this account on stream.place."
171 },
172 "subscribedCount": {
173 "type": "integer"
174 },
175 "subscriberCount": {
176 "type": "integer"
177 },
178 "tangled": {
179 "type": "boolean",
180 "description": "Include link to this account on Tangled."
181 }
182 }
183 },
184 "profileViewBasic": {
185 "type": "object",
186 "required": [
187 "did",
188 "handle"
189 ],
190 "properties": {
191 "avatar": {
192 "type": "string",
193 "format": "uri"
194 },
195 "createdAt": {
196 "type": "string",
197 "format": "datetime"
198 },
199 "did": {
200 "type": "string",
201 "format": "did"
202 },
203 "displayName": {
204 "type": "string",
205 "maxLength": 640,
206 "maxGraphemes": 64
207 },
208 "handle": {
209 "type": "string",
210 "format": "handle"
211 },
212 "indexedAt": {
213 "type": "string",
214 "format": "datetime"
215 },
216 "labels": {
217 "type": "array",
218 "items": {
219 "type": "ref",
220 "ref": "com.atproto.label.defs#label"
221 }
222 },
223 "pronouns": {
224 "type": "ref",
225 "description": "Pronouns to use in user-generated content.",
226 "ref": "#pronounsList"
227 }
228 }
229 },
230 "pronounsList": {
231 "type": "array",
232 "items": {
233 "type": "string",
234 "maxLength": 500,
235 "maxGraphemes": 50,
236 "knownValues": [
237 "she/her",
238 "he/him",
239 "they/them",
240 "it/its",
241 "she/they",
242 "he/they",
243 "they/he",
244 "they/she",
245 "any/all"
246 ]
247 },
248 "maxLength": 5
249 },
250 "subscribedNotebook": {
251 "type": "object",
252 "description": "A notebook the viewer subscribes to without a global follow.",
253 "required": [
254 "uri"
255 ],
256 "properties": {
257 "path": {
258 "type": "string"
259 },
260 "title": {
261 "type": "string"
262 },
263 "uri": {
264 "type": "string",
265 "format": "at-uri"
266 }
267 }
268 },
269 "tangledProfileView": {
270 "type": "object",
271 "required": [
272 "bluesky",
273 "did",
274 "handle"
275 ],
276 "properties": {
277 "bluesky": {
278 "type": "boolean",
279 "description": "Include link to this account on Bluesky."
280 },
281 "description": {
282 "type": "string",
283 "description": "Free-form profile description text.",
284 "maxLength": 2560,
285 "maxGraphemes": 256
286 },
287 "did": {
288 "type": "string",
289 "format": "did"
290 },
291 "handle": {
292 "type": "string",
293 "format": "handle"
294 },
295 "links": {
296 "type": "array",
297 "items": {
298 "type": "string",
299 "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.",
300 "format": "uri"
301 },
302 "minLength": 0,
303 "maxLength": 5
304 },
305 "location": {
306 "type": "string",
307 "description": "Free-form location text.",
308 "maxLength": 400,
309 "maxGraphemes": 40
310 },
311 "pinnedRepositories": {
312 "type": "array",
313 "description": "Any ATURI, it is up to appviews to validate these fields.",
314 "items": {
315 "type": "string",
316 "format": "at-uri"
317 },
318 "minLength": 0,
319 "maxLength": 6
320 },
321 "stats": {
322 "type": "array",
323 "items": {
324 "type": "string",
325 "description": "Vanity stats.",
326 "enum": [
327 "merged-pull-request-count",
328 "closed-pull-request-count",
329 "open-pull-request-count",
330 "open-issue-count",
331 "closed-issue-count",
332 "repository-count"
333 ]
334 },
335 "minLength": 0,
336 "maxLength": 2
337 }
338 }
339 },
340 "viewerState": {
341 "type": "object",
342 "description": "Viewer's relationship state with an actor (detailed version).",
343 "properties": {
344 "blocked": {
345 "type": "string",
346 "format": "at-uri"
347 },
348 "blockedBy": {
349 "type": "boolean"
350 },
351 "followRequested": {
352 "type": "string",
353 "format": "at-uri"
354 },
355 "followRequestedBy": {
356 "type": "string",
357 "format": "at-uri"
358 },
359 "followedBy": {
360 "type": "string",
361 "format": "at-uri"
362 },
363 "following": {
364 "type": "string",
365 "format": "at-uri"
366 },
367 "muted": {
368 "type": "string",
369 "format": "at-uri"
370 },
371 "subscribedNotebooks": {
372 "type": "array",
373 "items": {
374 "type": "ref",
375 "ref": "#subscribedNotebook"
376 }
377 }
378 }
379 },
380 "viewerStateBasic": {
381 "type": "object",
382 "description": "Viewer's relationship state with an actor (basic version).",
383 "properties": {
384 "blocked": {
385 "type": "string",
386 "format": "at-uri"
387 },
388 "blockedBy": {
389 "type": "boolean"
390 },
391 "followRequested": {
392 "type": "string",
393 "format": "at-uri"
394 },
395 "followRequestedBy": {
396 "type": "string",
397 "format": "at-uri"
398 },
399 "followedBy": {
400 "type": "string",
401 "format": "at-uri"
402 },
403 "following": {
404 "type": "string",
405 "format": "at-uri"
406 },
407 "muted": {
408 "type": "string",
409 "format": "at-uri"
410 },
411 "subscribedNotebookCount": {
412 "type": "integer"
413 }
414 }
415 }
416 }
417}