atproto blogging
at main 417 lines 10 kB view raw
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}