A better Rust ATProto crate
at main 9.0 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: tools.ozone.moderation.emitEvent 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8#[jacquard_derive::lexicon] 9#[derive( 10 serde::Serialize, 11 serde::Deserialize, 12 Debug, 13 Clone, 14 PartialEq, 15 Eq, 16 bon::Builder, 17 jacquard_derive::IntoStatic 18)] 19#[serde(rename_all = "camelCase")] 20#[builder(start_fn = new)] 21pub struct EmitEvent<'a> { 22 #[serde(borrow)] 23 pub created_by: jacquard_common::types::string::Did<'a>, 24 #[serde(borrow)] 25 pub event: EmitEventEvent<'a>, 26 /// 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. 27 #[serde(skip_serializing_if = "std::option::Option::is_none")] 28 #[builder(into)] 29 #[serde(borrow)] 30 pub external_id: Option<jacquard_common::CowStr<'a>>, 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 #[builder(into)] 33 #[serde(borrow)] 34 pub mod_tool: Option<crate::tools_ozone::moderation::ModTool<'a>>, 35 #[serde(borrow)] 36 pub subject: EmitEventSubject<'a>, 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[builder(into)] 39 #[serde(borrow)] 40 pub subject_blob_cids: Option<Vec<jacquard_common::types::string::Cid<'a>>>, 41 #[serde(flatten)] 42 #[serde(borrow)] 43 #[builder(default)] 44 pub extra_data: ::std::collections::BTreeMap< 45 ::jacquard_common::smol_str::SmolStr, 46 ::jacquard_common::types::value::Data<'a>, 47 >, 48} 49 50#[jacquard_derive::open_union] 51#[derive( 52 serde::Serialize, 53 serde::Deserialize, 54 Debug, 55 Clone, 56 PartialEq, 57 Eq, 58 jacquard_derive::IntoStatic 59)] 60#[serde(tag = "$type")] 61#[serde(bound(deserialize = "'de: 'a"))] 62pub enum EmitEventEvent<'a> { 63 #[serde(rename = "tools.ozone.moderation.defs#modEventTakedown")] 64 ModEventTakedown(Box<crate::tools_ozone::moderation::ModEventTakedown<'a>>), 65 #[serde(rename = "tools.ozone.moderation.defs#modEventAcknowledge")] 66 ModEventAcknowledge(Box<crate::tools_ozone::moderation::ModEventAcknowledge<'a>>), 67 #[serde(rename = "tools.ozone.moderation.defs#modEventEscalate")] 68 ModEventEscalate(Box<crate::tools_ozone::moderation::ModEventEscalate<'a>>), 69 #[serde(rename = "tools.ozone.moderation.defs#modEventComment")] 70 ModEventComment(Box<crate::tools_ozone::moderation::ModEventComment<'a>>), 71 #[serde(rename = "tools.ozone.moderation.defs#modEventLabel")] 72 ModEventLabel(Box<crate::tools_ozone::moderation::ModEventLabel<'a>>), 73 #[serde(rename = "tools.ozone.moderation.defs#modEventReport")] 74 ModEventReport(Box<crate::tools_ozone::moderation::ModEventReport<'a>>), 75 #[serde(rename = "tools.ozone.moderation.defs#modEventMute")] 76 ModEventMute(Box<crate::tools_ozone::moderation::ModEventMute<'a>>), 77 #[serde(rename = "tools.ozone.moderation.defs#modEventUnmute")] 78 ModEventUnmute(Box<crate::tools_ozone::moderation::ModEventUnmute<'a>>), 79 #[serde(rename = "tools.ozone.moderation.defs#modEventMuteReporter")] 80 ModEventMuteReporter(Box<crate::tools_ozone::moderation::ModEventMuteReporter<'a>>), 81 #[serde(rename = "tools.ozone.moderation.defs#modEventUnmuteReporter")] 82 ModEventUnmuteReporter( 83 Box<crate::tools_ozone::moderation::ModEventUnmuteReporter<'a>>, 84 ), 85 #[serde(rename = "tools.ozone.moderation.defs#modEventReverseTakedown")] 86 ModEventReverseTakedown( 87 Box<crate::tools_ozone::moderation::ModEventReverseTakedown<'a>>, 88 ), 89 #[serde(rename = "tools.ozone.moderation.defs#modEventResolveAppeal")] 90 ModEventResolveAppeal( 91 Box<crate::tools_ozone::moderation::ModEventResolveAppeal<'a>>, 92 ), 93 #[serde(rename = "tools.ozone.moderation.defs#modEventEmail")] 94 ModEventEmail(Box<crate::tools_ozone::moderation::ModEventEmail<'a>>), 95 #[serde(rename = "tools.ozone.moderation.defs#modEventDivert")] 96 ModEventDivert(Box<crate::tools_ozone::moderation::ModEventDivert<'a>>), 97 #[serde(rename = "tools.ozone.moderation.defs#modEventTag")] 98 ModEventTag(Box<crate::tools_ozone::moderation::ModEventTag<'a>>), 99 #[serde(rename = "tools.ozone.moderation.defs#accountEvent")] 100 AccountEvent(Box<crate::tools_ozone::moderation::AccountEvent<'a>>), 101 #[serde(rename = "tools.ozone.moderation.defs#identityEvent")] 102 IdentityEvent(Box<crate::tools_ozone::moderation::IdentityEvent<'a>>), 103 #[serde(rename = "tools.ozone.moderation.defs#recordEvent")] 104 RecordEvent(Box<crate::tools_ozone::moderation::RecordEvent<'a>>), 105 #[serde(rename = "tools.ozone.moderation.defs#modEventPriorityScore")] 106 ModEventPriorityScore( 107 Box<crate::tools_ozone::moderation::ModEventPriorityScore<'a>>, 108 ), 109 #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceEvent")] 110 AgeAssuranceEvent(Box<crate::tools_ozone::moderation::AgeAssuranceEvent<'a>>), 111 #[serde(rename = "tools.ozone.moderation.defs#ageAssuranceOverrideEvent")] 112 AgeAssuranceOverrideEvent( 113 Box<crate::tools_ozone::moderation::AgeAssuranceOverrideEvent<'a>>, 114 ), 115 #[serde(rename = "tools.ozone.moderation.defs#revokeAccountCredentialsEvent")] 116 RevokeAccountCredentialsEvent( 117 Box<crate::tools_ozone::moderation::RevokeAccountCredentialsEvent<'a>>, 118 ), 119 #[serde(rename = "tools.ozone.moderation.defs#scheduleTakedownEvent")] 120 ScheduleTakedownEvent( 121 Box<crate::tools_ozone::moderation::ScheduleTakedownEvent<'a>>, 122 ), 123 #[serde(rename = "tools.ozone.moderation.defs#cancelScheduledTakedownEvent")] 124 CancelScheduledTakedownEvent( 125 Box<crate::tools_ozone::moderation::CancelScheduledTakedownEvent<'a>>, 126 ), 127} 128 129#[jacquard_derive::open_union] 130#[derive( 131 serde::Serialize, 132 serde::Deserialize, 133 Debug, 134 Clone, 135 PartialEq, 136 Eq, 137 jacquard_derive::IntoStatic 138)] 139#[serde(tag = "$type")] 140#[serde(bound(deserialize = "'de: 'a"))] 141pub enum EmitEventSubject<'a> { 142 #[serde(rename = "com.atproto.admin.defs#repoRef")] 143 RepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>), 144 #[serde(rename = "com.atproto.repo.strongRef")] 145 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>), 146} 147 148#[jacquard_derive::lexicon] 149#[derive( 150 serde::Serialize, 151 serde::Deserialize, 152 Debug, 153 Clone, 154 PartialEq, 155 Eq, 156 jacquard_derive::IntoStatic 157)] 158#[serde(rename_all = "camelCase")] 159pub struct EmitEventOutput<'a> { 160 #[serde(flatten)] 161 #[serde(borrow)] 162 pub value: crate::tools_ozone::moderation::ModEventView<'a>, 163} 164 165#[jacquard_derive::open_union] 166#[derive( 167 serde::Serialize, 168 serde::Deserialize, 169 Debug, 170 Clone, 171 PartialEq, 172 Eq, 173 thiserror::Error, 174 miette::Diagnostic, 175 jacquard_derive::IntoStatic 176)] 177#[serde(tag = "error", content = "message")] 178#[serde(bound(deserialize = "'de: 'a"))] 179pub enum EmitEventError<'a> { 180 #[serde(rename = "SubjectHasAction")] 181 SubjectHasAction(std::option::Option<String>), 182 /// An event with the same external ID already exists for the subject. 183 #[serde(rename = "DuplicateExternalId")] 184 DuplicateExternalId(std::option::Option<String>), 185} 186 187impl std::fmt::Display for EmitEventError<'_> { 188 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 189 match self { 190 Self::SubjectHasAction(msg) => { 191 write!(f, "SubjectHasAction")?; 192 if let Some(msg) = msg { 193 write!(f, ": {}", msg)?; 194 } 195 Ok(()) 196 } 197 Self::DuplicateExternalId(msg) => { 198 write!(f, "DuplicateExternalId")?; 199 if let Some(msg) = msg { 200 write!(f, ": {}", msg)?; 201 } 202 Ok(()) 203 } 204 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 205 } 206 } 207} 208 209///Response type for 210///tools.ozone.moderation.emitEvent 211pub struct EmitEventResponse; 212impl jacquard_common::xrpc::XrpcResp for EmitEventResponse { 213 const NSID: &'static str = "tools.ozone.moderation.emitEvent"; 214 const ENCODING: &'static str = "application/json"; 215 type Output<'de> = EmitEventOutput<'de>; 216 type Err<'de> = EmitEventError<'de>; 217} 218 219impl<'a> jacquard_common::xrpc::XrpcRequest for EmitEvent<'a> { 220 const NSID: &'static str = "tools.ozone.moderation.emitEvent"; 221 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 222 "application/json", 223 ); 224 type Response = EmitEventResponse; 225} 226 227///Endpoint type for 228///tools.ozone.moderation.emitEvent 229pub struct EmitEventRequest; 230impl jacquard_common::xrpc::XrpcEndpoint for EmitEventRequest { 231 const PATH: &'static str = "/xrpc/tools.ozone.moderation.emitEvent"; 232 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure( 233 "application/json", 234 ); 235 type Request<'de> = EmitEvent<'de>; 236 type Response = EmitEventResponse; 237}