#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct AccountEventData {
pub active: bool,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub status: core::option::Option<String>,
pub timestamp: crate::types::string::Datetime,
}
pub type AccountEvent = crate::types::Object<AccountEventData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct AccountHostingData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub created_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub deactivated_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub deleted_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub reactivated_at: core::option::Option<crate::types::string::Datetime>,
pub status: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub updated_at: core::option::Option<crate::types::string::Datetime>,
}
pub type AccountHosting = crate::types::Object<AccountHostingData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct AccountStatsData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub appeal_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub escalate_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub report_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub suspend_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub takedown_count: core::option::Option<i64>,
}
pub type AccountStats = crate::types::Object<AccountStatsData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct AgeAssuranceEventData {
pub attempt_id: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub complete_ip: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub complete_ua: core::option::Option<String>,
pub created_at: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub init_ip: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub init_ua: core::option::Option<String>,
pub status: String,
}
pub type AgeAssuranceEvent = crate::types::Object<AgeAssuranceEventData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct AgeAssuranceOverrideEventData {
pub comment: String,
pub status: String,
}
pub type AgeAssuranceOverrideEvent = crate::types::Object<AgeAssuranceOverrideEventData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct BlobViewData {
pub cid: crate::types::string::Cid,
pub created_at: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub details: core::option::Option<crate::types::Union<BlobViewDetailsRefs>>,
pub mime_type: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub moderation: core::option::Option<Moderation>,
pub size: i64,
}
pub type BlobView = crate::types::Object<BlobViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct IdentityEventData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub handle: core::option::Option<crate::types::string::Handle>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub pds_host: core::option::Option<String>,
pub timestamp: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub tombstone: core::option::Option<bool>,
}
pub type IdentityEvent = crate::types::Object<IdentityEventData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ImageDetailsData {
pub height: i64,
pub width: i64,
}
pub type ImageDetails = crate::types::Object<ImageDetailsData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventAcknowledgeData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub acknowledge_account_subjects: core::option::Option<bool>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
}
pub type ModEventAcknowledge = crate::types::Object<ModEventAcknowledgeData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventCommentData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub sticky: core::option::Option<bool>,
}
pub type ModEventComment = crate::types::Object<ModEventCommentData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventDivertData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
}
pub type ModEventDivert = crate::types::Object<ModEventDivertData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventEmailData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub content: core::option::Option<String>,
pub subject_line: String,
}
pub type ModEventEmail = crate::types::Object<ModEventEmailData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventEscalateData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
}
pub type ModEventEscalate = crate::types::Object<ModEventEscalateData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventLabelData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
pub create_label_vals: Vec<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub duration_in_hours: core::option::Option<i64>,
pub negate_label_vals: Vec<String>,
}
pub type ModEventLabel = crate::types::Object<ModEventLabelData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventMuteData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
pub duration_in_hours: i64,
}
pub type ModEventMute = crate::types::Object<ModEventMuteData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventMuteReporterData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub duration_in_hours: core::option::Option<i64>,
}
pub type ModEventMuteReporter = crate::types::Object<ModEventMuteReporterData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventPriorityScoreData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
pub score: crate::types::LimitedU8<100u8>,
}
pub type ModEventPriorityScore = crate::types::Object<ModEventPriorityScoreData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventReportData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub is_reporter_muted: core::option::Option<bool>,
pub report_type: crate::com::atproto::moderation::defs::ReasonType,
}
pub type ModEventReport = crate::types::Object<ModEventReportData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventResolveAppealData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
}
pub type ModEventResolveAppeal = crate::types::Object<ModEventResolveAppealData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventReverseTakedownData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
}
pub type ModEventReverseTakedown = crate::types::Object<ModEventReverseTakedownData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventTagData {
pub add: Vec<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
pub remove: Vec<String>,
}
pub type ModEventTag = crate::types::Object<ModEventTagData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventTakedownData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub acknowledge_account_subjects: core::option::Option<bool>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub duration_in_hours: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub policies: core::option::Option<Vec<String>>,
}
pub type ModEventTakedown = crate::types::Object<ModEventTakedownData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventUnmuteData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
}
pub type ModEventUnmute = crate::types::Object<ModEventUnmuteData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventUnmuteReporterData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
}
pub type ModEventUnmuteReporter = crate::types::Object<ModEventUnmuteReporterData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventViewData {
pub created_at: crate::types::string::Datetime,
pub created_by: crate::types::string::Did,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub creator_handle: core::option::Option<String>,
pub event: crate::types::Union<ModEventViewEventRefs>,
pub id: i64,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub mod_tool: core::option::Option<ModTool>,
pub subject: crate::types::Union<ModEventViewSubjectRefs>,
pub subject_blob_cids: Vec<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub subject_handle: core::option::Option<String>,
}
pub type ModEventView = crate::types::Object<ModEventViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModEventViewDetailData {
pub created_at: crate::types::string::Datetime,
pub created_by: crate::types::string::Did,
pub event: crate::types::Union<ModEventViewDetailEventRefs>,
pub id: i64,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub mod_tool: core::option::Option<ModTool>,
pub subject: crate::types::Union<ModEventViewDetailSubjectRefs>,
pub subject_blobs: Vec<BlobView>,
}
pub type ModEventViewDetail = crate::types::Object<ModEventViewDetailData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModToolData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub meta: core::option::Option<crate::types::Unknown>,
pub name: String,
}
pub type ModTool = crate::types::Object<ModToolData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModerationData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub subject_status: core::option::Option<SubjectStatusView>,
}
pub type Moderation = crate::types::Object<ModerationData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ModerationDetailData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub subject_status: core::option::Option<SubjectStatusView>,
}
pub type ModerationDetail = crate::types::Object<ModerationDetailData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RecordEventData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub cid: core::option::Option<crate::types::string::Cid>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
pub op: String,
pub timestamp: crate::types::string::Datetime,
}
pub type RecordEvent = crate::types::Object<RecordEventData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RecordHostingData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub created_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub deleted_at: core::option::Option<crate::types::string::Datetime>,
pub status: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub updated_at: core::option::Option<crate::types::string::Datetime>,
}
pub type RecordHosting = crate::types::Object<RecordHostingData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RecordViewData {
pub blob_cids: Vec<crate::types::string::Cid>,
pub cid: crate::types::string::Cid,
pub indexed_at: crate::types::string::Datetime,
pub moderation: Moderation,
pub repo: RepoView,
pub uri: String,
pub value: crate::types::Unknown,
}
pub type RecordView = crate::types::Object<RecordViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RecordViewDetailData {
pub blobs: Vec<BlobView>,
pub cid: crate::types::string::Cid,
pub indexed_at: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
pub moderation: ModerationDetail,
pub repo: RepoView,
pub uri: String,
pub value: crate::types::Unknown,
}
pub type RecordViewDetail = crate::types::Object<RecordViewDetailData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RecordViewNotFoundData {
pub uri: String,
}
pub type RecordViewNotFound = crate::types::Object<RecordViewNotFoundData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RecordsStatsData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub appealed_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub escalated_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub pending_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub processed_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub reported_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub subject_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub takendown_count: core::option::Option<i64>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub total_reports: core::option::Option<i64>,
}
pub type RecordsStats = crate::types::Object<RecordsStatsData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RepoViewData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub deactivated_at: core::option::Option<crate::types::string::Datetime>,
pub did: crate::types::string::Did,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub email: core::option::Option<String>,
pub handle: crate::types::string::Handle,
pub indexed_at: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub invite_note: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub invited_by: core::option::Option<crate::com::atproto::server::defs::InviteCode>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub invites_disabled: core::option::Option<bool>,
pub moderation: Moderation,
pub related_records: Vec<crate::types::Unknown>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub threat_signatures:
core::option::Option<Vec<crate::com::atproto::admin::defs::ThreatSignature>>,
}
pub type RepoView = crate::types::Object<RepoViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RepoViewDetailData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub deactivated_at: core::option::Option<crate::types::string::Datetime>,
pub did: crate::types::string::Did,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub email: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub email_confirmed_at: core::option::Option<crate::types::string::Datetime>,
pub handle: crate::types::string::Handle,
pub indexed_at: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub invite_note: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub invited_by: core::option::Option<crate::com::atproto::server::defs::InviteCode>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub invites: core::option::Option<Vec<crate::com::atproto::server::defs::InviteCode>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub invites_disabled: core::option::Option<bool>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
pub moderation: ModerationDetail,
pub related_records: Vec<crate::types::Unknown>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub threat_signatures:
core::option::Option<Vec<crate::com::atproto::admin::defs::ThreatSignature>>,
}
pub type RepoViewDetail = crate::types::Object<RepoViewDetailData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RepoViewNotFoundData {
pub did: crate::types::string::Did,
}
pub type RepoViewNotFound = crate::types::Object<RepoViewNotFoundData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ReporterStatsData {
pub account_report_count: i64,
pub did: crate::types::string::Did,
pub labeled_account_count: i64,
pub labeled_record_count: i64,
pub record_report_count: i64,
pub reported_account_count: i64,
pub reported_record_count: i64,
pub takendown_account_count: i64,
pub takendown_record_count: i64,
}
pub type ReporterStats = crate::types::Object<ReporterStatsData>;
pub const REVIEW_CLOSED: &str = "tools.ozone.moderation.defs#reviewClosed";
pub const REVIEW_ESCALATED: &str = "tools.ozone.moderation.defs#reviewEscalated";
pub const REVIEW_NONE: &str = "tools.ozone.moderation.defs#reviewNone";
pub const REVIEW_OPEN: &str = "tools.ozone.moderation.defs#reviewOpen";
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct RevokeAccountCredentialsEventData {
pub comment: String,
}
pub type RevokeAccountCredentialsEvent = crate::types::Object<RevokeAccountCredentialsEventData>;
pub type SubjectReviewState = String;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct SubjectStatusViewData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub account_stats: core::option::Option<AccountStats>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub age_assurance_state: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub age_assurance_updated_by: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub appealed: core::option::Option<bool>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub comment: core::option::Option<String>,
pub created_at: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub hosting: core::option::Option<crate::types::Union<SubjectStatusViewHostingRefs>>,
pub id: i64,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub last_appealed_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub last_reported_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub last_reviewed_at: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub last_reviewed_by: core::option::Option<crate::types::string::Did>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub mute_reporting_until: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub mute_until: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub priority_score: core::option::Option<crate::types::LimitedU8<100u8>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub records_stats: core::option::Option<RecordsStats>,
pub review_state: SubjectReviewState,
pub subject: crate::types::Union<SubjectStatusViewSubjectRefs>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub subject_blob_cids: core::option::Option<Vec<crate::types::string::Cid>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub subject_repo_handle: core::option::Option<String>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub suspend_until: core::option::Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub tags: core::option::Option<Vec<String>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub takendown: core::option::Option<bool>,
pub updated_at: crate::types::string::Datetime,
}
pub type SubjectStatusView = crate::types::Object<SubjectStatusViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct SubjectViewData {
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub profile: core::option::Option<crate::types::Union<SubjectViewProfileRefs>>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub record: core::option::Option<RecordViewDetail>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub repo: core::option::Option<RepoViewDetail>,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub status: core::option::Option<SubjectStatusView>,
pub subject: String,
pub r#type: crate::com::atproto::moderation::defs::SubjectType,
}
pub type SubjectView = crate::types::Object<SubjectViewData>;
pub const TIMELINE_EVENT_PLC_CREATE: &str = "tools.ozone.moderation.defs#timelineEventPlcCreate";
pub const TIMELINE_EVENT_PLC_OPERATION: &str =
"tools.ozone.moderation.defs#timelineEventPlcOperation";
pub const TIMELINE_EVENT_PLC_TOMBSTONE: &str =
"tools.ozone.moderation.defs#timelineEventPlcTombstone";
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct VideoDetailsData {
pub height: i64,
pub length: i64,
pub width: i64,
}
pub type VideoDetails = crate::types::Object<VideoDetailsData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum BlobViewDetailsRefs {
#[serde(rename = "tools.ozone.moderation.defs#imageDetails")]
ImageDetails(Box<ImageDetails>),
#[serde(rename = "tools.ozone.moderation.defs#videoDetails")]
VideoDetails(Box<VideoDetails>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum ModEventViewDetailEventRefs {
#[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")]
ModEventTakedown(Box<ModEventTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")]
ModEventReverseTakedown(Box<ModEventReverseTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventComment")]
ModEventComment(Box<ModEventComment>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReport")]
ModEventReport(Box<ModEventReport>),
#[serde(rename = "tools.ozone.moderation.defs#modEventLabel")]
ModEventLabel(Box<ModEventLabel>),
#[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")]
ModEventAcknowledge(Box<ModEventAcknowledge>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")]
ModEventEscalate(Box<ModEventEscalate>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMute")]
ModEventMute(Box<ModEventMute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")]
ModEventUnmute(Box<ModEventUnmute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")]
ModEventMuteReporter(Box<ModEventMuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")]
ModEventUnmuteReporter(Box<ModEventUnmuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEmail")]
ModEventEmail(Box<ModEventEmail>),
#[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")]
ModEventResolveAppeal(Box<ModEventResolveAppeal>),
#[serde(rename = "tools.ozone.moderation.defs#modEventDivert")]
ModEventDivert(Box<ModEventDivert>),
#[serde(rename = "tools.ozone.moderation.defs#modEventTag")]
ModEventTag(Box<ModEventTag>),
#[serde(rename = "tools.ozone.moderation.defs#accountEvent")]
AccountEvent(Box<AccountEvent>),
#[serde(rename = "tools.ozone.moderation.defs#identityEvent")]
IdentityEvent(Box<IdentityEvent>),
#[serde(rename = "tools.ozone.moderation.defs#recordEvent")]
RecordEvent(Box<RecordEvent>),
#[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")]
ModEventPriorityScore(Box<ModEventPriorityScore>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")]
AgeAssuranceEvent(Box<AgeAssuranceEvent>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")]
AgeAssuranceOverrideEvent(Box<AgeAssuranceOverrideEvent>),
#[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")]
RevokeAccountCredentialsEvent(Box<RevokeAccountCredentialsEvent>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum ModEventViewDetailSubjectRefs {
#[serde(rename = "tools.ozone.moderation.defs#repoView")]
RepoView(Box<RepoView>),
#[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")]
RepoViewNotFound(Box<RepoViewNotFound>),
#[serde(rename = "tools.ozone.moderation.defs#recordView")]
RecordView(Box<RecordView>),
#[serde(rename = "tools.ozone.moderation.defs#recordViewNotFound")]
RecordViewNotFound(Box<RecordViewNotFound>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum ModEventViewEventRefs {
#[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")]
ModEventTakedown(Box<ModEventTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")]
ModEventReverseTakedown(Box<ModEventReverseTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventComment")]
ModEventComment(Box<ModEventComment>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReport")]
ModEventReport(Box<ModEventReport>),
#[serde(rename = "tools.ozone.moderation.defs#modEventLabel")]
ModEventLabel(Box<ModEventLabel>),
#[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")]
ModEventAcknowledge(Box<ModEventAcknowledge>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")]
ModEventEscalate(Box<ModEventEscalate>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMute")]
ModEventMute(Box<ModEventMute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")]
ModEventUnmute(Box<ModEventUnmute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")]
ModEventMuteReporter(Box<ModEventMuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")]
ModEventUnmuteReporter(Box<ModEventUnmuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEmail")]
ModEventEmail(Box<ModEventEmail>),
#[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")]
ModEventResolveAppeal(Box<ModEventResolveAppeal>),
#[serde(rename = "tools.ozone.moderation.defs#modEventDivert")]
ModEventDivert(Box<ModEventDivert>),
#[serde(rename = "tools.ozone.moderation.defs#modEventTag")]
ModEventTag(Box<ModEventTag>),
#[serde(rename = "tools.ozone.moderation.defs#accountEvent")]
AccountEvent(Box<AccountEvent>),
#[serde(rename = "tools.ozone.moderation.defs#identityEvent")]
IdentityEvent(Box<IdentityEvent>),
#[serde(rename = "tools.ozone.moderation.defs#recordEvent")]
RecordEvent(Box<RecordEvent>),
#[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")]
ModEventPriorityScore(Box<ModEventPriorityScore>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")]
AgeAssuranceEvent(Box<AgeAssuranceEvent>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")]
AgeAssuranceOverrideEvent(Box<AgeAssuranceOverrideEvent>),
#[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")]
RevokeAccountCredentialsEvent(Box<RevokeAccountCredentialsEvent>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum ModEventViewSubjectRefs {
#[serde(rename = "com.atproto.admin.defs#repoRef")]
ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>),
#[serde(rename = "com.atproto.repo.strongRef")]
ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>),
#[serde(rename = "chat.bsky.convo.defs#messageRef")]
ChatBskyConvoDefsMessageRef(Box<crate::chat::bsky::convo::defs::MessageRef>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum SubjectStatusViewHostingRefs {
#[serde(rename = "tools.ozone.moderation.defs#accountHosting")]
AccountHosting(Box<AccountHosting>),
#[serde(rename = "tools.ozone.moderation.defs#recordHosting")]
RecordHosting(Box<RecordHosting>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum SubjectStatusViewSubjectRefs {
#[serde(rename = "com.atproto.admin.defs#repoRef")]
ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>),
#[serde(rename = "com.atproto.repo.strongRef")]
ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>),
#[serde(rename = "chat.bsky.convo.defs#messageRef")]
ChatBskyConvoDefsMessageRef(Box<crate::chat::bsky::convo::defs::MessageRef>),
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum SubjectViewProfileRefs {}