tools.ozone.moderation.defs

ozone-lexicons.bsky.social

Schema Diff

+26 -3

From

CID
bafyreifhnzfv3et...
Indexed At
2026-07-26 20:04 UTC
View this version

To

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

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 15 non-breaking changes.

Breaking Changes (2)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "tools.ozone.moderation.defs#convoView", src: "tools.ozone.moderation.defs#convoView", tgt: "tools.ozone.moderation.defs#convoView.convoId", kind: "prop", name: Some("convoId") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "tools.ozone.moderation.defs#convoView", src: "tools.ozone.moderation.defs#convoView", tgt: "tools.ozone.moderation.defs#convoView.did", kind: "prop", name: Some("did") }
Non-Breaking Changes (15)
  • AddedVertex AddedVertex { vertex_id: "chat.bsky.convo.defs#convoRef" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#convoView" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#convoView.convoId" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#convoView.did" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventTag.durationInHours" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventView.subject:variant3" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventViewDetail.subject:variant4" }
  • AddedVertex AddedVertex { vertex_id: "tools.ozone.moderation.defs#subjectStatusView.subject:variant3" }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventTag", tgt: "tools.ozone.moderation.defs#modEventTag.durationInHours", kind: "prop", name: Some("durationInHours") }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventView.subject", tgt: "tools.ozone.moderation.defs#modEventView.subject:variant3", kind: "variant", name: Some("chat.bsky.convo.defs#convoRef") }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventView.subject:variant3", tgt: "chat.bsky.convo.defs#convoRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventViewDetail.subject", tgt: "tools.ozone.moderation.defs#modEventViewDetail.subject:variant4", kind: "variant", name: Some("#convoView") }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#modEventViewDetail.subject:variant4", tgt: "tools.ozone.moderation.defs#convoView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#subjectStatusView.subject", tgt: "tools.ozone.moderation.defs#subjectStatusView.subject:variant3", kind: "variant", name: Some("chat.bsky.convo.defs#convoRef") }
  • AddedEdge AddedEdge { src: "tools.ozone.moderation.defs#subjectStatusView.subject:variant3", tgt: "chat.bsky.convo.defs#convoRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "chat.bsky.convo.defs#convoRef" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#convoView" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#convoView.convoId" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#convoView.did" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventTag.durationInHours" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventView.subject:variant3" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#modEventViewDetail.subject:variant4" }
  • AddedVertex { vertex_id: "tools.ozone.moderation.defs#subjectStatusView.subject:variant3" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@