Skip to main content

atrium_api/tools/ozone/moderation/
emit_event.rs

1// @generated - This file is generated by atrium-codegen. DO NOT EDIT.
2//!Definitions for the `tools.ozone.moderation.emitEvent` namespace.
3pub const NSID: &str = "tools.ozone.moderation.emitEvent";
4#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
5#[serde(rename_all = "camelCase")]
6pub struct InputData {
7    pub created_by: crate::types::string::Did,
8    pub event: crate::types::Union<InputEventRefs>,
9    ///An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject.
10    #[serde(skip_serializing_if = "core::option::Option::is_none")]
11    pub external_id: core::option::Option<String>,
12    #[serde(skip_serializing_if = "core::option::Option::is_none")]
13    pub mod_tool: core::option::Option<crate::tools::ozone::moderation::defs::ModTool>,
14    ///Optional report-level targeting. If provided, this event will be linked to specific reports and reporters may be notified.
15    #[serde(skip_serializing_if = "core::option::Option::is_none")]
16    pub report_action: core::option::Option<ReportAction>,
17    pub subject: crate::types::Union<InputSubjectRefs>,
18    #[serde(skip_serializing_if = "core::option::Option::is_none")]
19    pub subject_blob_cids: core::option::Option<Vec<crate::types::string::Cid>>,
20}
21pub type Input = crate::types::Object<InputData>;
22pub type Output = crate::tools::ozone::moderation::defs::ModEventView;
23#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
24#[serde(tag = "error", content = "message")]
25pub enum Error {
26    SubjectHasAction(Option<String>),
27    ///An event with the same external ID already exists for the subject.
28    DuplicateExternalId(Option<String>),
29}
30impl std::fmt::Display for Error {
31    fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result {
32        match self {
33            Error::SubjectHasAction(msg) => {
34                write!(_f, "SubjectHasAction")?;
35                if let Some(msg) = msg {
36                    write!(_f, ": {msg}")?;
37                }
38            }
39            Error::DuplicateExternalId(msg) => {
40                write!(_f, "DuplicateExternalId")?;
41                if let Some(msg) = msg {
42                    write!(_f, ": {msg}")?;
43                }
44            }
45        }
46        Ok(())
47    }
48}
49///Target specific reports when emitting a moderation event
50#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
51#[serde(rename_all = "camelCase")]
52pub struct ReportActionData {
53    ///Target ALL reports on the subject
54    #[serde(skip_serializing_if = "core::option::Option::is_none")]
55    pub all: core::option::Option<bool>,
56    ///Target specific report IDs
57    #[serde(skip_serializing_if = "core::option::Option::is_none")]
58    pub ids: core::option::Option<Vec<i64>>,
59    ///Note to send to reporter(s) when actioning their report
60    #[serde(skip_serializing_if = "core::option::Option::is_none")]
61    pub note: core::option::Option<String>,
62    ///Target reports matching these report types on the subject (fully qualified NSIDs)
63    #[serde(skip_serializing_if = "core::option::Option::is_none")]
64    pub types: core::option::Option<Vec<String>>,
65}
66pub type ReportAction = crate::types::Object<ReportActionData>;
67#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
68#[serde(tag = "$type")]
69pub enum InputEventRefs {
70    #[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")]
71    ToolsOzoneModerationDefsModEventTakedown(
72        Box<crate::tools::ozone::moderation::defs::ModEventTakedown>,
73    ),
74    #[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")]
75    ToolsOzoneModerationDefsModEventAcknowledge(
76        Box<crate::tools::ozone::moderation::defs::ModEventAcknowledge>,
77    ),
78    #[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")]
79    ToolsOzoneModerationDefsModEventEscalate(
80        Box<crate::tools::ozone::moderation::defs::ModEventEscalate>,
81    ),
82    #[serde(rename = "tools.ozone.moderation.defs#modEventComment")]
83    ToolsOzoneModerationDefsModEventComment(
84        Box<crate::tools::ozone::moderation::defs::ModEventComment>,
85    ),
86    #[serde(rename = "tools.ozone.moderation.defs#modEventLabel")]
87    ToolsOzoneModerationDefsModEventLabel(
88        Box<crate::tools::ozone::moderation::defs::ModEventLabel>,
89    ),
90    #[serde(rename = "tools.ozone.moderation.defs#modEventReport")]
91    ToolsOzoneModerationDefsModEventReport(
92        Box<crate::tools::ozone::moderation::defs::ModEventReport>,
93    ),
94    #[serde(rename = "tools.ozone.moderation.defs#modEventMute")]
95    ToolsOzoneModerationDefsModEventMute(
96        Box<crate::tools::ozone::moderation::defs::ModEventMute>,
97    ),
98    #[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")]
99    ToolsOzoneModerationDefsModEventUnmute(
100        Box<crate::tools::ozone::moderation::defs::ModEventUnmute>,
101    ),
102    #[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")]
103    ToolsOzoneModerationDefsModEventMuteReporter(
104        Box<crate::tools::ozone::moderation::defs::ModEventMuteReporter>,
105    ),
106    #[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")]
107    ToolsOzoneModerationDefsModEventUnmuteReporter(
108        Box<crate::tools::ozone::moderation::defs::ModEventUnmuteReporter>,
109    ),
110    #[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")]
111    ToolsOzoneModerationDefsModEventReverseTakedown(
112        Box<crate::tools::ozone::moderation::defs::ModEventReverseTakedown>,
113    ),
114    #[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")]
115    ToolsOzoneModerationDefsModEventResolveAppeal(
116        Box<crate::tools::ozone::moderation::defs::ModEventResolveAppeal>,
117    ),
118    #[serde(rename = "tools.ozone.moderation.defs#modEventEmail")]
119    ToolsOzoneModerationDefsModEventEmail(
120        Box<crate::tools::ozone::moderation::defs::ModEventEmail>,
121    ),
122    #[serde(rename = "tools.ozone.moderation.defs#modEventDivert")]
123    ToolsOzoneModerationDefsModEventDivert(
124        Box<crate::tools::ozone::moderation::defs::ModEventDivert>,
125    ),
126    #[serde(rename = "tools.ozone.moderation.defs#modEventTag")]
127    ToolsOzoneModerationDefsModEventTag(
128        Box<crate::tools::ozone::moderation::defs::ModEventTag>,
129    ),
130    #[serde(rename = "tools.ozone.moderation.defs#accountEvent")]
131    ToolsOzoneModerationDefsAccountEvent(
132        Box<crate::tools::ozone::moderation::defs::AccountEvent>,
133    ),
134    #[serde(rename = "tools.ozone.moderation.defs#identityEvent")]
135    ToolsOzoneModerationDefsIdentityEvent(
136        Box<crate::tools::ozone::moderation::defs::IdentityEvent>,
137    ),
138    #[serde(rename = "tools.ozone.moderation.defs#recordEvent")]
139    ToolsOzoneModerationDefsRecordEvent(
140        Box<crate::tools::ozone::moderation::defs::RecordEvent>,
141    ),
142    #[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")]
143    ToolsOzoneModerationDefsModEventPriorityScore(
144        Box<crate::tools::ozone::moderation::defs::ModEventPriorityScore>,
145    ),
146    #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")]
147    ToolsOzoneModerationDefsAgeAssuranceEvent(
148        Box<crate::tools::ozone::moderation::defs::AgeAssuranceEvent>,
149    ),
150    #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")]
151    ToolsOzoneModerationDefsAgeAssuranceOverrideEvent(
152        Box<crate::tools::ozone::moderation::defs::AgeAssuranceOverrideEvent>,
153    ),
154    #[serde(rename = "tools.ozone.moderation.defs#ageAssurancePurgeEvent")]
155    ToolsOzoneModerationDefsAgeAssurancePurgeEvent(
156        Box<crate::tools::ozone::moderation::defs::AgeAssurancePurgeEvent>,
157    ),
158    #[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")]
159    ToolsOzoneModerationDefsRevokeAccountCredentialsEvent(
160        Box<crate::tools::ozone::moderation::defs::RevokeAccountCredentialsEvent>,
161    ),
162    #[serde(rename = "tools.ozone.moderation.defs#scheduleTakedownEvent")]
163    ToolsOzoneModerationDefsScheduleTakedownEvent(
164        Box<crate::tools::ozone::moderation::defs::ScheduleTakedownEvent>,
165    ),
166    #[serde(rename = "tools.ozone.moderation.defs#cancelScheduledTakedownEvent")]
167    ToolsOzoneModerationDefsCancelScheduledTakedownEvent(
168        Box<crate::tools::ozone::moderation::defs::CancelScheduledTakedownEvent>,
169    ),
170}
171#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
172#[serde(tag = "$type")]
173pub enum InputSubjectRefs {
174    #[serde(rename = "com.atproto.admin.defs#repoRef")]
175    ComAtprotoAdminDefsRepoRef(Box<crate::com::atproto::admin::defs::RepoRef>),
176    #[serde(rename = "com.atproto.repo.strongRef")]
177    ComAtprotoRepoStrongRefMain(Box<crate::com::atproto::repo::strong_ref::Main>),
178}