1pub const NSID: &str = "chat.bsky.moderation.subscribeModEvents";
4#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
5#[serde(rename_all = "camelCase")]
6pub struct ParametersData {
7 #[serde(skip_serializing_if = "core::option::Option::is_none")]
9 pub cursor: core::option::Option<String>,
10}
11pub type Parameters = crate::types::Object<ParametersData>;
12#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
13#[serde(tag = "error", content = "message")]
14pub enum Error {
15 FutureCursor(Option<String>),
16 ConsumerTooSlow(Option<String>),
18}
19impl std::fmt::Display for Error {
20 fn fmt(&self, _f: &mut std::fmt::Formatter) -> std::fmt::Result {
21 match self {
22 Error::FutureCursor(msg) => {
23 write!(_f, "FutureCursor")?;
24 if let Some(msg) = msg {
25 write!(_f, ": {msg}")?;
26 }
27 }
28 Error::ConsumerTooSlow(msg) => {
29 write!(_f, "ConsumerTooSlow")?;
30 if let Some(msg) = msg {
31 write!(_f, ": {msg}")?;
32 }
33 }
34 }
35 Ok(())
36 }
37}
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
40#[serde(rename_all = "camelCase")]
41pub struct EventChatAcceptedData {
42 pub actor_did: crate::types::string::Did,
44 pub convo_created_at: crate::types::string::Datetime,
46 pub convo_id: String,
47 pub created_at: crate::types::string::Datetime,
48 #[serde(skip_serializing_if = "core::option::Option::is_none")]
50 pub group_member_count: core::option::Option<i64>,
51 #[serde(skip_serializing_if = "core::option::Option::is_none")]
53 pub group_name: core::option::Option<String>,
54 pub method: String,
56 #[serde(skip_serializing_if = "core::option::Option::is_none")]
58 pub owner_did: core::option::Option<crate::types::string::Did>,
59 pub rev: String,
60}
61pub type EventChatAccepted = crate::types::Object<EventChatAcceptedData>;
62#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
64#[serde(rename_all = "camelCase")]
65pub struct EventConvoFirstMessageData {
66 pub convo_id: String,
67 pub created_at: crate::types::string::Datetime,
68 #[serde(skip_serializing_if = "core::option::Option::is_none")]
69 pub message_id: core::option::Option<String>,
70 pub recipients: Vec<crate::types::string::Did>,
72 pub rev: String,
73 pub user: crate::types::string::Did,
75}
76pub type EventConvoFirstMessage = crate::types::Object<EventConvoFirstMessageData>;
77#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
79#[serde(rename_all = "camelCase")]
80pub struct EventGroupChatCreatedData {
81 pub actor_did: crate::types::string::Did,
83 pub convo_created_at: crate::types::string::Datetime,
85 pub convo_id: String,
86 pub created_at: crate::types::string::Datetime,
87 pub group_member_count: i64,
89 pub group_name: String,
91 pub initial_member_dids: Vec<crate::types::string::Did>,
93 pub owner_did: crate::types::string::Did,
95 pub rev: String,
96}
97pub type EventGroupChatCreated = crate::types::Object<EventGroupChatCreatedData>;
98#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
100#[serde(rename_all = "camelCase")]
101pub struct EventGroupChatJoinRequestData {
102 pub actor_did: crate::types::string::Did,
104 pub convo_created_at: crate::types::string::Datetime,
106 pub convo_id: String,
107 pub created_at: crate::types::string::Datetime,
108 pub group_member_count: i64,
110 pub group_name: String,
111 pub join_link_code: String,
113 pub owner_did: crate::types::string::Did,
115 pub rev: String,
116 pub subject_follows_owner: bool,
118}
119pub type EventGroupChatJoinRequest = crate::types::Object<EventGroupChatJoinRequestData>;
120#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
122#[serde(rename_all = "camelCase")]
123pub struct EventGroupChatJoinRequestApprovedData {
124 pub actor_did: crate::types::string::Did,
126 pub convo_created_at: crate::types::string::Datetime,
128 pub convo_id: String,
129 pub created_at: crate::types::string::Datetime,
130 pub group_member_count: i64,
132 pub group_name: String,
133 pub owner_did: crate::types::string::Did,
135 pub rev: String,
136 pub subject_did: crate::types::string::Did,
138}
139pub type EventGroupChatJoinRequestApproved = crate::types::Object<
140 EventGroupChatJoinRequestApprovedData,
141>;
142#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
144#[serde(rename_all = "camelCase")]
145pub struct EventGroupChatJoinRequestRejectedData {
146 pub actor_did: crate::types::string::Did,
148 pub convo_created_at: crate::types::string::Datetime,
150 pub convo_id: String,
151 pub created_at: crate::types::string::Datetime,
152 pub group_member_count: i64,
154 pub group_name: String,
155 pub owner_did: crate::types::string::Did,
157 pub rev: String,
158 pub subject_did: crate::types::string::Did,
160}
161pub type EventGroupChatJoinRequestRejected = crate::types::Object<
162 EventGroupChatJoinRequestRejectedData,
163>;
164#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
166#[serde(rename_all = "camelCase")]
167pub struct EventGroupChatMemberAddedData {
168 pub actor_did: crate::types::string::Did,
170 pub convo_created_at: crate::types::string::Datetime,
172 pub convo_id: String,
173 pub created_at: crate::types::string::Datetime,
174 pub group_member_count: i64,
176 pub group_name: String,
177 pub owner_did: crate::types::string::Did,
179 pub request_members_count: i64,
181 pub rev: String,
182 pub subject_did: crate::types::string::Did,
184 pub subject_follows_owner: bool,
186}
187pub type EventGroupChatMemberAdded = crate::types::Object<EventGroupChatMemberAddedData>;
188#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
190#[serde(rename_all = "camelCase")]
191pub struct EventGroupChatMemberJoinedData {
192 pub actor_did: crate::types::string::Did,
194 pub convo_created_at: crate::types::string::Datetime,
196 pub convo_id: String,
197 pub created_at: crate::types::string::Datetime,
198 pub group_member_count: i64,
200 pub group_name: String,
201 pub join_link_code: String,
203 pub owner_did: crate::types::string::Did,
205 pub rev: String,
206 pub subject_follows_owner: bool,
208}
209pub type EventGroupChatMemberJoined = crate::types::Object<
210 EventGroupChatMemberJoinedData,
211>;
212#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
214#[serde(rename_all = "camelCase")]
215pub struct EventGroupChatMemberLeftData {
216 pub actor_did: crate::types::string::Did,
218 pub convo_created_at: crate::types::string::Datetime,
220 pub convo_id: String,
221 pub created_at: crate::types::string::Datetime,
222 pub group_member_count: i64,
224 pub group_name: String,
225 pub leave_method: String,
227 pub owner_did: crate::types::string::Did,
229 pub rev: String,
230 pub subject_did: crate::types::string::Did,
232}
233pub type EventGroupChatMemberLeft = crate::types::Object<EventGroupChatMemberLeftData>;
234#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
236#[serde(rename_all = "camelCase")]
237pub struct EventGroupChatUpdatedData {
238 pub actor_did: crate::types::string::Did,
240 pub convo_created_at: crate::types::string::Datetime,
242 pub convo_id: String,
243 pub created_at: crate::types::string::Datetime,
244 pub group_member_count: i64,
246 pub group_name: String,
248 #[serde(skip_serializing_if = "core::option::Option::is_none")]
250 pub join_link_code: core::option::Option<String>,
251 #[serde(skip_serializing_if = "core::option::Option::is_none")]
253 pub join_link_followers_only: core::option::Option<bool>,
254 #[serde(skip_serializing_if = "core::option::Option::is_none")]
256 pub join_link_requires_approval: core::option::Option<bool>,
257 #[serde(skip_serializing_if = "core::option::Option::is_none")]
259 pub lock_reason: core::option::Option<String>,
260 #[serde(skip_serializing_if = "core::option::Option::is_none")]
262 pub new_name: core::option::Option<String>,
263 #[serde(skip_serializing_if = "core::option::Option::is_none")]
265 pub old_name: core::option::Option<String>,
266 pub owner_did: crate::types::string::Did,
268 pub rev: String,
269 pub update_type: String,
271}
272pub type EventGroupChatUpdated = crate::types::Object<EventGroupChatUpdatedData>;
273#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
275#[serde(rename_all = "camelCase")]
276pub struct EventRateLimitExceededData {
277 pub actor_did: crate::types::string::Did,
279 pub created_at: crate::types::string::Datetime,
280 pub endpoint: String,
282 pub rev: String,
283}
284pub type EventRateLimitExceeded = crate::types::Object<EventRateLimitExceededData>;
285#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
286#[serde(tag = "$type")]
287pub enum Message {
288 #[serde(rename = "chat.bsky.moderation.subscribeModEvents#eventConvoFirstMessage")]
289 EventConvoFirstMessage(Box<EventConvoFirstMessage>),
290 #[serde(rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatCreated")]
291 EventGroupChatCreated(Box<EventGroupChatCreated>),
292 #[serde(
293 rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatMemberAdded"
294 )]
295 EventGroupChatMemberAdded(Box<EventGroupChatMemberAdded>),
296 #[serde(
297 rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatMemberJoined"
298 )]
299 EventGroupChatMemberJoined(Box<EventGroupChatMemberJoined>),
300 #[serde(
301 rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatJoinRequest"
302 )]
303 EventGroupChatJoinRequest(Box<EventGroupChatJoinRequest>),
304 #[serde(
305 rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatJoinRequestApproved"
306 )]
307 EventGroupChatJoinRequestApproved(Box<EventGroupChatJoinRequestApproved>),
308 #[serde(
309 rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatJoinRequestRejected"
310 )]
311 EventGroupChatJoinRequestRejected(Box<EventGroupChatJoinRequestRejected>),
312 #[serde(rename = "chat.bsky.moderation.subscribeModEvents#eventChatAccepted")]
313 EventChatAccepted(Box<EventChatAccepted>),
314 #[serde(rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatMemberLeft")]
315 EventGroupChatMemberLeft(Box<EventGroupChatMemberLeft>),
316 #[serde(rename = "chat.bsky.moderation.subscribeModEvents#eventGroupChatUpdated")]
317 EventGroupChatUpdated(Box<EventGroupChatUpdated>),
318 #[serde(rename = "chat.bsky.moderation.subscribeModEvents#eventRateLimitExceeded")]
319 EventRateLimitExceeded(Box<EventRateLimitExceeded>),
320}