{
"id": "app.tempomusic.staff.restoreSubject",
"defs": {
"main": {
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"subject",
"reason"
],
"properties": {
"reason": {
"type": "string",
"maxLength": 1000
},
"subject": {
"refs": [
"app.tempomusic.moderation.defs#postSubject",
"app.tempomusic.moderation.defs#replySubject",
"app.tempomusic.moderation.defs#accountSubject"
],
"type": "union"
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "Forbidden",
"description": "Caller is not an active moderator."
},
{
"name": "SubjectNotFound"
},
{
"name": "NotTakenDown",
"description": "The subject is not currently under a moderation hold; nothing to restore."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"auditEntryId"
],
"properties": {
"auditEntryId": {
"type": "integer",
"minimum": 1
}
}
},
"encoding": "application/json"
},
"description": "Flip `moderation_status` back to 0 on a previously taken-down subject row. Writes a `subjectRestore` audit row. Trivially symmetric with takedownSubject — both act on the subject row only; lifting an account-wide sanction is unsuspendAccount's job (bans are permanent). Requires the caller to be an active moderator."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}
Metadata
- DID
-
did:plc:pxsuqmultto34oks44m2lgxm
- CID
-
bafyreibytlvdgmyoyw4ur5oaz3sibd2vvmcrfrjavmu3db3rdm2uifn4fm
- Indexed At
- 2026-08-24 09:06 UTC
- AT-URI
-
at://did:plc:pxsuqmultto34oks44m2lgxm/com.atproto.lexicon.schema/app.tempomusic.staff.restoreSubject