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