#![allow(clippy::pedantic, clippy::nursery, clippy::all)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountEvent {
pub active: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
pub timestamp: proto_blue_syntax::Datetime,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountHosting {
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deactivated_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deleted_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reactivated_at: Option<proto_blue_syntax::Datetime>,
pub status: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_at: Option<proto_blue_syntax::Datetime>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountStats {
#[serde(skip_serializing_if = "Option::is_none")]
pub appeal_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub escalate_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub report_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub suspend_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub takedown_count: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountStrike {
#[serde(skip_serializing_if = "Option::is_none")]
pub active_strike_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_strike_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_strike_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_strike_count: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AgeAssuranceEvent {
#[serde(skip_serializing_if = "Option::is_none")]
pub access: Option<crate::app::bsky::ageassurance::defs::Access>,
pub attempt_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub complete_ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub complete_ua: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub country_code: Option<String>,
pub created_at: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub init_ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub init_ua: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub region_code: Option<String>,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AgeAssuranceOverrideEvent {
#[serde(skip_serializing_if = "Option::is_none")]
pub access: Option<crate::app::bsky::ageassurance::defs::Access>,
pub comment: String,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum BlobViewDetailsRefs {
#[serde(rename = "tools.ozone.moderation.defs#imageDetails")]
OzoneModerationDefsImageDetails(Box<ImageDetails>),
#[serde(rename = "tools.ozone.moderation.defs#videoDetails")]
OzoneModerationDefsVideoDetails(Box<VideoDetails>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BlobView {
pub cid: String,
pub created_at: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<BlobViewDetailsRefs>,
pub mime_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub moderation: Option<Moderation>,
pub size: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CancelScheduledTakedownEvent {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct IdentityEvent {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub handle: Option<proto_blue_syntax::Handle>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pds_host: Option<String>,
pub timestamp: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub tombstone: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ImageDetails {
pub height: i64,
pub width: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventAcknowledge {
#[serde(skip_serializing_if = "Option::is_none")]
pub acknowledge_account_subjects: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventComment {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sticky: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventDivert {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventEmail {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_delivered: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub policies: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub severity_level: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strike_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strike_expires_at: Option<proto_blue_syntax::Datetime>,
pub subject_line: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventEscalate {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventLabel {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub create_label_vals: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration_in_hours: Option<i64>,
pub negate_label_vals: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventMute {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub duration_in_hours: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventMuteReporter {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration_in_hours: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventPriorityScore {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub score: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventReport {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_reporter_muted: Option<bool>,
pub report_type: crate::com::atproto::moderation::defs::ReasonType,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventResolveAppeal {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventReverseTakedown {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub policies: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub severity_level: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strike_count: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventTag {
pub add: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub remove: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventTakedown {
#[serde(skip_serializing_if = "Option::is_none")]
pub acknowledge_account_subjects: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration_in_hours: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub policies: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub severity_level: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strike_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strike_expires_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub target_services: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventUnmute {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventUnmuteReporter {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum ModEventViewEventRefs {
#[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")]
OzoneModerationDefsModEventTakedown(Box<ModEventTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")]
OzoneModerationDefsModEventReverseTakedown(Box<ModEventReverseTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventComment")]
OzoneModerationDefsModEventComment(Box<ModEventComment>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReport")]
OzoneModerationDefsModEventReport(Box<ModEventReport>),
#[serde(rename = "tools.ozone.moderation.defs#modEventLabel")]
OzoneModerationDefsModEventLabel(Box<ModEventLabel>),
#[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")]
OzoneModerationDefsModEventAcknowledge(Box<ModEventAcknowledge>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")]
OzoneModerationDefsModEventEscalate(Box<ModEventEscalate>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMute")]
OzoneModerationDefsModEventMute(Box<ModEventMute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")]
OzoneModerationDefsModEventUnmute(Box<ModEventUnmute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")]
OzoneModerationDefsModEventMuteReporter(Box<ModEventMuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")]
OzoneModerationDefsModEventUnmuteReporter(Box<ModEventUnmuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEmail")]
OzoneModerationDefsModEventEmail(Box<ModEventEmail>),
#[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")]
OzoneModerationDefsModEventResolveAppeal(Box<ModEventResolveAppeal>),
#[serde(rename = "tools.ozone.moderation.defs#modEventDivert")]
OzoneModerationDefsModEventDivert(Box<ModEventDivert>),
#[serde(rename = "tools.ozone.moderation.defs#modEventTag")]
OzoneModerationDefsModEventTag(Box<ModEventTag>),
#[serde(rename = "tools.ozone.moderation.defs#accountEvent")]
OzoneModerationDefsAccountEvent(Box<AccountEvent>),
#[serde(rename = "tools.ozone.moderation.defs#identityEvent")]
OzoneModerationDefsIdentityEvent(Box<IdentityEvent>),
#[serde(rename = "tools.ozone.moderation.defs#recordEvent")]
OzoneModerationDefsRecordEvent(Box<RecordEvent>),
#[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")]
OzoneModerationDefsModEventPriorityScore(Box<ModEventPriorityScore>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")]
OzoneModerationDefsAgeAssuranceEvent(Box<AgeAssuranceEvent>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")]
OzoneModerationDefsAgeAssuranceOverrideEvent(Box<AgeAssuranceOverrideEvent>),
#[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")]
OzoneModerationDefsRevokeAccountCredentialsEvent(Box<RevokeAccountCredentialsEvent>),
#[serde(rename = "tools.ozone.moderation.defs#scheduleTakedownEvent")]
OzoneModerationDefsScheduleTakedownEvent(Box<ScheduleTakedownEvent>),
#[serde(rename = "tools.ozone.moderation.defs#cancelScheduledTakedownEvent")]
OzoneModerationDefsCancelScheduledTakedownEvent(Box<CancelScheduledTakedownEvent>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum ModEventViewSubjectRefs {
#[serde(rename = "com.atproto.admin.defs#repoRef")]
AtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>),
#[serde(rename = "com.atproto.repo.strongRef")]
AtprotoRepoStrongRef(Box<crate::com::atproto::repo::strong_ref::Main>),
#[serde(rename = "chat.bsky.convo.defs#messageRef")]
BskyConvoDefsMessageRef(Box<crate::chat::bsky::convo::defs::MessageRef>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventView {
pub created_at: proto_blue_syntax::Datetime,
pub created_by: proto_blue_syntax::Did,
#[serde(skip_serializing_if = "Option::is_none")]
pub creator_handle: Option<String>,
pub event: ModEventViewEventRefs,
pub id: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub mod_tool: Option<ModTool>,
pub subject: ModEventViewSubjectRefs,
pub subject_blob_cids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subject_handle: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum ModEventViewDetailEventRefs {
#[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")]
OzoneModerationDefsModEventTakedown(Box<ModEventTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")]
OzoneModerationDefsModEventReverseTakedown(Box<ModEventReverseTakedown>),
#[serde(rename = "tools.ozone.moderation.defs#modEventComment")]
OzoneModerationDefsModEventComment(Box<ModEventComment>),
#[serde(rename = "tools.ozone.moderation.defs#modEventReport")]
OzoneModerationDefsModEventReport(Box<ModEventReport>),
#[serde(rename = "tools.ozone.moderation.defs#modEventLabel")]
OzoneModerationDefsModEventLabel(Box<ModEventLabel>),
#[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")]
OzoneModerationDefsModEventAcknowledge(Box<ModEventAcknowledge>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")]
OzoneModerationDefsModEventEscalate(Box<ModEventEscalate>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMute")]
OzoneModerationDefsModEventMute(Box<ModEventMute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")]
OzoneModerationDefsModEventUnmute(Box<ModEventUnmute>),
#[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")]
OzoneModerationDefsModEventMuteReporter(Box<ModEventMuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")]
OzoneModerationDefsModEventUnmuteReporter(Box<ModEventUnmuteReporter>),
#[serde(rename = "tools.ozone.moderation.defs#modEventEmail")]
OzoneModerationDefsModEventEmail(Box<ModEventEmail>),
#[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")]
OzoneModerationDefsModEventResolveAppeal(Box<ModEventResolveAppeal>),
#[serde(rename = "tools.ozone.moderation.defs#modEventDivert")]
OzoneModerationDefsModEventDivert(Box<ModEventDivert>),
#[serde(rename = "tools.ozone.moderation.defs#modEventTag")]
OzoneModerationDefsModEventTag(Box<ModEventTag>),
#[serde(rename = "tools.ozone.moderation.defs#accountEvent")]
OzoneModerationDefsAccountEvent(Box<AccountEvent>),
#[serde(rename = "tools.ozone.moderation.defs#identityEvent")]
OzoneModerationDefsIdentityEvent(Box<IdentityEvent>),
#[serde(rename = "tools.ozone.moderation.defs#recordEvent")]
OzoneModerationDefsRecordEvent(Box<RecordEvent>),
#[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")]
OzoneModerationDefsModEventPriorityScore(Box<ModEventPriorityScore>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")]
OzoneModerationDefsAgeAssuranceEvent(Box<AgeAssuranceEvent>),
#[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")]
OzoneModerationDefsAgeAssuranceOverrideEvent(Box<AgeAssuranceOverrideEvent>),
#[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")]
OzoneModerationDefsRevokeAccountCredentialsEvent(Box<RevokeAccountCredentialsEvent>),
#[serde(rename = "tools.ozone.moderation.defs#scheduleTakedownEvent")]
OzoneModerationDefsScheduleTakedownEvent(Box<ScheduleTakedownEvent>),
#[serde(rename = "tools.ozone.moderation.defs#cancelScheduledTakedownEvent")]
OzoneModerationDefsCancelScheduledTakedownEvent(Box<CancelScheduledTakedownEvent>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum ModEventViewDetailSubjectRefs {
#[serde(rename = "tools.ozone.moderation.defs#repoView")]
OzoneModerationDefsRepoView(Box<RepoView>),
#[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")]
OzoneModerationDefsRepoViewNotFound(Box<RepoViewNotFound>),
#[serde(rename = "tools.ozone.moderation.defs#recordView")]
OzoneModerationDefsRecordView(Box<RecordView>),
#[serde(rename = "tools.ozone.moderation.defs#recordViewNotFound")]
OzoneModerationDefsRecordViewNotFound(Box<RecordViewNotFound>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModEventViewDetail {
pub created_at: proto_blue_syntax::Datetime,
pub created_by: proto_blue_syntax::Did,
pub event: ModEventViewDetailEventRefs,
pub id: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub mod_tool: Option<ModTool>,
pub subject: ModEventViewDetailSubjectRefs,
pub subject_blobs: Vec<BlobView>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModTool {
#[serde(skip_serializing_if = "Option::is_none")]
pub meta: Option<serde_json::Value>,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Moderation {
#[serde(skip_serializing_if = "Option::is_none")]
pub subject_status: Option<SubjectStatusView>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModerationDetail {
#[serde(skip_serializing_if = "Option::is_none")]
pub subject_status: Option<SubjectStatusView>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecordEvent {
#[serde(skip_serializing_if = "Option::is_none")]
pub cid: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub op: String,
pub timestamp: proto_blue_syntax::Datetime,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecordHosting {
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deleted_at: Option<proto_blue_syntax::Datetime>,
pub status: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_at: Option<proto_blue_syntax::Datetime>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecordView {
pub blob_cids: Vec<String>,
pub cid: String,
pub indexed_at: proto_blue_syntax::Datetime,
pub moderation: Moderation,
pub repo: RepoView,
pub uri: proto_blue_syntax::AtUri,
pub value: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecordViewDetail {
pub blobs: Vec<BlobView>,
pub cid: String,
pub indexed_at: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
pub moderation: ModerationDetail,
pub repo: RepoView,
pub uri: proto_blue_syntax::AtUri,
pub value: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecordViewNotFound {
pub uri: proto_blue_syntax::AtUri,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecordsStats {
#[serde(skip_serializing_if = "Option::is_none")]
pub appealed_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub escalated_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pending_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub processed_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reported_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subject_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub takendown_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_reports: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RepoView {
#[serde(skip_serializing_if = "Option::is_none")]
pub deactivated_at: Option<proto_blue_syntax::Datetime>,
pub did: proto_blue_syntax::Did,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
pub handle: proto_blue_syntax::Handle,
pub indexed_at: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub invite_note: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub invited_by: Option<crate::com::atproto::server::defs::InviteCode>,
#[serde(skip_serializing_if = "Option::is_none")]
pub invites_disabled: Option<bool>,
pub moderation: Moderation,
pub related_records: Vec<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub threat_signatures: Option<Vec<crate::com::atproto::admin::defs::ThreatSignature>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RepoViewDetail {
#[serde(skip_serializing_if = "Option::is_none")]
pub deactivated_at: Option<proto_blue_syntax::Datetime>,
pub did: proto_blue_syntax::Did,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email_confirmed_at: Option<proto_blue_syntax::Datetime>,
pub handle: proto_blue_syntax::Handle,
pub indexed_at: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub invite_note: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub invited_by: Option<crate::com::atproto::server::defs::InviteCode>,
#[serde(skip_serializing_if = "Option::is_none")]
pub invites: Option<Vec<crate::com::atproto::server::defs::InviteCode>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub invites_disabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
pub moderation: ModerationDetail,
pub related_records: Vec<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub threat_signatures: Option<Vec<crate::com::atproto::admin::defs::ThreatSignature>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RepoViewNotFound {
pub did: proto_blue_syntax::Did,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReporterStats {
pub account_report_count: i64,
pub did: proto_blue_syntax::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 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(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RevokeAccountCredentialsEvent {
pub comment: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ScheduleTakedownEvent {
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_after: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_until: Option<proto_blue_syntax::Datetime>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ScheduledActionView {
pub action: String,
pub created_at: proto_blue_syntax::Datetime,
pub created_by: proto_blue_syntax::Did,
pub did: proto_blue_syntax::Did,
#[serde(skip_serializing_if = "Option::is_none")]
pub event_data: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_after: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execute_until: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_event_id: Option<i64>,
pub id: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_executed_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_failure_reason: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub randomize_execution: Option<bool>,
pub status: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_at: Option<proto_blue_syntax::Datetime>,
}
pub type SubjectReviewState = String;
pub const SUBJECT_REVIEW_STATE_REVIEW_OPEN: &str = "tools.ozone.moderation.defs#reviewOpen";
pub const SUBJECT_REVIEW_STATE_REVIEW_ESCALATED: &str =
"tools.ozone.moderation.defs#reviewEscalated";
pub const SUBJECT_REVIEW_STATE_REVIEW_CLOSED: &str = "tools.ozone.moderation.defs#reviewClosed";
pub const SUBJECT_REVIEW_STATE_REVIEW_NONE: &str = "tools.ozone.moderation.defs#reviewNone";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum SubjectStatusViewHostingRefs {
#[serde(rename = "tools.ozone.moderation.defs#accountHosting")]
OzoneModerationDefsAccountHosting(Box<AccountHosting>),
#[serde(rename = "tools.ozone.moderation.defs#recordHosting")]
OzoneModerationDefsRecordHosting(Box<RecordHosting>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum SubjectStatusViewSubjectRefs {
#[serde(rename = "com.atproto.admin.defs#repoRef")]
AtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>),
#[serde(rename = "com.atproto.repo.strongRef")]
AtprotoRepoStrongRef(Box<crate::com::atproto::repo::strong_ref::Main>),
#[serde(rename = "chat.bsky.convo.defs#messageRef")]
BskyConvoDefsMessageRef(Box<crate::chat::bsky::convo::defs::MessageRef>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubjectStatusView {
#[serde(skip_serializing_if = "Option::is_none")]
pub account_stats: Option<AccountStats>,
#[serde(skip_serializing_if = "Option::is_none")]
pub account_strike: Option<AccountStrike>,
#[serde(skip_serializing_if = "Option::is_none")]
pub age_assurance_state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub age_assurance_updated_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub appealed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub created_at: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub hosting: Option<SubjectStatusViewHostingRefs>,
pub id: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_appealed_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_reported_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_reviewed_at: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_reviewed_by: Option<proto_blue_syntax::Did>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mute_reporting_until: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mute_until: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority_score: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub records_stats: Option<RecordsStats>,
pub review_state: SubjectReviewState,
pub subject: SubjectStatusViewSubjectRefs,
#[serde(skip_serializing_if = "Option::is_none")]
pub subject_blob_cids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subject_repo_handle: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub suspend_until: Option<proto_blue_syntax::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub takendown: Option<bool>,
pub updated_at: proto_blue_syntax::Datetime,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum SubjectViewProfileRefs {
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SubjectView {
#[serde(skip_serializing_if = "Option::is_none")]
pub profile: Option<SubjectViewProfileRefs>,
#[serde(skip_serializing_if = "Option::is_none")]
pub record: Option<RecordViewDetail>,
#[serde(skip_serializing_if = "Option::is_none")]
pub repo: Option<RepoViewDetail>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<SubjectStatusView>,
pub subject: String,
#[serde(rename = "type")]
pub r#type: crate::com::atproto::moderation::defs::SubjectType,
}
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(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VideoDetails {
pub height: i64,
pub length: i64,
pub width: i64,
}