{
"lexicon": 1,
"id": "tools.ozone.moderation.emitEvent",
"defs": {
"main": {
"type": "procedure",
"description": "Take a moderation action on an actor.",
"input": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["event", "subject", "createdBy"],
"properties": {
"event": {
"type": "union",
"refs": [
"tools.ozone.moderation.defs#modEventTakedown",
"tools.ozone.moderation.defs#modEventAcknowledge",
"tools.ozone.moderation.defs#modEventEscalate",
"tools.ozone.moderation.defs#modEventComment",
"tools.ozone.moderation.defs#modEventLabel",
"tools.ozone.moderation.defs#modEventReport",
"tools.ozone.moderation.defs#modEventMute",
"tools.ozone.moderation.defs#modEventUnmute",
"tools.ozone.moderation.defs#modEventMuteReporter",
"tools.ozone.moderation.defs#modEventUnmuteReporter",
"tools.ozone.moderation.defs#modEventReverseTakedown",
"tools.ozone.moderation.defs#modEventResolveAppeal",
"tools.ozone.moderation.defs#modEventEmail",
"tools.ozone.moderation.defs#modEventDivert",
"tools.ozone.moderation.defs#modEventTag",
"tools.ozone.moderation.defs#accountEvent",
"tools.ozone.moderation.defs#identityEvent",
"tools.ozone.moderation.defs#recordEvent",
"tools.ozone.moderation.defs#modEventPriorityScore",
"tools.ozone.moderation.defs#ageAssuranceEvent",
"tools.ozone.moderation.defs#ageAssuranceOverrideEvent",
"tools.ozone.moderation.defs#revokeAccountCredentialsEvent",
"tools.ozone.moderation.defs#scheduleTakedownEvent",
"tools.ozone.moderation.defs#cancelScheduledTakedownEvent"
]
},
"subject": {
"type": "union",
"refs": [
"com.atproto.admin.defs#repoRef",
"com.atproto.repo.strongRef"
]
},
"subjectBlobCids": {
"type": "array",
"items": {
"type": "string",
"format": "cid"
}
},
"createdBy": {
"type": "string",
"format": "did"
},
"modTool": {
"type": "ref",
"ref": "tools.ozone.moderation.defs#modTool"
},
"externalId": {
"type": "string",
"description": "An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject."
}
}
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "ref",
"ref": "tools.ozone.moderation.defs#modEventView"
}
},
"errors": [
{
"name": "SubjectHasAction"
},
{
"name": "DuplicateExternalId",
"description": "An event with the same external ID already exists for the subject."
}
]
}
}
}