1#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
4#[serde(rename_all = "camelCase")]
5pub struct AdultContentPrefData {
6 pub enabled: bool,
7}
8pub type AdultContentPref = crate::types::Object<AdultContentPrefData>;
9#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
11#[serde(rename_all = "camelCase")]
12pub struct BskyAppProgressGuideData {
13 pub guide: String,
14}
15pub type BskyAppProgressGuide = crate::types::Object<BskyAppProgressGuideData>;
16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
18#[serde(rename_all = "camelCase")]
19pub struct BskyAppStatePrefData {
20 #[serde(skip_serializing_if = "core::option::Option::is_none")]
21 pub active_progress_guide: core::option::Option<BskyAppProgressGuide>,
22 #[serde(skip_serializing_if = "core::option::Option::is_none")]
24 pub nuxs: core::option::Option<Vec<crate::app::bsky::actor::defs::Nux>>,
25 #[serde(skip_serializing_if = "core::option::Option::is_none")]
27 pub queued_nudges: core::option::Option<Vec<String>>,
28}
29pub type BskyAppStatePref = crate::types::Object<BskyAppStatePrefData>;
30#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
31#[serde(rename_all = "camelCase")]
32pub struct ContentLabelPrefData {
33 pub label: String,
34 #[serde(skip_serializing_if = "core::option::Option::is_none")]
36 pub labeler_did: core::option::Option<crate::types::string::Did>,
37 pub visibility: String,
38}
39pub type ContentLabelPref = crate::types::Object<ContentLabelPrefData>;
40#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
41#[serde(rename_all = "camelCase")]
42pub struct FeedViewPrefData {
43 pub feed: String,
45 #[serde(skip_serializing_if = "core::option::Option::is_none")]
47 pub hide_quote_posts: core::option::Option<bool>,
48 #[serde(skip_serializing_if = "core::option::Option::is_none")]
50 pub hide_replies: core::option::Option<bool>,
51 #[serde(skip_serializing_if = "core::option::Option::is_none")]
53 pub hide_replies_by_like_count: core::option::Option<i64>,
54 #[serde(skip_serializing_if = "core::option::Option::is_none")]
56 pub hide_replies_by_unfollowed: core::option::Option<bool>,
57 #[serde(skip_serializing_if = "core::option::Option::is_none")]
59 pub hide_reposts: core::option::Option<bool>,
60}
61pub type FeedViewPref = crate::types::Object<FeedViewPrefData>;
62#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
63#[serde(rename_all = "camelCase")]
64pub struct HiddenPostsPrefData {
65 pub items: Vec<String>,
67}
68pub type HiddenPostsPref = crate::types::Object<HiddenPostsPrefData>;
69#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
70#[serde(rename_all = "camelCase")]
71pub struct InterestsPrefData {
72 pub tags: Vec<String>,
74}
75pub type InterestsPref = crate::types::Object<InterestsPrefData>;
76#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
78#[serde(rename_all = "camelCase")]
79pub struct KnownFollowersData {
80 pub count: i64,
81 pub followers: Vec<ProfileViewBasic>,
82}
83pub type KnownFollowers = crate::types::Object<KnownFollowersData>;
84#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
85#[serde(rename_all = "camelCase")]
86pub struct LabelerPrefItemData {
87 pub did: crate::types::string::Did,
88}
89pub type LabelerPrefItem = crate::types::Object<LabelerPrefItemData>;
90#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
91#[serde(rename_all = "camelCase")]
92pub struct LabelersPrefData {
93 pub labelers: Vec<LabelerPrefItem>,
94}
95pub type LabelersPref = crate::types::Object<LabelersPrefData>;
96#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
98#[serde(rename_all = "camelCase")]
99pub struct MutedWordData {
100 #[serde(skip_serializing_if = "core::option::Option::is_none")]
102 pub actor_target: core::option::Option<String>,
103 #[serde(skip_serializing_if = "core::option::Option::is_none")]
105 pub expires_at: core::option::Option<crate::types::string::Datetime>,
106 #[serde(skip_serializing_if = "core::option::Option::is_none")]
107 pub id: core::option::Option<String>,
108 pub targets: Vec<crate::app::bsky::actor::defs::MutedWordTarget>,
110 pub value: String,
112}
113pub type MutedWord = crate::types::Object<MutedWordData>;
114pub type MutedWordTarget = String;
115#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
116#[serde(rename_all = "camelCase")]
117pub struct MutedWordsPrefData {
118 pub items: Vec<crate::app::bsky::actor::defs::MutedWord>,
120}
121pub type MutedWordsPref = crate::types::Object<MutedWordsPrefData>;
122#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
124#[serde(rename_all = "camelCase")]
125pub struct NuxData {
126 pub completed: bool,
127 #[serde(skip_serializing_if = "core::option::Option::is_none")]
129 pub data: core::option::Option<String>,
130 #[serde(skip_serializing_if = "core::option::Option::is_none")]
132 pub expires_at: core::option::Option<crate::types::string::Datetime>,
133 pub id: String,
134}
135pub type Nux = crate::types::Object<NuxData>;
136#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
137#[serde(rename_all = "camelCase")]
138pub struct PersonalDetailsPrefData {
139 #[serde(skip_serializing_if = "core::option::Option::is_none")]
141 pub birth_date: core::option::Option<crate::types::string::Datetime>,
142}
143pub type PersonalDetailsPref = crate::types::Object<PersonalDetailsPrefData>;
144#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
146#[serde(rename_all = "camelCase")]
147pub struct PostInteractionSettingsPrefData {
148 #[serde(skip_serializing_if = "core::option::Option::is_none")]
150 pub postgate_embedding_rules: core::option::Option<
151 Vec<crate::types::Union<PostInteractionSettingsPrefPostgateEmbeddingRulesItem>>,
152 >,
153 #[serde(skip_serializing_if = "core::option::Option::is_none")]
155 pub threadgate_allow_rules: core::option::Option<
156 Vec<crate::types::Union<PostInteractionSettingsPrefThreadgateAllowRulesItem>>,
157 >,
158}
159pub type PostInteractionSettingsPref = crate::types::Object<PostInteractionSettingsPrefData>;
160pub type Preferences = Vec<crate::types::Union<PreferencesItem>>;
161#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
162#[serde(rename_all = "camelCase")]
163pub struct ProfileAssociatedData {
164 #[serde(skip_serializing_if = "core::option::Option::is_none")]
165 pub activity_subscription: core::option::Option<ProfileAssociatedActivitySubscription>,
166 #[serde(skip_serializing_if = "core::option::Option::is_none")]
167 pub chat: core::option::Option<ProfileAssociatedChat>,
168 #[serde(skip_serializing_if = "core::option::Option::is_none")]
169 pub feedgens: core::option::Option<i64>,
170 #[serde(skip_serializing_if = "core::option::Option::is_none")]
171 pub labeler: core::option::Option<bool>,
172 #[serde(skip_serializing_if = "core::option::Option::is_none")]
173 pub lists: core::option::Option<i64>,
174 #[serde(skip_serializing_if = "core::option::Option::is_none")]
175 pub starter_packs: core::option::Option<i64>,
176}
177pub type ProfileAssociated = crate::types::Object<ProfileAssociatedData>;
178#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
179#[serde(rename_all = "camelCase")]
180pub struct ProfileAssociatedActivitySubscriptionData {
181 pub allow_subscriptions: String,
182}
183pub type ProfileAssociatedActivitySubscription =
184 crate::types::Object<ProfileAssociatedActivitySubscriptionData>;
185#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
186#[serde(rename_all = "camelCase")]
187pub struct ProfileAssociatedChatData {
188 pub allow_incoming: String,
189}
190pub type ProfileAssociatedChat = crate::types::Object<ProfileAssociatedChatData>;
191#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
192#[serde(rename_all = "camelCase")]
193pub struct ProfileViewData {
194 #[serde(skip_serializing_if = "core::option::Option::is_none")]
195 pub associated: core::option::Option<ProfileAssociated>,
196 #[serde(skip_serializing_if = "core::option::Option::is_none")]
197 pub avatar: core::option::Option<String>,
198 #[serde(skip_serializing_if = "core::option::Option::is_none")]
199 pub created_at: core::option::Option<crate::types::string::Datetime>,
200 #[serde(skip_serializing_if = "core::option::Option::is_none")]
201 pub description: core::option::Option<String>,
202 pub did: crate::types::string::Did,
203 #[serde(skip_serializing_if = "core::option::Option::is_none")]
204 pub display_name: core::option::Option<String>,
205 pub handle: crate::types::string::Handle,
206 #[serde(skip_serializing_if = "core::option::Option::is_none")]
207 pub indexed_at: core::option::Option<crate::types::string::Datetime>,
208 #[serde(skip_serializing_if = "core::option::Option::is_none")]
209 pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
210 #[serde(skip_serializing_if = "core::option::Option::is_none")]
211 pub pronouns: core::option::Option<String>,
212 #[serde(skip_serializing_if = "core::option::Option::is_none")]
213 pub status: core::option::Option<StatusView>,
214 #[serde(skip_serializing_if = "core::option::Option::is_none")]
215 pub verification: core::option::Option<VerificationState>,
216 #[serde(skip_serializing_if = "core::option::Option::is_none")]
217 pub viewer: core::option::Option<ViewerState>,
218}
219pub type ProfileView = crate::types::Object<ProfileViewData>;
220#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
221#[serde(rename_all = "camelCase")]
222pub struct ProfileViewBasicData {
223 #[serde(skip_serializing_if = "core::option::Option::is_none")]
224 pub associated: core::option::Option<ProfileAssociated>,
225 #[serde(skip_serializing_if = "core::option::Option::is_none")]
226 pub avatar: core::option::Option<String>,
227 #[serde(skip_serializing_if = "core::option::Option::is_none")]
228 pub created_at: core::option::Option<crate::types::string::Datetime>,
229 pub did: crate::types::string::Did,
230 #[serde(skip_serializing_if = "core::option::Option::is_none")]
231 pub display_name: core::option::Option<String>,
232 pub handle: crate::types::string::Handle,
233 #[serde(skip_serializing_if = "core::option::Option::is_none")]
234 pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
235 #[serde(skip_serializing_if = "core::option::Option::is_none")]
236 pub pronouns: core::option::Option<String>,
237 #[serde(skip_serializing_if = "core::option::Option::is_none")]
238 pub status: core::option::Option<StatusView>,
239 #[serde(skip_serializing_if = "core::option::Option::is_none")]
240 pub verification: core::option::Option<VerificationState>,
241 #[serde(skip_serializing_if = "core::option::Option::is_none")]
242 pub viewer: core::option::Option<ViewerState>,
243}
244pub type ProfileViewBasic = crate::types::Object<ProfileViewBasicData>;
245#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
246#[serde(rename_all = "camelCase")]
247pub struct ProfileViewDetailedData {
248 #[serde(skip_serializing_if = "core::option::Option::is_none")]
249 pub associated: core::option::Option<ProfileAssociated>,
250 #[serde(skip_serializing_if = "core::option::Option::is_none")]
251 pub avatar: core::option::Option<String>,
252 #[serde(skip_serializing_if = "core::option::Option::is_none")]
253 pub banner: core::option::Option<String>,
254 #[serde(skip_serializing_if = "core::option::Option::is_none")]
255 pub created_at: core::option::Option<crate::types::string::Datetime>,
256 #[serde(skip_serializing_if = "core::option::Option::is_none")]
257 pub description: core::option::Option<String>,
258 pub did: crate::types::string::Did,
259 #[serde(skip_serializing_if = "core::option::Option::is_none")]
260 pub display_name: core::option::Option<String>,
261 #[serde(skip_serializing_if = "core::option::Option::is_none")]
262 pub followers_count: core::option::Option<i64>,
263 #[serde(skip_serializing_if = "core::option::Option::is_none")]
264 pub follows_count: core::option::Option<i64>,
265 pub handle: crate::types::string::Handle,
266 #[serde(skip_serializing_if = "core::option::Option::is_none")]
267 pub indexed_at: core::option::Option<crate::types::string::Datetime>,
268 #[serde(skip_serializing_if = "core::option::Option::is_none")]
269 pub joined_via_starter_pack:
270 core::option::Option<crate::app::bsky::graph::defs::StarterPackViewBasic>,
271 #[serde(skip_serializing_if = "core::option::Option::is_none")]
272 pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
273 #[serde(skip_serializing_if = "core::option::Option::is_none")]
274 pub pinned_post: core::option::Option<crate::com::atproto::repo::strong_ref::Main>,
275 #[serde(skip_serializing_if = "core::option::Option::is_none")]
276 pub posts_count: core::option::Option<i64>,
277 #[serde(skip_serializing_if = "core::option::Option::is_none")]
278 pub pronouns: core::option::Option<String>,
279 #[serde(skip_serializing_if = "core::option::Option::is_none")]
280 pub status: core::option::Option<StatusView>,
281 #[serde(skip_serializing_if = "core::option::Option::is_none")]
282 pub verification: core::option::Option<VerificationState>,
283 #[serde(skip_serializing_if = "core::option::Option::is_none")]
284 pub viewer: core::option::Option<ViewerState>,
285 #[serde(skip_serializing_if = "core::option::Option::is_none")]
286 pub website: core::option::Option<String>,
287}
288pub type ProfileViewDetailed = crate::types::Object<ProfileViewDetailedData>;
289#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
290#[serde(rename_all = "camelCase")]
291pub struct SavedFeedData {
292 pub id: String,
293 pub pinned: bool,
294 pub r#type: String,
295 pub value: String,
296}
297pub type SavedFeed = crate::types::Object<SavedFeedData>;
298#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
299#[serde(rename_all = "camelCase")]
300pub struct SavedFeedsPrefData {
301 pub pinned: Vec<String>,
302 pub saved: Vec<String>,
303 #[serde(skip_serializing_if = "core::option::Option::is_none")]
304 pub timeline_index: core::option::Option<i64>,
305}
306pub type SavedFeedsPref = crate::types::Object<SavedFeedsPrefData>;
307#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
308#[serde(rename_all = "camelCase")]
309pub struct SavedFeedsPrefV2Data {
310 pub items: Vec<crate::app::bsky::actor::defs::SavedFeed>,
311}
312pub type SavedFeedsPrefV2 = crate::types::Object<SavedFeedsPrefV2Data>;
313#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
314#[serde(rename_all = "camelCase")]
315pub struct StatusViewData {
316 #[serde(skip_serializing_if = "core::option::Option::is_none")]
318 pub embed: core::option::Option<crate::types::Union<StatusViewEmbedRefs>>,
319 #[serde(skip_serializing_if = "core::option::Option::is_none")]
321 pub expires_at: core::option::Option<crate::types::string::Datetime>,
322 #[serde(skip_serializing_if = "core::option::Option::is_none")]
324 pub is_active: core::option::Option<bool>,
325 pub record: crate::types::Unknown,
326 pub status: String,
328}
329pub type StatusView = crate::types::Object<StatusViewData>;
330#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
331#[serde(rename_all = "camelCase")]
332pub struct ThreadViewPrefData {
333 #[serde(skip_serializing_if = "core::option::Option::is_none")]
335 pub prioritize_followed_users: core::option::Option<bool>,
336 #[serde(skip_serializing_if = "core::option::Option::is_none")]
338 pub sort: core::option::Option<String>,
339}
340pub type ThreadViewPref = crate::types::Object<ThreadViewPrefData>;
341#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
343#[serde(rename_all = "camelCase")]
344pub struct VerificationPrefsData {
345 #[serde(skip_serializing_if = "core::option::Option::is_none")]
347 pub hide_badges: core::option::Option<bool>,
348}
349pub type VerificationPrefs = crate::types::Object<VerificationPrefsData>;
350#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
352#[serde(rename_all = "camelCase")]
353pub struct VerificationStateData {
354 pub trusted_verifier_status: String,
356 pub verifications: Vec<VerificationView>,
358 pub verified_status: String,
360}
361pub type VerificationState = crate::types::Object<VerificationStateData>;
362#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
364#[serde(rename_all = "camelCase")]
365pub struct VerificationViewData {
366 pub created_at: crate::types::string::Datetime,
368 pub is_valid: bool,
370 pub issuer: crate::types::string::Did,
372 pub uri: String,
374}
375pub type VerificationView = crate::types::Object<VerificationViewData>;
376#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
378#[serde(rename_all = "camelCase")]
379pub struct ViewerStateData {
380 #[serde(skip_serializing_if = "core::option::Option::is_none")]
382 pub activity_subscription:
383 core::option::Option<crate::app::bsky::notification::defs::ActivitySubscription>,
384 #[serde(skip_serializing_if = "core::option::Option::is_none")]
385 pub blocked_by: core::option::Option<bool>,
386 #[serde(skip_serializing_if = "core::option::Option::is_none")]
387 pub blocking: core::option::Option<String>,
388 #[serde(skip_serializing_if = "core::option::Option::is_none")]
389 pub blocking_by_list: core::option::Option<crate::app::bsky::graph::defs::ListViewBasic>,
390 #[serde(skip_serializing_if = "core::option::Option::is_none")]
391 pub followed_by: core::option::Option<String>,
392 #[serde(skip_serializing_if = "core::option::Option::is_none")]
393 pub following: core::option::Option<String>,
394 #[serde(skip_serializing_if = "core::option::Option::is_none")]
396 pub known_followers: core::option::Option<KnownFollowers>,
397 #[serde(skip_serializing_if = "core::option::Option::is_none")]
398 pub muted: core::option::Option<bool>,
399 #[serde(skip_serializing_if = "core::option::Option::is_none")]
400 pub muted_by_list: core::option::Option<crate::app::bsky::graph::defs::ListViewBasic>,
401}
402pub type ViewerState = crate::types::Object<ViewerStateData>;
403#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
404#[serde(tag = "$type")]
405pub enum PostInteractionSettingsPrefPostgateEmbeddingRulesItem {
406 #[serde(rename = "app.bsky.feed.postgate#disableRule")]
407 AppBskyFeedPostgateDisableRule(Box<crate::app::bsky::feed::postgate::DisableRule>),
408}
409#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
410#[serde(tag = "$type")]
411pub enum PostInteractionSettingsPrefThreadgateAllowRulesItem {
412 #[serde(rename = "app.bsky.feed.threadgate#mentionRule")]
413 AppBskyFeedThreadgateMentionRule(Box<crate::app::bsky::feed::threadgate::MentionRule>),
414 #[serde(rename = "app.bsky.feed.threadgate#followerRule")]
415 AppBskyFeedThreadgateFollowerRule(Box<crate::app::bsky::feed::threadgate::FollowerRule>),
416 #[serde(rename = "app.bsky.feed.threadgate#followingRule")]
417 AppBskyFeedThreadgateFollowingRule(Box<crate::app::bsky::feed::threadgate::FollowingRule>),
418 #[serde(rename = "app.bsky.feed.threadgate#listRule")]
419 AppBskyFeedThreadgateListRule(Box<crate::app::bsky::feed::threadgate::ListRule>),
420}
421#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
422#[serde(tag = "$type")]
423pub enum PreferencesItem {
424 #[serde(rename = "app.bsky.actor.defs#adultContentPref")]
425 AdultContentPref(Box<AdultContentPref>),
426 #[serde(rename = "app.bsky.actor.defs#contentLabelPref")]
427 ContentLabelPref(Box<ContentLabelPref>),
428 #[serde(rename = "app.bsky.actor.defs#savedFeedsPref")]
429 SavedFeedsPref(Box<SavedFeedsPref>),
430 #[serde(rename = "app.bsky.actor.defs#savedFeedsPrefV2")]
431 SavedFeedsPrefV2(Box<SavedFeedsPrefV2>),
432 #[serde(rename = "app.bsky.actor.defs#personalDetailsPref")]
433 PersonalDetailsPref(Box<PersonalDetailsPref>),
434 #[serde(rename = "app.bsky.actor.defs#feedViewPref")]
435 FeedViewPref(Box<FeedViewPref>),
436 #[serde(rename = "app.bsky.actor.defs#threadViewPref")]
437 ThreadViewPref(Box<ThreadViewPref>),
438 #[serde(rename = "app.bsky.actor.defs#interestsPref")]
439 InterestsPref(Box<InterestsPref>),
440 #[serde(rename = "app.bsky.actor.defs#mutedWordsPref")]
441 MutedWordsPref(Box<MutedWordsPref>),
442 #[serde(rename = "app.bsky.actor.defs#hiddenPostsPref")]
443 HiddenPostsPref(Box<HiddenPostsPref>),
444 #[serde(rename = "app.bsky.actor.defs#bskyAppStatePref")]
445 BskyAppStatePref(Box<BskyAppStatePref>),
446 #[serde(rename = "app.bsky.actor.defs#labelersPref")]
447 LabelersPref(Box<LabelersPref>),
448 #[serde(rename = "app.bsky.actor.defs#postInteractionSettingsPref")]
449 PostInteractionSettingsPref(Box<PostInteractionSettingsPref>),
450 #[serde(rename = "app.bsky.actor.defs#verificationPrefs")]
451 VerificationPrefs(Box<VerificationPrefs>),
452}
453#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
454#[serde(tag = "$type")]
455pub enum StatusViewEmbedRefs {
456 #[serde(rename = "app.bsky.embed.external#view")]
457 AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>),
458}