toolsOzoneModerationDefs top-level constant

Map<String, dynamic> const toolsOzoneModerationDefs

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"
          ]
        },
        "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"}
      }
    },
    "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"
          ]
        },
        "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"}
      }
    },
    "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"
          ]
        },
        "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."
        },
        "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"}
        }
      }
    },
    "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."
        }
      }
    },
    "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",
      "required": ["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"}
        }
      }
    },
    "modEventAcknowledge": {
      "type": "object",
      "properties": {
        "comment": {"type": "string"}
      }
    },
    "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",
      "required": ["durationInHours"],
      "properties": {
        "comment": {"type": "string"},
        "durationInHours": {
          "type": "integer",
          "description": "Indicates how long the account should remain muted."
        }
      }
    },
    "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."
        }
      }
    },
    "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"}
      }
    },
    "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"}
      }
    },
    "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"}
      }
    }
  }
};