toolsOzoneModerationDefs top-level constant
tools.ozone.moderation.defs
Implementation
const toolsOzoneModerationDefs = <String, dynamic>{
"lexicon": 1,
"id": "tools.ozone.moderation.defs",
"defs": {
"modEventView": {
"type": "object",
"required": [
"id",
"event",
"subject",
"subjectBlobCids",
"createdBy",
"createdAt",
],
"properties": {
"id": {"type": "integer"},
"event": {
"type": "union",
"refs": [
"#modEventTakedown",
"#modEventReverseTakedown",
"#modEventComment",
"#modEventReport",
"#modEventLabel",
"#modEventAcknowledge",
"#modEventEscalate",
"#modEventMute",
"#modEventUnmute",
"#modEventMuteReporter",
"#modEventUnmuteReporter",
"#modEventEmail",
"#modEventResolveAppeal",
"#modEventDivert",
"#modEventTag",
"#accountEvent",
"#identityEvent",
"#recordEvent",
"#modEventPriorityScore",
"#ageAssuranceEvent",
"#ageAssuranceOverrideEvent",
"#revokeAccountCredentialsEvent",
],
},
"subject": {
"type": "union",
"refs": [
"com.atproto.admin.defs#repoRef",
"com.atproto.repo.strongRef",
"chat.bsky.convo.defs#messageRef",
],
},
"subjectBlobCids": {
"type": "array",
"items": {"type": "string"},
},
"createdBy": {"type": "string", "format": "did"},
"createdAt": {"type": "string", "format": "datetime"},
"creatorHandle": {"type": "string"},
"subjectHandle": {"type": "string"},
"modTool": {"type": "ref", "ref": "#modTool"},
},
},
"modEventViewDetail": {
"type": "object",
"required": [
"id",
"event",
"subject",
"subjectBlobs",
"createdBy",
"createdAt",
],
"properties": {
"id": {"type": "integer"},
"event": {
"type": "union",
"refs": [
"#modEventTakedown",
"#modEventReverseTakedown",
"#modEventComment",
"#modEventReport",
"#modEventLabel",
"#modEventAcknowledge",
"#modEventEscalate",
"#modEventMute",
"#modEventUnmute",
"#modEventMuteReporter",
"#modEventUnmuteReporter",
"#modEventEmail",
"#modEventResolveAppeal",
"#modEventDivert",
"#modEventTag",
"#accountEvent",
"#identityEvent",
"#recordEvent",
"#modEventPriorityScore",
"#ageAssuranceEvent",
"#ageAssuranceOverrideEvent",
"#revokeAccountCredentialsEvent",
],
},
"subject": {
"type": "union",
"refs": [
"#repoView",
"#repoViewNotFound",
"#recordView",
"#recordViewNotFound",
],
},
"subjectBlobs": {
"type": "array",
"items": {"type": "ref", "ref": "#blobView"},
},
"createdBy": {"type": "string", "format": "did"},
"createdAt": {"type": "string", "format": "datetime"},
"modTool": {"type": "ref", "ref": "#modTool"},
},
},
"subjectStatusView": {
"type": "object",
"required": ["id", "subject", "createdAt", "updatedAt", "reviewState"],
"properties": {
"id": {"type": "integer"},
"subject": {
"type": "union",
"refs": [
"com.atproto.admin.defs#repoRef",
"com.atproto.repo.strongRef",
"chat.bsky.convo.defs#messageRef",
],
},
"hosting": {
"type": "union",
"refs": ["#accountHosting", "#recordHosting"],
},
"subjectBlobCids": {
"type": "array",
"items": {"type": "string", "format": "cid"},
},
"subjectRepoHandle": {"type": "string"},
"updatedAt": {
"type": "string",
"format": "datetime",
"description":
"Timestamp referencing when the last update was made to the moderation status of the subject",
},
"createdAt": {
"type": "string",
"format": "datetime",
"description":
"Timestamp referencing the first moderation status impacting event was emitted on the subject",
},
"reviewState": {"type": "ref", "ref": "#subjectReviewState"},
"comment": {
"type": "string",
"description": "Sticky comment on the subject.",
},
"priorityScore": {
"type": "integer",
"description":
"Numeric value representing the level of priority. Higher score means higher priority.",
"minimum": 0,
"maximum": 100,
},
"muteUntil": {"type": "string", "format": "datetime"},
"muteReportingUntil": {"type": "string", "format": "datetime"},
"lastReviewedBy": {"type": "string", "format": "did"},
"lastReviewedAt": {"type": "string", "format": "datetime"},
"lastReportedAt": {"type": "string", "format": "datetime"},
"lastAppealedAt": {
"type": "string",
"format": "datetime",
"description":
"Timestamp referencing when the author of the subject appealed a moderation action",
},
"takendown": {"type": "boolean"},
"appealed": {
"type": "boolean",
"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.",
},
"suspendUntil": {"type": "string", "format": "datetime"},
"tags": {
"type": "array",
"items": {"type": "string"},
},
"accountStats": {
"type": "ref",
"description": "Statistics related to the account subject",
"ref": "#accountStats",
},
"recordsStats": {
"type": "ref",
"description":
"Statistics related to the record subjects authored by the subject's account",
"ref": "#recordsStats",
},
"ageAssuranceState": {
"type": "string",
"description": "Current age assurance state of the subject.",
"knownValues": ["pending", "assured", "unknown", "reset", "blocked"],
},
"ageAssuranceUpdatedBy": {
"type": "string",
"description":
"Whether or not the last successful update to age assurance was made by the user or admin.",
"knownValues": ["admin", "user"],
},
},
},
"subjectView": {
"type": "object",
"description":
"Detailed view of a subject. For record subjects, the author's repo and profile will be returned.",
"required": ["type", "subject"],
"properties": {
"type": {
"type": "ref",
"ref": "com.atproto.moderation.defs#subjectType",
},
"subject": {"type": "string"},
"status": {"type": "ref", "ref": "#subjectStatusView"},
"repo": {"type": "ref", "ref": "#repoViewDetail"},
"profile": {"type": "union", "refs": []},
"record": {"type": "ref", "ref": "#recordViewDetail"},
},
},
"accountStats": {
"type": "object",
"description": "Statistics about a particular account subject",
"properties": {
"reportCount": {
"type": "integer",
"description": "Total number of reports on the account",
},
"appealCount": {
"type": "integer",
"description":
"Total number of appeals against a moderation action on the account",
},
"suspendCount": {
"type": "integer",
"description": "Number of times the account was suspended",
},
"escalateCount": {
"type": "integer",
"description": "Number of times the account was escalated",
},
"takedownCount": {
"type": "integer",
"description": "Number of times the account was taken down",
},
},
},
"recordsStats": {
"type": "object",
"description": "Statistics about a set of record subject items",
"properties": {
"totalReports": {
"type": "integer",
"description":
"Cumulative sum of the number of reports on the items in the set",
},
"reportedCount": {
"type": "integer",
"description": "Number of items that were reported at least once",
},
"escalatedCount": {
"type": "integer",
"description": "Number of items that were escalated at least once",
},
"appealedCount": {
"type": "integer",
"description": "Number of items that were appealed at least once",
},
"subjectCount": {
"type": "integer",
"description": "Total number of item in the set",
},
"pendingCount": {
"type": "integer",
"description":
"Number of item currently in \"reviewOpen\" or \"reviewEscalated\" state",
},
"processedCount": {
"type": "integer",
"description":
"Number of item currently in \"reviewNone\" or \"reviewClosed\" state",
},
"takendownCount": {
"type": "integer",
"description": "Number of item currently taken down",
},
},
},
"subjectReviewState": {
"type": "string",
"knownValues": [
"#reviewOpen",
"#reviewEscalated",
"#reviewClosed",
"#reviewNone",
],
},
"reviewOpen": {
"type": "token",
"description":
"Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator",
},
"reviewEscalated": {
"type": "token",
"description":
"Moderator review status of a subject: Escalated. Indicates that the subject was escalated for review by a moderator",
},
"reviewClosed": {
"type": "token",
"description":
"Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator",
},
"reviewNone": {
"type": "token",
"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",
},
"modEventTakedown": {
"type": "object",
"description": "Take down a subject permanently or temporarily",
"properties": {
"comment": {"type": "string"},
"durationInHours": {
"type": "integer",
"description":
"Indicates how long the takedown should be in effect before automatically expiring.",
},
"acknowledgeAccountSubjects": {
"type": "boolean",
"description":
"If true, all other reports on content authored by this account will be resolved (acknowledged).",
},
"policies": {
"type": "array",
"description":
"Names/Keywords of the policies that drove the decision.",
"items": {"type": "string"},
"maxLength": 5,
},
},
},
"modEventReverseTakedown": {
"type": "object",
"description": "Revert take down action on a subject",
"properties": {
"comment": {
"type": "string",
"description": "Describe reasoning behind the reversal.",
},
},
},
"modEventResolveAppeal": {
"type": "object",
"description": "Resolve appeal on a subject",
"properties": {
"comment": {"type": "string", "description": "Describe resolution."},
},
},
"modEventComment": {
"type": "object",
"description":
"Add a comment to a subject. An empty comment will clear any previously set sticky comment.",
"properties": {
"comment": {"type": "string"},
"sticky": {
"type": "boolean",
"description": "Make the comment persistent on the subject",
},
},
},
"modEventReport": {
"type": "object",
"description": "Report a subject",
"required": ["reportType"],
"properties": {
"comment": {"type": "string"},
"isReporterMuted": {
"type": "boolean",
"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.",
},
"reportType": {
"type": "ref",
"ref": "com.atproto.moderation.defs#reasonType",
},
},
},
"modEventLabel": {
"type": "object",
"description": "Apply/Negate labels on a subject",
"required": ["createLabelVals", "negateLabelVals"],
"properties": {
"comment": {"type": "string"},
"createLabelVals": {
"type": "array",
"items": {"type": "string"},
},
"negateLabelVals": {
"type": "array",
"items": {"type": "string"},
},
"durationInHours": {
"type": "integer",
"description":
"Indicates how long the label will remain on the subject. Only applies on labels that are being added.",
},
},
},
"modEventPriorityScore": {
"type": "object",
"description":
"Set priority score of the subject. Higher score means higher priority.",
"required": ["score"],
"properties": {
"comment": {"type": "string"},
"score": {"type": "integer", "minimum": 0, "maximum": 100},
},
},
"ageAssuranceEvent": {
"type": "object",
"description":
"Age assurance info coming directly from users. Only works on DID subjects.",
"required": ["createdAt", "status", "attemptId"],
"properties": {
"createdAt": {
"type": "string",
"format": "datetime",
"description": "The date and time of this write operation.",
},
"status": {
"type": "string",
"description": "The status of the age assurance process.",
"knownValues": ["unknown", "pending", "assured"],
},
"attemptId": {
"type": "string",
"description":
"The unique identifier for this instance of the age assurance flow, in UUID format.",
},
"initIp": {
"type": "string",
"description": "The IP address used when initiating the AA flow.",
},
"initUa": {
"type": "string",
"description": "The user agent used when initiating the AA flow.",
},
"completeIp": {
"type": "string",
"description": "The IP address used when completing the AA flow.",
},
"completeUa": {
"type": "string",
"description": "The user agent used when completing the AA flow.",
},
},
},
"ageAssuranceOverrideEvent": {
"type": "object",
"description":
"Age assurance status override by moderators. Only works on DID subjects.",
"required": ["comment", "status"],
"properties": {
"status": {
"type": "string",
"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.",
"knownValues": ["assured", "reset", "blocked"],
},
"comment": {
"type": "string",
"description": "Comment describing the reason for the override.",
},
},
},
"revokeAccountCredentialsEvent": {
"type": "object",
"description":
"Account credentials revocation by moderators. Only works on DID subjects.",
"required": ["comment"],
"properties": {
"comment": {
"type": "string",
"description": "Comment describing the reason for the revocation.",
},
},
},
"modEventAcknowledge": {
"type": "object",
"properties": {
"comment": {"type": "string"},
"acknowledgeAccountSubjects": {
"type": "boolean",
"description":
"If true, all other reports on content authored by this account will be resolved (acknowledged).",
},
},
},
"modEventEscalate": {
"type": "object",
"properties": {
"comment": {"type": "string"},
},
},
"modEventMute": {
"type": "object",
"description": "Mute incoming reports on a subject",
"required": ["durationInHours"],
"properties": {
"comment": {"type": "string"},
"durationInHours": {
"type": "integer",
"description": "Indicates how long the subject should remain muted.",
},
},
},
"modEventUnmute": {
"type": "object",
"description": "Unmute action on a subject",
"properties": {
"comment": {
"type": "string",
"description": "Describe reasoning behind the reversal.",
},
},
},
"modEventMuteReporter": {
"type": "object",
"description": "Mute incoming reports from an account",
"properties": {
"comment": {"type": "string"},
"durationInHours": {
"type": "integer",
"description":
"Indicates how long the account should remain muted. Falsy value here means a permanent mute.",
},
},
},
"modEventUnmuteReporter": {
"type": "object",
"description": "Unmute incoming reports from an account",
"properties": {
"comment": {
"type": "string",
"description": "Describe reasoning behind the reversal.",
},
},
},
"modEventEmail": {
"type": "object",
"description": "Keep a log of outgoing email to a user",
"required": ["subjectLine"],
"properties": {
"subjectLine": {
"type": "string",
"description": "The subject line of the email sent to the user.",
},
"content": {
"type": "string",
"description": "The content of the email sent to the user.",
},
"comment": {
"type": "string",
"description": "Additional comment about the outgoing comm.",
},
},
},
"modEventDivert": {
"type": "object",
"description":
"Divert a record's blobs to a 3rd party service for further scanning/tagging",
"properties": {
"comment": {"type": "string"},
},
},
"modEventTag": {
"type": "object",
"description": "Add/Remove a tag on a subject",
"required": ["add", "remove"],
"properties": {
"add": {
"type": "array",
"description":
"Tags to be added to the subject. If already exists, won't be duplicated.",
"items": {"type": "string"},
},
"remove": {
"type": "array",
"description":
"Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated.",
"items": {"type": "string"},
},
"comment": {
"type": "string",
"description": "Additional comment about added/removed tags.",
},
},
},
"accountEvent": {
"type": "object",
"description":
"Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
"required": ["timestamp", "active"],
"properties": {
"comment": {"type": "string"},
"active": {
"type": "boolean",
"description":
"Indicates that the account has a repository which can be fetched from the host that emitted this event.",
},
"status": {
"type": "string",
"knownValues": [
"unknown",
"deactivated",
"deleted",
"takendown",
"suspended",
"tombstoned",
],
},
"timestamp": {"type": "string", "format": "datetime"},
},
},
"identityEvent": {
"type": "object",
"description":
"Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
"required": ["timestamp"],
"properties": {
"comment": {"type": "string"},
"handle": {"type": "string", "format": "handle"},
"pdsHost": {"type": "string", "format": "uri"},
"tombstone": {"type": "boolean"},
"timestamp": {"type": "string", "format": "datetime"},
},
},
"recordEvent": {
"type": "object",
"description":
"Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.",
"required": ["timestamp", "op"],
"properties": {
"comment": {"type": "string"},
"op": {
"type": "string",
"knownValues": ["create", "update", "delete"],
},
"cid": {"type": "string", "format": "cid"},
"timestamp": {"type": "string", "format": "datetime"},
},
},
"repoView": {
"type": "object",
"required": [
"did",
"handle",
"relatedRecords",
"indexedAt",
"moderation",
],
"properties": {
"did": {"type": "string", "format": "did"},
"handle": {"type": "string", "format": "handle"},
"email": {"type": "string"},
"relatedRecords": {
"type": "array",
"items": {"type": "unknown"},
},
"indexedAt": {"type": "string", "format": "datetime"},
"moderation": {"type": "ref", "ref": "#moderation"},
"invitedBy": {
"type": "ref",
"ref": "com.atproto.server.defs#inviteCode",
},
"invitesDisabled": {"type": "boolean"},
"inviteNote": {"type": "string"},
"deactivatedAt": {"type": "string", "format": "datetime"},
"threatSignatures": {
"type": "array",
"items": {
"type": "ref",
"ref": "com.atproto.admin.defs#threatSignature",
},
},
},
},
"repoViewDetail": {
"type": "object",
"required": [
"did",
"handle",
"relatedRecords",
"indexedAt",
"moderation",
],
"properties": {
"did": {"type": "string", "format": "did"},
"handle": {"type": "string", "format": "handle"},
"email": {"type": "string"},
"relatedRecords": {
"type": "array",
"items": {"type": "unknown"},
},
"indexedAt": {"type": "string", "format": "datetime"},
"moderation": {"type": "ref", "ref": "#moderationDetail"},
"labels": {
"type": "array",
"items": {"type": "ref", "ref": "com.atproto.label.defs#label"},
},
"invitedBy": {
"type": "ref",
"ref": "com.atproto.server.defs#inviteCode",
},
"invites": {
"type": "array",
"items": {"type": "ref", "ref": "com.atproto.server.defs#inviteCode"},
},
"invitesDisabled": {"type": "boolean"},
"inviteNote": {"type": "string"},
"emailConfirmedAt": {"type": "string", "format": "datetime"},
"deactivatedAt": {"type": "string", "format": "datetime"},
"threatSignatures": {
"type": "array",
"items": {
"type": "ref",
"ref": "com.atproto.admin.defs#threatSignature",
},
},
},
},
"repoViewNotFound": {
"type": "object",
"required": ["did"],
"properties": {
"did": {"type": "string", "format": "did"},
},
},
"recordView": {
"type": "object",
"required": [
"uri",
"cid",
"value",
"blobCids",
"indexedAt",
"moderation",
"repo",
],
"properties": {
"uri": {"type": "string", "format": "at-uri"},
"cid": {"type": "string", "format": "cid"},
"value": {"type": "unknown"},
"blobCids": {
"type": "array",
"items": {"type": "string", "format": "cid"},
},
"indexedAt": {"type": "string", "format": "datetime"},
"moderation": {"type": "ref", "ref": "#moderation"},
"repo": {"type": "ref", "ref": "#repoView"},
},
},
"recordViewDetail": {
"type": "object",
"required": [
"uri",
"cid",
"value",
"blobs",
"indexedAt",
"moderation",
"repo",
],
"properties": {
"uri": {"type": "string", "format": "at-uri"},
"cid": {"type": "string", "format": "cid"},
"value": {"type": "unknown"},
"blobs": {
"type": "array",
"items": {"type": "ref", "ref": "#blobView"},
},
"labels": {
"type": "array",
"items": {"type": "ref", "ref": "com.atproto.label.defs#label"},
},
"indexedAt": {"type": "string", "format": "datetime"},
"moderation": {"type": "ref", "ref": "#moderationDetail"},
"repo": {"type": "ref", "ref": "#repoView"},
},
},
"recordViewNotFound": {
"type": "object",
"required": ["uri"],
"properties": {
"uri": {"type": "string", "format": "at-uri"},
},
},
"moderation": {
"type": "object",
"properties": {
"subjectStatus": {"type": "ref", "ref": "#subjectStatusView"},
},
},
"moderationDetail": {
"type": "object",
"properties": {
"subjectStatus": {"type": "ref", "ref": "#subjectStatusView"},
},
},
"blobView": {
"type": "object",
"required": ["cid", "mimeType", "size", "createdAt"],
"properties": {
"cid": {"type": "string", "format": "cid"},
"mimeType": {"type": "string"},
"size": {"type": "integer"},
"createdAt": {"type": "string", "format": "datetime"},
"details": {
"type": "union",
"refs": ["#imageDetails", "#videoDetails"],
},
"moderation": {"type": "ref", "ref": "#moderation"},
},
},
"imageDetails": {
"type": "object",
"required": ["width", "height"],
"properties": {
"width": {"type": "integer"},
"height": {"type": "integer"},
},
},
"videoDetails": {
"type": "object",
"required": ["width", "height", "length"],
"properties": {
"width": {"type": "integer"},
"height": {"type": "integer"},
"length": {"type": "integer"},
},
},
"accountHosting": {
"type": "object",
"required": ["status"],
"properties": {
"status": {
"type": "string",
"knownValues": [
"takendown",
"suspended",
"deleted",
"deactivated",
"unknown",
],
},
"updatedAt": {"type": "string", "format": "datetime"},
"createdAt": {"type": "string", "format": "datetime"},
"deletedAt": {"type": "string", "format": "datetime"},
"deactivatedAt": {"type": "string", "format": "datetime"},
"reactivatedAt": {"type": "string", "format": "datetime"},
},
},
"recordHosting": {
"type": "object",
"required": ["status"],
"properties": {
"status": {
"type": "string",
"knownValues": ["deleted", "unknown"],
},
"updatedAt": {"type": "string", "format": "datetime"},
"createdAt": {"type": "string", "format": "datetime"},
"deletedAt": {"type": "string", "format": "datetime"},
},
},
"reporterStats": {
"type": "object",
"required": [
"did",
"accountReportCount",
"recordReportCount",
"reportedAccountCount",
"reportedRecordCount",
"takendownAccountCount",
"takendownRecordCount",
"labeledAccountCount",
"labeledRecordCount",
],
"properties": {
"did": {"type": "string", "format": "did"},
"accountReportCount": {
"type": "integer",
"description":
"The total number of reports made by the user on accounts.",
},
"recordReportCount": {
"type": "integer",
"description":
"The total number of reports made by the user on records.",
},
"reportedAccountCount": {
"type": "integer",
"description": "The total number of accounts reported by the user.",
},
"reportedRecordCount": {
"type": "integer",
"description": "The total number of records reported by the user.",
},
"takendownAccountCount": {
"type": "integer",
"description":
"The total number of accounts taken down as a result of the user's reports.",
},
"takendownRecordCount": {
"type": "integer",
"description":
"The total number of records taken down as a result of the user's reports.",
},
"labeledAccountCount": {
"type": "integer",
"description":
"The total number of accounts labeled as a result of the user's reports.",
},
"labeledRecordCount": {
"type": "integer",
"description":
"The total number of records labeled as a result of the user's reports.",
},
},
},
"modTool": {
"type": "object",
"description":
"Moderation tool information for tracing the source of the action",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description":
"Name/identifier of the source (e.g., 'automod', 'ozone/workspace')",
},
"meta": {
"type": "unknown",
"description": "Additional arbitrary metadata about the source",
},
},
},
"timelineEventPlcCreate": {
"type": "token",
"description":
"Moderation event timeline event for a PLC create operation",
},
"timelineEventPlcOperation": {
"type": "token",
"description":
"Moderation event timeline event for generic PLC operation",
},
"timelineEventPlcTombstone": {
"type": "token",
"description":
"Moderation event timeline event for a PLC tombstone operation",
},
},
};