tools.ozone.moderation.defs

ozone-lexicons.bsky.social

Schema Diff

+15 -0

From

CID
bafyreie4vzhwikp...
Indexed At
2026-10-03 21:31 UTC
View this version

To

CID
bafyreidon7bz3r3...
Indexed At
2026-10-07 18:19 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 8 non-breaking changes.

Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealActionId" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealActionType" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealLabel" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealSubmittedBy" }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealActionId", kind: "prop", name: Some("appealActionId") }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealActionType", kind: "prop", name: Some("appealActionType") }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealLabel", kind: "prop", name: Some("appealLabel") }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealSubmittedBy", kind: "prop", name: Some("appealSubmittedBy") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealActionId" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealActionType" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealLabel" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventReport.appealSubmittedBy" }

Additional Notes

  • Non-breaking: AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealActionId", kind: "prop", name: Some("appealActionId") }
  • Non-breaking: AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealActionType", kind: "prop", name: Some("appealActionType") }
  • Non-breaking: AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealLabel", kind: "prop", name: Some("appealLabel") }
  • Non-breaking: AddedEdge { src: "tools.ozone.moderation.defs#modEventReport", tgt: "tools.ozone.moderation.defs#modEventReport.appealSubmittedBy", kind: "prop", name: Some("appealSubmittedBy") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "accountEvent": {
5 5
      "description": "Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
6 6
      "properties": {
7 7
        "active": {
8 8
          "description": "Indicates that the account has a repository which can be fetched from the host that emitted this event.",
9 9
          "type": "boolean"
10 10
        },
11 11
        "comment": {
12 12
          "type": "string"
13 13
        },
14 14
        "status": {
15 15
          "knownValues": [
16 16
            "unknown",
17 17
            "deactivated",
18 18
            "deleted",
19 19
            "takendown",
20 20
            "suspended",
21 21
            "tombstoned"
22 22
          ],
23 23
          "type": "string"
24 24
        },
25 25
        "timestamp": {
26 26
          "format": "datetime",
27 27
          "type": "string"
28 28
        }
29 29
      },
30 30
      "required": [
31 31
        "timestamp",
32 32
        "active"
33 33
      ],
34 34
      "type": "object"
35 35
    },
36 36
    "accountHosting": {
37 37
      "properties": {
38 38
        "createdAt": {
39 39
          "format": "datetime",
40 40
          "type": "string"
41 41
        },
42 42
        "deactivatedAt": {
43 43
          "format": "datetime",
44 44
          "type": "string"
45 45
        },
46 46
        "deletedAt": {
47 47
          "format": "datetime",
48 48
          "type": "string"
49 49
        },
50 50
        "reactivatedAt": {
51 51
          "format": "datetime",
52 52
          "type": "string"
53 53
        },
54 54
        "status": {
55 55
          "knownValues": [
56 56
            "takendown",
57 57
            "suspended",
58 58
            "deleted",
59 59
            "deactivated",
60 60
            "unknown"
61 61
          ],
62 62
          "type": "string"
63 63
        },
64 64
        "updatedAt": {
65 65
          "format": "datetime",
66 66
          "type": "string"
67 67
        }
68 68
      },
69 69
      "required": [
70 70
        "status"
71 71
      ],
72 72
      "type": "object"
73 73
    },
74 74
    "accountStats": {
75 75
      "description": "Statistics about a particular account subject",
76 76
      "properties": {
77 77
        "appealCount": {
78 78
          "description": "Total number of appeals against a moderation action on the account",
79 79
          "type": "integer"
80 80
        },
81 81
        "escalateCount": {
82 82
          "description": "Number of times the account was escalated",
83 83
          "type": "integer"
84 84
        },
85 85
        "reportCount": {
86 86
          "description": "Total number of reports on the account",
87 87
          "type": "integer"
88 88
        },
89 89
        "suspendCount": {
90 90
          "description": "Number of times the account was suspended",
91 91
          "type": "integer"
92 92
        },
93 93
        "takedownCount": {
94 94
          "description": "Number of times the account was taken down",
95 95
          "type": "integer"
96 96
        }
97 97
      },
98 98
      "type": "object"
99 99
    },
100 100
    "accountStrike": {
101 101
      "description": "Strike information for an account",
102 102
      "properties": {
103 103
        "activeStrikeCount": {
104 104
          "description": "Current number of active strikes (excluding expired strikes)",
105 105
          "type": "integer"
106 106
        },
107 107
        "firstStrikeAt": {
108 108
          "description": "Timestamp of the first strike received",
109 109
          "format": "datetime",
110 110
          "type": "string"
111 111
        },
112 112
        "lastStrikeAt": {
113 113
          "description": "Timestamp of the most recent strike received",
114 114
          "format": "datetime",
115 115
          "type": "string"
116 116
        },
117 117
        "totalStrikeCount": {
118 118
          "description": "Total number of strikes ever received (including expired strikes)",
119 119
          "type": "integer"
120 120
        }
121 121
      },
122 122
      "type": "object"
123 123
    },
124 124
    "ageAssuranceEvent": {
125 125
      "description": "Age assurance info coming directly from users. Only works on DID subjects.",
126 126
      "properties": {
127 127
        "access": {
128 128
          "ref": "app.bsky.ageassurance.defs#access",
129 129
          "type": "ref"
130 130
        },
131 131
        "attemptId": {
132 132
          "description": "The unique identifier for this instance of the age assurance flow, in UUID format.",
133 133
          "type": "string"
134 134
        },
135 135
        "completeIp": {
136 136
          "description": "The IP address used when completing the AA flow.",
137 137
          "type": "string"
138 138
        },
139 139
        "completeUa": {
140 140
          "description": "The user agent used when completing the AA flow.",
141 141
          "type": "string"
142 142
        },
143 143
        "countryCode": {
144 144
          "description": "The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow.",
145 145
          "type": "string"
146 146
        },
147 147
        "createdAt": {
148 148
          "description": "The date and time of this write operation.",
149 149
          "format": "datetime",
150 150
          "type": "string"
151 151
        },
152 152
        "initIp": {
153 153
          "description": "The IP address used when initiating the AA flow.",
154 154
          "type": "string"
155 155
        },
156 156
        "initUa": {
157 157
          "description": "The user agent used when initiating the AA flow.",
158 158
          "type": "string"
159 159
        },
160 160
        "regionCode": {
161 161
          "description": "The ISO 3166-2 region code provided when beginning the Age Assurance flow.",
162 162
          "type": "string"
163 163
        },
164 164
        "status": {
165 165
          "description": "The status of the Age Assurance process.",
166 166
          "knownValues": [
167 167
            "unknown",
168 168
            "pending",
169 169
            "assured"
170 170
          ],
171 171
          "type": "string"
172 172
        }
173 173
      },
174 174
      "required": [
175 175
        "createdAt",
176 176
        "status",
177 177
        "attemptId"
178 178
      ],
179 179
      "type": "object"
180 180
    },
181 181
    "ageAssuranceOverrideEvent": {
182 182
      "description": "Age assurance status override by moderators. Only works on DID subjects.",
183 183
      "properties": {
184 184
        "access": {
185 185
          "ref": "app.bsky.ageassurance.defs#access",
186 186
          "type": "ref"
187 187
        },
188 188
        "comment": {
189 189
          "description": "Comment describing the reason for the override.",
190 190
          "minLength": 1,
191 191
          "type": "string"
192 192
        },
193 193
        "status": {
194 194
          "description": "The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state.",
195 195
          "knownValues": [
196 196
            "assured",
197 197
            "reset",
198 198
            "blocked"
199 199
          ],
200 200
          "type": "string"
201 201
        }
202 202
      },
203 203
      "required": [
204 204
        "comment",
205 205
        "status"
206 206
      ],
207 207
      "type": "object"
208 208
    },
209 209
    "ageAssurancePurgeEvent": {
210 210
      "description": "Purges all age assurance events for the subject. Only works on DID subjects. Moderator-only.",
211 211
      "properties": {
212 212
        "comment": {
213 213
          "description": "Comment describing the reason for the purge.",
214 214
          "minLength": 1,
215 215
          "type": "string"
216 216
        }
217 217
      },
218 218
      "required": [
219 219
        "comment"
220 220
      ],
221 221
      "type": "object"
222 222
    },
223 223
    "blobView": {
224 224
      "properties": {
225 225
        "cid": {
226 226
          "format": "cid",
227 227
          "type": "string"
228 228
        },
229 229
        "createdAt": {
230 230
          "format": "datetime",
231 231
          "type": "string"
232 232
        },
233 233
        "details": {
234 234
          "refs": [
235 235
            "#imageDetails",
236 236
            "#videoDetails"
237 237
          ],
238 238
          "type": "union"
239 239
        },
240 240
        "mimeType": {
241 241
          "type": "string"
242 242
        },
243 243
        "moderation": {
244 244
          "ref": "#moderation",
245 245
          "type": "ref"
246 246
        },
247 247
        "size": {
248 248
          "type": "integer"
249 249
        }
250 250
      },
251 251
      "required": [
252 252
        "cid",
253 253
        "mimeType",
254 254
        "size",
255 255
        "createdAt"
256 256
      ],
257 257
      "type": "object"
258 258
    },
259 259
    "cancelScheduledTakedownEvent": {
260 260
      "description": "Logs cancellation of a scheduled takedown action for an account.",
261 261
      "properties": {
262 262
        "comment": {
263 263
          "type": "string"
264 264
        }
265 265
      },
266 266
      "type": "object"
267 267
    },
268 268
    "convoView": {
269 269
      "properties": {
270 270
        "convoId": {
271 271
          "type": "string"
272 272
        },
273 273
        "did": {
274 274
          "format": "did",
275 275
          "type": "string"
276 276
        }
277 277
      },
278 278
      "required": [
279 279
        "did",
280 280
        "convoId"
281 281
      ],
282 282
      "type": "object"
283 283
    },
284 284
    "identityEvent": {
285 285
      "description": "Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
286 286
      "properties": {
287 287
        "comment": {
288 288
          "type": "string"
289 289
        },
290 290
        "handle": {
291 291
          "format": "handle",
292 292
          "type": "string"
293 293
        },
294 294
        "pdsHost": {
295 295
          "format": "uri",
296 296
          "type": "string"
297 297
        },
298 298
        "timestamp": {
299 299
          "format": "datetime",
300 300
          "type": "string"
301 301
        },
302 302
        "tombstone": {
303 303
          "type": "boolean"
304 304
        }
305 305
      },
306 306
      "required": [
307 307
        "timestamp"
308 308
      ],
309 309
      "type": "object"
310 310
    },
311 311
    "imageDetails": {
312 312
      "properties": {
313 313
        "height": {
314 314
          "type": "integer"
315 315
        },
316 316
        "width": {
317 317
          "type": "integer"
318 318
        }
319 319
      },
320 320
      "required": [
321 321
        "width",
322 322
        "height"
323 323
      ],
324 324
      "type": "object"
325 325
    },
326 326
    "modEventAcknowledge": {
327 327
      "properties": {
328 328
        "acknowledgeAccountSubjects": {
329 329
          "description": "If true, all other reports on content authored by this account will be resolved (acknowledged).",
330 330
          "type": "boolean"
331 331
        },
332 332
        "comment": {
333 333
          "type": "string"
334 334
        }
335 335
      },
336 336
      "type": "object"
337 337
    },
338 338
    "modEventComment": {
339 339
      "description": "Add a comment to a subject. An empty comment will clear any previously set sticky comment.",
340 340
      "properties": {
341 341
        "comment": {
342 342
          "type": "string"
343 343
        },
344 344
        "sticky": {
345 345
          "description": "Make the comment persistent on the subject",
346 346
          "type": "boolean"
347 347
        }
348 348
      },
349 349
      "type": "object"
350 350
    },
351 351
    "modEventDivert": {
352 352
      "description": "Divert a record's blobs to a 3rd party service for further scanning/tagging",
353 353
      "properties": {
354 354
        "comment": {
355 355
          "type": "string"
356 356
        }
357 357
      },
358 358
      "type": "object"
359 359
    },
360 360
    "modEventEmail": {
361 361
      "description": "Keep a log of outgoing email to a user",
362 362
      "properties": {
363 363
        "comment": {
364 364
          "description": "Additional comment about the outgoing comm.",
365 365
          "type": "string"
366 366
        },
367 367
        "content": {
368 368
          "description": "The content of the email sent to the user.",
369 369
          "type": "string"
370 370
        },
371 371
        "isDelivered": {
372 372
          "description": "Indicates whether the email was successfully delivered to the user's inbox.",
373 373
          "type": "boolean"
374 374
        },
375 375
        "policies": {
376 376
          "description": "Names/Keywords of the policies that necessitated the email.",
377 377
          "items": {
378 378
            "type": "string"
379 379
          },
380 380
          "maxLength": 5,
381 381
          "type": "array"
382 382
        },
383 383
        "severityLevel": {
384 384
          "description": "Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense",
385 385
          "type": "string"
386 386
        },
387 387
        "strikeCount": {
388 388
          "description": "Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense.",
389 389
          "type": "integer"
390 390
        },
391 391
        "strikeExpiresAt": {
392 392
          "description": "When the strike should expire. If not provided, the strike never expires.",
393 393
          "format": "datetime",
394 394
          "type": "string"
395 395
        },
396 396
        "subjectLine": {
397 397
          "description": "The subject line of the email sent to the user.",
398 398
          "type": "string"
399 399
        }
400 400
      },
401 401
      "required": [
402 402
        "subjectLine"
403 403
      ],
404 404
      "type": "object"
405 405
    },
406 406
    "modEventEscalate": {
407 407
      "properties": {
408 408
        "comment": {
409 409
          "type": "string"
410 410
        }
411 411
      },
412 412
      "type": "object"
413 413
    },
414 414
    "modEventLabel": {
415 415
      "description": "Apply/Negate labels on a subject",
416 416
      "properties": {
417 417
        "comment": {
418 418
          "type": "string"
419 419
        },
420 420
        "createLabelVals": {
421 421
          "items": {
422 422
            "type": "string"
423 423
          },
424 424
          "type": "array"
425 425
        },
426 426
        "durationInHours": {
427 427
          "description": "Indicates how long the label will remain on the subject. Only applies on labels that are being added.",
428 428
          "type": "integer"
429 429
        },
430 430
        "negateLabelVals": {
431 431
          "items": {
432 432
            "type": "string"
433 433
          },
434 434
          "type": "array"
435 435
        }
436 436
      },
437 437
      "required": [
438 438
        "createLabelVals",
439 439
        "negateLabelVals"
440 440
      ],
441 441
      "type": "object"
442 442
    },
443 443
    "modEventMute": {
444 444
      "description": "Mute incoming reports on a subject",
445 445
      "properties": {
446 446
        "comment": {
447 447
          "type": "string"
448 448
        },
449 449
        "durationInHours": {
450 450
          "description": "Indicates how long the subject should remain muted.",
451 451
          "type": "integer"
452 452
        }
453 453
      },
454 454
      "required": [
455 455
        "durationInHours"
456 456
      ],
457 457
      "type": "object"
458 458
    },
459 459
    "modEventMuteReporter": {
460 460
      "description": "Mute incoming reports from an account",
461 461
      "properties": {
462 462
        "comment": {
463 463
          "type": "string"
464 464
        },
465 465
        "durationInHours": {
466 466
          "description": "Indicates how long the account should remain muted. Falsy value here means a permanent mute.",
467 467
          "type": "integer"
468 468
        }
469 469
      },
470 470
      "type": "object"
471 471
    },
472 472
    "modEventPriorityScore": {
473 473
      "description": "Set priority score of the subject. Higher score means higher priority.",
474 474
      "properties": {
475 475
        "comment": {
476 476
          "type": "string"
477 477
        },
478 478
        "score": {
479 479
          "maximum": 100,
480 480
          "minimum": 0,
481 481
          "type": "integer"
482 482
        }
483 483
      },
484 484
      "required": [
485 485
        "score"
486 486
      ],
487 487
      "type": "object"
488 488
    },
489 489
    "modEventReport": {
490 490
      "description": "Report a subject",
491 491
      "properties": {
492 +
        "appealActionId": {
493 +
          "type": "integer"
494 +
        },
495 +
        "appealActionType": {
496 +
          "description": "Action reference type recorded when this appeal was submitted.",
497 +
          "type": "string"
498 +
        },
499 +
        "appealLabel": {
500 +
          "type": "string"
501 +
        },
502 +
        "appealSubmittedBy": {
503 +
          "description": "Moderator who submitted this appeal on behalf of the affected account. Returned by moderator event APIs.",
504 +
          "format": "did",
505 +
          "type": "string"
506 +
        },
492 507
        "comment": {
493 508
          "type": "string"
494 509
        },
495 510
        "isReporterMuted": {
496 511
          "description": "Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject.",
497 512
          "type": "boolean"
498 513
        },
499 514
        "reportType": {
500 515
          "ref": "com.atproto.moderation.defs#reasonType",
501 516
          "type": "ref"
502 517
        }
503 518
      },
504 519
      "required": [
505 520
        "reportType"
506 521
      ],
507 522
      "type": "object"
508 523
    },
509 524
    "modEventResolveAppeal": {
510 525
      "description": "Resolve appeal on a subject",
511 526
      "properties": {
512 527
        "comment": {
513 528
          "description": "Describe resolution.",
514 529
          "type": "string"
515 530
        }
516 531
      },
517 532
      "type": "object"
518 533
    },
519 534
    "modEventReverseTakedown": {
520 535
      "description": "Revert take down action on a subject",
521 536
      "properties": {
522 537
        "comment": {
523 538
          "description": "Describe reasoning behind the reversal.",
524 539
          "type": "string"
525 540
        },
526 541
        "policies": {
527 542
          "description": "Names/Keywords of the policy infraction for which takedown is being reversed.",
528 543
          "items": {
529 544
            "type": "string"
530 545
          },
531 546
          "maxLength": 5,
532 547
          "type": "array"
533 548
        },
534 549
        "severityLevel": {
535 550
          "description": "Severity level of the violation. Usually set from the last policy infraction's severity.",
536 551
          "type": "string"
537 552
        },
538 553
        "strikeCount": {
539 554
          "description": "Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity.",
540 555
          "type": "integer"
541 556
        }
542 557
      },
543 558
      "type": "object"
544 559
    },
545 560
    "modEventTag": {
546 561
      "description": "Add/Remove a tag on a subject",
547 562
      "properties": {
548 563
        "add": {
549 564
          "description": "Tags to be added to the subject. If already exists, won't be duplicated.",
550 565
          "items": {
551 566
            "type": "string"
552 567
          },
553 568
          "type": "array"
554 569
        },
555 570
        "comment": {
556 571
          "description": "Additional comment about added/removed tags.",
557 572
          "type": "string"
558 573
        },
559 574
        "durationInHours": {
560 575
          "description": "Indicates how long the tags being added should remain before automatically being removed. Only applies to tags being added.",
561 576
          "type": "integer"
562 577
        },
563 578
        "remove": {
564 579
          "description": "Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated.",
565 580
          "items": {
566 581
            "type": "string"
567 582
          },
568 583
          "type": "array"
569 584
        }
570 585
      },
571 586
      "required": [
572 587
        "add",
573 588
        "remove"
574 589
      ],
575 590
      "type": "object"
576 591
    },
577 592
    "modEventTakedown": {
578 593
      "description": "Take down a subject permanently or temporarily",
579 594
      "properties": {
580 595
        "acknowledgeAccountSubjects": {
581 596
          "description": "If true, all other reports on content authored by this account will be resolved (acknowledged).",
582 597
          "type": "boolean"
583 598
        },
584 599
        "comment": {
585 600
          "type": "string"
586 601
        },
587 602
        "durationInHours": {
588 603
          "description": "Indicates how long the takedown should be in effect before automatically expiring.",
589 604
          "type": "integer"
590 605
        },
591 606
        "policies": {
592 607
          "description": "Names/Keywords of the policies that drove the decision.",
593 608
          "items": {
594 609
            "type": "string"
595 610
          },
596 611
          "maxLength": 5,
597 612
          "type": "array"
598 613
        },
599 614
        "severityLevel": {
600 615
          "description": "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).",
601 616
          "type": "string"
602 617
        },
603 618
        "strikeCount": {
604 619
          "description": "Number of strikes to assign to the user for this violation.",
605 620
          "type": "integer"
606 621
        },
607 622
        "strikeExpiresAt": {
608 623
          "description": "When the strike should expire. If not provided, the strike never expires.",
609 624
          "format": "datetime",
610 625
          "type": "string"
611 626
        },
612 627
        "targetServices": {
613 628
          "description": "List of services where the takedown should be applied. If empty or not provided, takedown is applied on all configured services.",
614 629
          "items": {
615 630
            "knownValues": [
616 631
              "appview",
617 632
              "pds"
618 633
            ],
619 634
            "type": "string"
620 635
          },
621 636
          "type": "array"
622 637
        }
623 638
      },
624 639
      "type": "object"
625 640
    },
626 641
    "modEventUnmute": {
627 642
      "description": "Unmute action on a subject",
628 643
      "properties": {
629 644
        "comment": {
630 645
          "description": "Describe reasoning behind the reversal.",
631 646
          "type": "string"
632 647
        }
633 648
      },
634 649
      "type": "object"
635 650
    },
636 651
    "modEventUnmuteReporter": {
637 652
      "description": "Unmute incoming reports from an account",
638 653
      "properties": {
639 654
        "comment": {
640 655
          "description": "Describe reasoning behind the reversal.",
641 656
          "type": "string"
642 657
        }
643 658
      },
644 659
      "type": "object"
645 660
    },
646 661
    "modEventView": {
647 662
      "properties": {
648 663
        "createdAt": {
649 664
          "format": "datetime",
650 665
          "type": "string"
651 666
        },
652 667
        "createdBy": {
653 668
          "format": "did",
654 669
          "type": "string"
655 670
        },
656 671
        "creatorHandle": {
657 672
          "type": "string"
658 673
        },
659 674
        "event": {
660 675
          "refs": [
661 676
            "#modEventTakedown",
662 677
            "#modEventReverseTakedown",
663 678
            "#modEventComment",
664 679
            "#modEventReport",
665 680
            "#modEventLabel",
666 681
            "#modEventAcknowledge",
667 682
            "#modEventEscalate",
668 683
            "#modEventMute",
669 684
            "#modEventUnmute",
670 685
            "#modEventMuteReporter",
671 686
            "#modEventUnmuteReporter",
672 687
            "#modEventEmail",
673 688
            "#modEventResolveAppeal",
674 689
            "#modEventDivert",
675 690
            "#modEventTag",
676 691
            "#accountEvent",
677 692
            "#identityEvent",
678 693
            "#recordEvent",
679 694
            "#modEventPriorityScore",
680 695
            "#ageAssuranceEvent",
681 696
            "#ageAssuranceOverrideEvent",
682 697
            "#ageAssurancePurgeEvent",
683 698
            "#revokeAccountCredentialsEvent",
684 699
            "#scheduleTakedownEvent",
685 700
            "#cancelScheduledTakedownEvent"
686 701
          ],
687 702
          "type": "union"
688 703
        },
689 704
        "id": {
690 705
          "type": "integer"
691 706
        },
692 707
        "modTool": {
693 708
          "ref": "#modTool",
694 709
          "type": "ref"
695 710
        },
696 711
        "subject": {
697 712
          "refs": [
698 713
            "com.atproto.admin.defs#repoRef",
699 714
            "com.atproto.repo.strongRef",
700 715
            "chat.bsky.convo.defs#messageRef",
701 716
            "chat.bsky.convo.defs#convoRef"
702 717
          ],
703 718
          "type": "union"
704 719
        },
705 720
        "subjectBlobCids": {
706 721
          "items": {
707 722
            "type": "string"
708 723
          },
709 724
          "type": "array"
710 725
        },
711 726
        "subjectHandle": {
712 727
          "type": "string"
713 728
        }
714 729
      },
715 730
      "required": [
716 731
        "id",
717 732
        "event",
718 733
        "subject",
719 734
        "subjectBlobCids",
720 735
        "createdBy",
721 736
        "createdAt"
722 737
      ],
723 738
      "type": "object"
724 739
    },
725 740
    "modEventViewDetail": {
726 741
      "properties": {
727 742
        "createdAt": {
728 743
          "format": "datetime",
729 744
          "type": "string"
730 745
        },
731 746
        "createdBy": {
732 747
          "format": "did",
733 748
          "type": "string"
734 749
        },
735 750
        "event": {
736 751
          "refs": [
737 752
            "#modEventTakedown",
738 753
            "#modEventReverseTakedown",
739 754
            "#modEventComment",
740 755
            "#modEventReport",
741 756
            "#modEventLabel",
742 757
            "#modEventAcknowledge",
743 758
            "#modEventEscalate",
744 759
            "#modEventMute",
745 760
            "#modEventUnmute",
746 761
            "#modEventMuteReporter",
747 762
            "#modEventUnmuteReporter",
748 763
            "#modEventEmail",
749 764
            "#modEventResolveAppeal",
750 765
            "#modEventDivert",
751 766
            "#modEventTag",
752 767
            "#accountEvent",
753 768
            "#identityEvent",
754 769
            "#recordEvent",
755 770
            "#modEventPriorityScore",
756 771
            "#ageAssuranceEvent",
757 772
            "#ageAssuranceOverrideEvent",
758 773
            "#ageAssurancePurgeEvent",
759 774
            "#revokeAccountCredentialsEvent",
760 775
            "#scheduleTakedownEvent",
761 776
            "#cancelScheduledTakedownEvent"
762 777
          ],
763 778
          "type": "union"
764 779
        },
765 780
        "id": {
766 781
          "type": "integer"
767 782
        },
768 783
        "modTool": {
769 784
          "ref": "#modTool",
770 785
          "type": "ref"
771 786
        },
772 787
        "subject": {
773 788
          "refs": [
774 789
            "#repoView",
775 790
            "#repoViewNotFound",
776 791
            "#recordView",
777 792
            "#recordViewNotFound",
778 793
            "#convoView"
779 794
          ],
780 795
          "type": "union"
781 796
        },
782 797
        "subjectBlobs": {
783 798
          "items": {
784 799
            "ref": "#blobView",
785 800
            "type": "ref"
786 801
          },
787 802
          "type": "array"
788 803
        }
789 804
      },
790 805
      "required": [
791 806
        "id",
792 807
        "event",
793 808
        "subject",
794 809
        "subjectBlobs",
795 810
        "createdBy",
796 811
        "createdAt"
797 812
      ],
798 813
      "type": "object"
799 814
    },
800 815
    "modTool": {
801 816
      "description": "Moderation tool information for tracing the source of the action",
802 817
      "properties": {
803 818
        "meta": {
804 819
          "description": "Additional arbitrary metadata about the source",
805 820
          "type": "unknown"
806 821
        },
807 822
        "name": {
808 823
          "description": "Name/identifier of the source (e.g., 'automod', 'ozone/workspace')",
809 824
          "type": "string"
810 825
        }
811 826
      },
812 827
      "required": [
813 828
        "name"
814 829
      ],
815 830
      "type": "object"
816 831
    },
817 832
    "moderation": {
818 833
      "properties": {
819 834
        "subjectStatus": {
820 835
          "ref": "#subjectStatusView",
821 836
          "type": "ref"
822 837
        }
823 838
      },
824 839
      "type": "object"
825 840
    },
826 841
    "moderationDetail": {
827 842
      "properties": {
828 843
        "subjectStatus": {
829 844
          "ref": "#subjectStatusView",
830 845
          "type": "ref"
831 846
        }
832 847
      },
833 848
      "type": "object"
834 849
    },
835 850
    "recordEvent": {
836 851
      "description": "Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
837 852
      "properties": {
838 853
        "cid": {
839 854
          "format": "cid",
840 855
          "type": "string"
841 856
        },
842 857
        "comment": {
843 858
          "type": "string"
844 859
        },
845 860
        "op": {
846 861
          "knownValues": [
847 862
            "create",
848 863
            "update",
849 864
            "delete"
850 865
          ],
851 866
          "type": "string"
852 867
        },
853 868
        "timestamp": {
854 869
          "format": "datetime",
855 870
          "type": "string"
856 871
        }
857 872
      },
858 873
      "required": [
859 874
        "timestamp",
860 875
        "op"
861 876
      ],
862 877
      "type": "object"
863 878
    },
864 879
    "recordHosting": {
865 880
      "properties": {
866 881
        "createdAt": {
867 882
          "format": "datetime",
868 883
          "type": "string"
869 884
        },
870 885
        "deletedAt": {
871 886
          "format": "datetime",
872 887
          "type": "string"
873 888
        },
874 889
        "status": {
875 890
          "knownValues": [
876 891
            "deleted",
877 892
            "unknown"
878 893
          ],
879 894
          "type": "string"
880 895
        },
881 896
        "updatedAt": {
882 897
          "format": "datetime",
883 898
          "type": "string"
884 899
        }
885 900
      },
886 901
      "required": [
887 902
        "status"
888 903
      ],
889 904
      "type": "object"
890 905
    },
891 906
    "recordView": {
892 907
      "properties": {
893 908
        "blobCids": {
894 909
          "items": {
895 910
            "format": "cid",
896 911
            "type": "string"
897 912
          },
898 913
          "type": "array"
899 914
        },
900 915
        "cid": {
901 916
          "format": "cid",
902 917
          "type": "string"
903 918
        },
904 919
        "indexedAt": {
905 920
          "format": "datetime",
906 921
          "type": "string"
907 922
        },
908 923
        "moderation": {
909 924
          "ref": "#moderation",
910 925
          "type": "ref"
911 926
        },
912 927
        "repo": {
913 928
          "ref": "#repoView",
914 929
          "type": "ref"
915 930
        },
916 931
        "uri": {
917 932
          "format": "at-uri",
918 933
          "type": "string"
919 934
        },
920 935
        "value": {
921 936
          "type": "unknown"
922 937
        }
923 938
      },
924 939
      "required": [
925 940
        "uri",
926 941
        "cid",
927 942
        "value",
928 943
        "blobCids",
929 944
        "indexedAt",
930 945
        "moderation",
931 946
        "repo"
932 947
      ],
933 948
      "type": "object"
934 949
    },
935 950
    "recordViewDetail": {
936 951
      "properties": {
937 952
        "blobs": {
938 953
          "items": {
939 954
            "ref": "#blobView",
940 955
            "type": "ref"
941 956
          },
942 957
          "type": "array"
943 958
        },
944 959
        "cid": {
945 960
          "format": "cid",
946 961
          "type": "string"
947 962
        },
948 963
        "indexedAt": {
949 964
          "format": "datetime",
950 965
          "type": "string"
951 966
        },
952 967
        "labels": {
953 968
          "items": {
954 969
            "ref": "com.atproto.label.defs#label",
955 970
            "type": "ref"
956 971
          },
957 972
          "type": "array"
958 973
        },
959 974
        "moderation": {
960 975
          "ref": "#moderationDetail",
961 976
          "type": "ref"
962 977
        },
963 978
        "repo": {
964 979
          "ref": "#repoView",
965 980
          "type": "ref"
966 981
        },
967 982
        "uri": {
968 983
          "format": "at-uri",
969 984
          "type": "string"
970 985
        },
971 986
        "value": {
972 987
          "type": "unknown"
973 988
        }
974 989
      },
975 990
      "required": [
976 991
        "uri",
977 992
        "cid",
978 993
        "value",
979 994
        "blobs",
980 995
        "indexedAt",
981 996
        "moderation",
982 997
        "repo"
983 998
      ],
984 999
      "type": "object"
985 1000
    },
986 1001
    "recordViewNotFound": {
987 1002
      "properties": {
988 1003
        "uri": {
989 1004
          "format": "at-uri",
990 1005
          "type": "string"
991 1006
        }
992 1007
      },
993 1008
      "required": [
994 1009
        "uri"
995 1010
      ],
996 1011
      "type": "object"
997 1012
    },
998 1013
    "recordsStats": {
999 1014
      "description": "Statistics about a set of record subject items",
1000 1015
      "properties": {
1001 1016
        "appealedCount": {
1002 1017
          "description": "Number of items that were appealed at least once",
1003 1018
          "type": "integer"
1004 1019
        },
1005 1020
        "escalatedCount": {
1006 1021
          "description": "Number of items that were escalated at least once",
1007 1022
          "type": "integer"
1008 1023
        },
1009 1024
        "pendingCount": {
1010 1025
          "description": "Number of item currently in \"reviewOpen\" or \"reviewEscalated\" state",
1011 1026
          "type": "integer"
1012 1027
        },
1013 1028
        "processedCount": {
1014 1029
          "description": "Number of item currently in \"reviewNone\" or \"reviewClosed\" state",
1015 1030
          "type": "integer"
1016 1031
        },
1017 1032
        "reportedCount": {
1018 1033
          "description": "Number of items that were reported at least once",
1019 1034
          "type": "integer"
1020 1035
        },
1021 1036
        "subjectCount": {
1022 1037
          "description": "Total number of item in the set",
1023 1038
          "type": "integer"
1024 1039
        },
1025 1040
        "takendownCount": {
1026 1041
          "description": "Number of item currently taken down",
1027 1042
          "type": "integer"
1028 1043
        },
1029 1044
        "totalReports": {
1030 1045
          "description": "Cumulative sum of the number of reports on the items in the set",
1031 1046
          "type": "integer"
1032 1047
        }
1033 1048
      },
1034 1049
      "type": "object"
1035 1050
    },
1036 1051
    "repoView": {
1037 1052
      "properties": {
1038 1053
        "deactivatedAt": {
1039 1054
          "format": "datetime",
1040 1055
          "type": "string"
1041 1056
        },
1042 1057
        "did": {
1043 1058
          "format": "did",
1044 1059
          "type": "string"
1045 1060
        },
1046 1061
        "email": {
1047 1062
          "type": "string"
1048 1063
        },
1049 1064
        "handle": {
1050 1065
          "format": "handle",
1051 1066
          "type": "string"
1052 1067
        },
1053 1068
        "indexedAt": {
1054 1069
          "format": "datetime",
1055 1070
          "type": "string"
1056 1071
        },
1057 1072
        "inviteNote": {
1058 1073
          "type": "string"
1059 1074
        },
1060 1075
        "invitedBy": {
1061 1076
          "ref": "com.atproto.server.defs#inviteCode",
1062 1077
          "type": "ref"
1063 1078
        },
1064 1079
        "invitesDisabled": {
1065 1080
          "type": "boolean"
1066 1081
        },
1067 1082
        "moderation": {
1068 1083
          "ref": "#moderation",
1069 1084
          "type": "ref"
1070 1085
        },
1071 1086
        "relatedRecords": {
1072 1087
          "items": {
1073 1088
            "type": "unknown"
1074 1089
          },
1075 1090
          "type": "array"
1076 1091
        },
1077 1092
        "threatSignatures": {
1078 1093
          "items": {
1079 1094
            "ref": "com.atproto.admin.defs#threatSignature",
1080 1095
            "type": "ref"
1081 1096
          },
1082 1097
          "type": "array"
1083 1098
        }
1084 1099
      },
1085 1100
      "required": [
1086 1101
        "did",
1087 1102
        "handle",
1088 1103
        "relatedRecords",
1089 1104
        "indexedAt",
1090 1105
        "moderation"
1091 1106
      ],
1092 1107
      "type": "object"
1093 1108
    },
1094 1109
    "repoViewDetail": {
1095 1110
      "properties": {
1096 1111
        "deactivatedAt": {
1097 1112
          "format": "datetime",
1098 1113
          "type": "string"
1099 1114
        },
1100 1115
        "did": {
1101 1116
          "format": "did",
1102 1117
          "type": "string"
1103 1118
        },
1104 1119
        "email": {
1105 1120
          "type": "string"
1106 1121
        },
1107 1122
        "emailConfirmedAt": {
1108 1123
          "format": "datetime",
1109 1124
          "type": "string"
1110 1125
        },
1111 1126
        "handle": {
1112 1127
          "format": "handle",
1113 1128
          "type": "string"
1114 1129
        },
1115 1130
        "indexedAt": {
1116 1131
          "format": "datetime",
1117 1132
          "type": "string"
1118 1133
        },
1119 1134
        "inviteNote": {
1120 1135
          "type": "string"
1121 1136
        },
1122 1137
        "invitedBy": {
1123 1138
          "ref": "com.atproto.server.defs#inviteCode",
1124 1139
          "type": "ref"
1125 1140
        },
1126 1141
        "invites": {
1127 1142
          "items": {
1128 1143
            "ref": "com.atproto.server.defs#inviteCode",
1129 1144
            "type": "ref"
1130 1145
          },
1131 1146
          "type": "array"
1132 1147
        },
1133 1148
        "invitesDisabled": {
1134 1149
          "type": "boolean"
1135 1150
        },
1136 1151
        "labels": {
1137 1152
          "items": {
1138 1153
            "ref": "com.atproto.label.defs#label",
1139 1154
            "type": "ref"
1140 1155
          },
1141 1156
          "type": "array"
1142 1157
        },
1143 1158
        "moderation": {
1144 1159
          "ref": "#moderationDetail",
1145 1160
          "type": "ref"
1146 1161
        },
1147 1162
        "relatedRecords": {
1148 1163
          "items": {
1149 1164
            "type": "unknown"
1150 1165
          },
1151 1166
          "type": "array"
1152 1167
        },
1153 1168
        "threatSignatures": {
1154 1169
          "items": {
1155 1170
            "ref": "com.atproto.admin.defs#threatSignature",
1156 1171
            "type": "ref"
1157 1172
          },
1158 1173
          "type": "array"
1159 1174
        }
1160 1175
      },
1161 1176
      "required": [
1162 1177
        "did",
1163 1178
        "handle",
1164 1179
        "relatedRecords",
1165 1180
        "indexedAt",
1166 1181
        "moderation"
1167 1182
      ],
1168 1183
      "type": "object"
1169 1184
    },
1170 1185
    "repoViewNotFound": {
1171 1186
      "properties": {
1172 1187
        "did": {
1173 1188
          "format": "did",
1174 1189
          "type": "string"
1175 1190
        }
1176 1191
      },
1177 1192
      "required": [
1178 1193
        "did"
1179 1194
      ],
1180 1195
      "type": "object"
1181 1196
    },
1182 1197
    "reporterStats": {
1183 1198
      "properties": {
1184 1199
        "accountReportCount": {
1185 1200
          "description": "The total number of reports made by the user on accounts.",
1186 1201
          "type": "integer"
1187 1202
        },
1188 1203
        "did": {
1189 1204
          "format": "did",
1190 1205
          "type": "string"
1191 1206
        },
1192 1207
        "labeledAccountCount": {
1193 1208
          "description": "The total number of accounts labeled as a result of the user's reports.",
1194 1209
          "type": "integer"
1195 1210
        },
1196 1211
        "labeledRecordCount": {
1197 1212
          "description": "The total number of records labeled as a result of the user's reports.",
1198 1213
          "type": "integer"
1199 1214
        },
1200 1215
        "recordReportCount": {
1201 1216
          "description": "The total number of reports made by the user on records.",
1202 1217
          "type": "integer"
1203 1218
        },
1204 1219
        "reportedAccountCount": {
1205 1220
          "description": "The total number of accounts reported by the user.",
1206 1221
          "type": "integer"
1207 1222
        },
1208 1223
        "reportedRecordCount": {
1209 1224
          "description": "The total number of records reported by the user.",
1210 1225
          "type": "integer"
1211 1226
        },
1212 1227
        "takendownAccountCount": {
1213 1228
          "description": "The total number of accounts taken down as a result of the user's reports.",
1214 1229
          "type": "integer"
1215 1230
        },
1216 1231
        "takendownRecordCount": {
1217 1232
          "description": "The total number of records taken down as a result of the user's reports.",
1218 1233
          "type": "integer"
1219 1234
        }
1220 1235
      },
1221 1236
      "required": [
1222 1237
        "did",
1223 1238
        "accountReportCount",
1224 1239
        "recordReportCount",
1225 1240
        "reportedAccountCount",
1226 1241
        "reportedRecordCount",
1227 1242
        "takendownAccountCount",
1228 1243
        "takendownRecordCount",
1229 1244
        "labeledAccountCount",
1230 1245
        "labeledRecordCount"
1231 1246
      ],
1232 1247
      "type": "object"
1233 1248
    },
1234 1249
    "reviewClosed": {
1235 1250
      "description": "Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator",
1236 1251
      "type": "token"
1237 1252
    },
1238 1253
    "reviewEscalated": {
1239 1254
      "description": "Moderator review status of a subject: Escalated. Indicates that the subject was escalated for review by a moderator",
1240 1255
      "type": "token"
1241 1256
    },
1242 1257
    "reviewNone": {
1243 1258
      "description": "Moderator review status of a subject: Unnecessary. Indicates that the subject does not need a review at the moment but there is probably some moderation related metadata available for it",
1244 1259
      "type": "token"
1245 1260
    },
1246 1261
    "reviewOpen": {
1247 1262
      "description": "Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator",
1248 1263
      "type": "token"
1249 1264
    },
1250 1265
    "revokeAccountCredentialsEvent": {
1251 1266
      "description": "Account credentials revocation by moderators. Only works on DID subjects.",
1252 1267
      "properties": {
1253 1268
        "comment": {
1254 1269
          "description": "Comment describing the reason for the revocation.",
1255 1270
          "minLength": 1,
1256 1271
          "type": "string"
1257 1272
        }
1258 1273
      },
1259 1274
      "required": [
1260 1275
        "comment"
1261 1276
      ],
1262 1277
      "type": "object"
1263 1278
    },
1264 1279
    "scheduleTakedownEvent": {
1265 1280
      "description": "Logs a scheduled takedown action for an account.",
1266 1281
      "properties": {
1267 1282
        "comment": {
1268 1283
          "type": "string"
1269 1284
        },
1270 1285
        "executeAfter": {
1271 1286
          "format": "datetime",
1272 1287
          "type": "string"
1273 1288
        },
1274 1289
        "executeAt": {
1275 1290
          "format": "datetime",
1276 1291
          "type": "string"
1277 1292
        },
1278 1293
        "executeUntil": {
1279 1294
          "format": "datetime",
1280 1295
          "type": "string"
1281 1296
        }
1282 1297
      },
1283 1298
      "type": "object"
1284 1299
    },
1285 1300
    "scheduledActionView": {
1286 1301
      "description": "View of a scheduled moderation action",
1287 1302
      "properties": {
1288 1303
        "action": {
1289 1304
          "description": "Type of action to be executed",
1290 1305
          "knownValues": [
1291 1306
            "takedown"
1292 1307
          ],
1293 1308
          "type": "string"
1294 1309
        },
1295 1310
        "createdAt": {
1296 1311
          "description": "When the scheduled action was created",
1297 1312
          "format": "datetime",
1298 1313
          "type": "string"
1299 1314
        },
1300 1315
        "createdBy": {
1301 1316
          "description": "DID of the user who created this scheduled action",
1302 1317
          "format": "did",
1303 1318
          "type": "string"
1304 1319
        },
1305 1320
        "did": {
1306 1321
          "description": "Subject DID for the action",
1307 1322
          "format": "did",
1308 1323
          "type": "string"
1309 1324
        },
1310 1325
        "eventData": {
1311 1326
          "description": "Serialized event object that will be propagated to the event when performed",
1312 1327
          "type": "unknown"
1313 1328
        },
1314 1329
        "executeAfter": {
1315 1330
          "description": "Earliest time to execute the action (for randomized scheduling)",
1316 1331
          "format": "datetime",
1317 1332
          "type": "string"
1318 1333
        },
1319 1334
        "executeAt": {
1320 1335
          "description": "Exact time to execute the action",
1321 1336
          "format": "datetime",
1322 1337
          "type": "string"
1323 1338
        },
1324 1339
        "executeUntil": {
1325 1340
          "description": "Latest time to execute the action (for randomized scheduling)",
1326 1341
          "format": "datetime",
1327 1342
          "type": "string"
1328 1343
        },
1329 1344
        "executionEventId": {
1330 1345
          "description": "ID of the moderation event created when action was successfully executed",
1331 1346
          "type": "integer"
1332 1347
        },
1333 1348
        "id": {
1334 1349
          "description": "Auto-incrementing row ID",
1335 1350
          "type": "integer"
1336 1351
        },
1337 1352
        "lastExecutedAt": {
1338 1353
          "description": "When the action was last attempted to be executed",
1339 1354
          "format": "datetime",
1340 1355
          "type": "string"
1341 1356
        },
1342 1357
        "lastFailureReason": {
1343 1358
          "description": "Reason for the last execution failure",
1344 1359
          "type": "string"
1345 1360
        },
1346 1361
        "randomizeExecution": {
1347 1362
          "description": "Whether execution time should be randomized within the specified range",
1348 1363
          "type": "boolean"
1349 1364
        },
1350 1365
        "status": {
1351 1366
          "description": "Current status of the scheduled action",
1352 1367
          "knownValues": [
1353 1368
            "pending",
1354 1369
            "executed",
1355 1370
            "cancelled",
1356 1371
            "failed"
1357 1372
          ],
1358 1373
          "type": "string"
1359 1374
        },
1360 1375
        "updatedAt": {
1361 1376
          "description": "When the scheduled action was last updated",
1362 1377
          "format": "datetime",
1363 1378
          "type": "string"
1364 1379
        }
1365 1380
      },
1366 1381
      "required": [
1367 1382
        "id",
1368 1383
        "action",
1369 1384
        "did",
1370 1385
        "createdBy",
1371 1386
        "createdAt",
1372 1387
        "status"
1373 1388
      ],
1374 1389
      "type": "object"
1375 1390
    },
1376 1391
    "subjectReviewState": {
1377 1392
      "knownValues": [
1378 1393
        "tools.ozone.moderation.defs#reviewOpen",
1379 1394
        "tools.ozone.moderation.defs#reviewEscalated",
1380 1395
        "tools.ozone.moderation.defs#reviewClosed",
1381 1396
        "tools.ozone.moderation.defs#reviewNone"
1382 1397
      ],
1383 1398
      "type": "string"
1384 1399
    },
1385 1400
    "subjectStatusView": {
1386 1401
      "properties": {
1387 1402
        "accountStats": {
1388 1403
          "description": "Statistics related to the account subject",
1389 1404
          "ref": "#accountStats",
1390 1405
          "type": "ref"
1391 1406
        },
1392 1407
        "accountStrike": {
1393 1408
          "description": "Strike information for the account (account-level only)",
1394 1409
          "ref": "#accountStrike",
1395 1410
          "type": "ref"
1396 1411
        },
1397 1412
        "ageAssuranceState": {
1398 1413
          "description": "Current age assurance state of the subject.",
1399 1414
          "knownValues": [
1400 1415
            "pending",
1401 1416
            "assured",
1402 1417
            "unknown",
1403 1418
            "reset",
1404 1419
            "blocked"
1405 1420
          ],
1406 1421
          "type": "string"
1407 1422
        },
1408 1423
        "ageAssuranceUpdatedBy": {
1409 1424
          "description": "Whether or not the last successful update to age assurance was made by the user or admin.",
1410 1425
          "knownValues": [
1411 1426
            "admin",
1412 1427
            "user"
1413 1428
          ],
1414 1429
          "type": "string"
1415 1430
        },
1416 1431
        "appealed": {
1417 1432
          "description": "True indicates that the a previously taken moderator action was appealed against, by the author of the content. False indicates last appeal was resolved by moderators.",
1418 1433
          "type": "boolean"
1419 1434
        },
1420 1435
        "comment": {
1421 1436
          "description": "Sticky comment on the subject.",
1422 1437
          "type": "string"
1423 1438
        },
1424 1439
        "createdAt": {
1425 1440
          "description": "Timestamp referencing the first moderation status impacting event was emitted on the subject",
1426 1441
          "format": "datetime",
1427 1442
          "type": "string"
1428 1443
        },
1429 1444
        "hosting": {
1430 1445
          "refs": [
1431 1446
            "#accountHosting",
1432 1447
            "#recordHosting"
1433 1448
          ],
1434 1449
          "type": "union"
1435 1450
        },
1436 1451
        "id": {
1437 1452
          "type": "integer"
1438 1453
        },
1439 1454
        "lastAppealedAt": {
1440 1455
          "description": "Timestamp referencing when the author of the subject appealed a moderation action",
1441 1456
          "format": "datetime",
1442 1457
          "type": "string"
1443 1458
        },
1444 1459
        "lastReportedAt": {
1445 1460
          "format": "datetime",
1446 1461
          "type": "string"
1447 1462
        },
1448 1463
        "lastReviewedAt": {
1449 1464
          "format": "datetime",
1450 1465
          "type": "string"
1451 1466
        },
1452 1467
        "lastReviewedBy": {
1453 1468
          "format": "did",
1454 1469
          "type": "string"
1455 1470
        },
1456 1471
        "muteReportingUntil": {
1457 1472
          "format": "datetime",
1458 1473
          "type": "string"
1459 1474
        },
1460 1475
        "muteUntil": {
1461 1476
          "format": "datetime",
1462 1477
          "type": "string"
1463 1478
        },
1464 1479
        "priorityScore": {
1465 1480
          "description": "Numeric value representing the level of priority. Higher score means higher priority.",
1466 1481
          "maximum": 100,
1467 1482
          "minimum": 0,
1468 1483
          "type": "integer"
1469 1484
        },
1470 1485
        "recordsStats": {
1471 1486
          "description": "Statistics related to the record subjects authored by the subject's account",
1472 1487
          "ref": "#recordsStats",
1473 1488
          "type": "ref"
1474 1489
        },
1475 1490
        "reviewState": {
1476 1491
          "ref": "#subjectReviewState",
1477 1492
          "type": "ref"
1478 1493
        },
1479 1494
        "subject": {
1480 1495
          "refs": [
1481 1496
            "com.atproto.admin.defs#repoRef",
1482 1497
            "com.atproto.repo.strongRef",
1483 1498
            "chat.bsky.convo.defs#messageRef",
1484 1499
            "chat.bsky.convo.defs#convoRef"
1485 1500
          ],
1486 1501
          "type": "union"
1487 1502
        },
1488 1503
        "subjectBlobCids": {
1489 1504
          "items": {
1490 1505
            "format": "cid",
1491 1506
            "type": "string"
1492 1507
          },
1493 1508
          "type": "array"
1494 1509
        },
1495 1510
        "subjectRepoHandle": {
1496 1511
          "type": "string"
1497 1512
        },
1498 1513
        "suspendUntil": {
1499 1514
          "format": "datetime",
1500 1515
          "type": "string"
1501 1516
        },
1502 1517
        "tags": {
1503 1518
          "items": {
1504 1519
            "type": "string"
1505 1520
          },
1506 1521
          "type": "array"
1507 1522
        },
1508 1523
        "takendown": {
1509 1524
          "type": "boolean"
1510 1525
        },
1511 1526
        "updatedAt": {
1512 1527
          "description": "Timestamp referencing when the last update was made to the moderation status of the subject",
1513 1528
          "format": "datetime",
1514 1529
          "type": "string"
1515 1530
        }
1516 1531
      },
1517 1532
      "required": [
1518 1533
        "id",
1519 1534
        "subject",
1520 1535
        "createdAt",
1521 1536
        "updatedAt",
1522 1537
        "reviewState"
1523 1538
      ],
1524 1539
      "type": "object"
1525 1540
    },
1526 1541
    "subjectView": {
1527 1542
      "description": "Detailed view of a subject. For record subjects, the author's repo and profile will be returned.",
1528 1543
      "properties": {
1529 1544
        "profile": {
1530 1545
          "refs": [],
1531 1546
          "type": "union"
1532 1547
        },
1533 1548
        "record": {
1534 1549
          "ref": "#recordViewDetail",
1535 1550
          "type": "ref"
1536 1551
        },
1537 1552
        "repo": {
1538 1553
          "ref": "#repoViewDetail",
1539 1554
          "type": "ref"
1540 1555
        },
1541 1556
        "status": {
1542 1557
          "ref": "#subjectStatusView",
1543 1558
          "type": "ref"
1544 1559
        },
1545 1560
        "subject": {
1546 1561
          "type": "string"
1547 1562
        },
1548 1563
        "type": {
1549 1564
          "ref": "com.atproto.moderation.defs#subjectType",
1550 1565
          "type": "ref"
1551 1566
        }
1552 1567
      },
1553 1568
      "required": [
1554 1569
        "type",
1555 1570
        "subject"
1556 1571
      ],
1557 1572
      "type": "object"
1558 1573
    },
1559 1574
    "timelineEventPlcCreate": {
1560 1575
      "description": "Moderation event timeline event for a PLC create operation",
1561 1576
      "type": "token"
1562 1577
    },
1563 1578
    "timelineEventPlcOperation": {
1564 1579
      "description": "Moderation event timeline event for generic PLC operation",
1565 1580
      "type": "token"
1566 1581
    },
1567 1582
    "timelineEventPlcTombstone": {
1568 1583
      "description": "Moderation event timeline event for a PLC tombstone operation",
1569 1584
      "type": "token"
1570 1585
    },
1571 1586
    "videoDetails": {
1572 1587
      "properties": {
1573 1588
        "height": {
1574 1589
          "type": "integer"
1575 1590
        },
1576 1591
        "length": {
1577 1592
          "type": "integer"
1578 1593
        },
1579 1594
        "width": {
1580 1595
          "type": "integer"
1581 1596
        }
1582 1597
      },
1583 1598
      "required": [
1584 1599
        "width",
1585 1600
        "height",
1586 1601
        "length"
1587 1602
      ],
1588 1603
      "type": "object"
1589 1604
    }
1590 1605
  },
1591 1606
  "id": "tools.ozone.moderation.defs",
1592 1607
  "lexicon": 1
1593 1608
}

Compare Other Versions

Lexicon Garden

@