Skip to main content

proto_blue_api/generated/app/bsky/actor/
defs.rs

1// Generated by atproto-codegen. Do not edit.
2//! Lexicon: app.bsky.actor.defs
3
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct AdultContentPref {
9    pub enabled: bool,
10}
11
12/// If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.
13#[derive(Debug, Clone, Serialize, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct BskyAppProgressGuide {
16    pub guide: String,
17}
18
19/// A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.
20#[derive(Debug, Clone, Serialize, Deserialize)]
21#[serde(rename_all = "camelCase")]
22pub struct BskyAppStatePref {
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub active_progress_guide: Option<BskyAppProgressGuide>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub nuxs: Option<Vec<Nux>>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub queued_nudges: Option<Vec<String>>,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct ContentLabelPref {
34    pub label: String,
35    #[serde(skip_serializing_if = "Option::is_none")]
36    pub labeler_did: Option<proto_blue_syntax::Did>,
37    pub visibility: String,
38}
39
40/// Read-only preference containing value(s) inferred from the user's declared birthdate. Absence of this preference object in the response indicates that the user has not made a declaration.
41#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct DeclaredAgePref {
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub is_over_age13: Option<bool>,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub is_over_age16: Option<bool>,
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub is_over_age18: Option<bool>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(rename_all = "camelCase")]
54pub struct FeedViewPref {
55    pub feed: String,
56    #[serde(skip_serializing_if = "Option::is_none")]
57    pub hide_quote_posts: Option<bool>,
58    #[serde(skip_serializing_if = "Option::is_none")]
59    pub hide_replies: Option<bool>,
60    #[serde(skip_serializing_if = "Option::is_none")]
61    pub hide_replies_by_like_count: Option<i64>,
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub hide_replies_by_unfollowed: Option<bool>,
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub hide_reposts: Option<bool>,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(rename_all = "camelCase")]
70pub struct HiddenPostsPref {
71    pub items: Vec<proto_blue_syntax::AtUri>,
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
75#[serde(rename_all = "camelCase")]
76pub struct InterestsPref {
77    pub tags: Vec<String>,
78}
79
80/// The subject's followers whom you also follow
81#[derive(Debug, Clone, Serialize, Deserialize)]
82#[serde(rename_all = "camelCase")]
83pub struct KnownFollowers {
84    pub count: i64,
85    pub followers: Vec<ProfileViewBasic>,
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
89#[serde(rename_all = "camelCase")]
90pub struct LabelerPrefItem {
91    pub did: proto_blue_syntax::Did,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
95#[serde(rename_all = "camelCase")]
96pub struct LabelersPref {
97    pub labelers: Vec<LabelerPrefItem>,
98}
99
100/// Preferences for live events.
101#[derive(Debug, Clone, Serialize, Deserialize)]
102#[serde(rename_all = "camelCase")]
103pub struct LiveEventPreferences {
104    #[serde(skip_serializing_if = "Option::is_none")]
105    pub hidden_feed_ids: Option<Vec<String>>,
106    #[serde(skip_serializing_if = "Option::is_none")]
107    pub hide_all_feeds: Option<bool>,
108}
109
110/// A word that the account owner has muted.
111#[derive(Debug, Clone, Serialize, Deserialize)]
112#[serde(rename_all = "camelCase")]
113pub struct MutedWord {
114    #[serde(skip_serializing_if = "Option::is_none")]
115    pub actor_target: Option<String>,
116    #[serde(skip_serializing_if = "Option::is_none")]
117    pub expires_at: Option<proto_blue_syntax::Datetime>,
118    #[serde(skip_serializing_if = "Option::is_none")]
119    pub id: Option<String>,
120    pub targets: Vec<MutedWordTarget>,
121    pub value: String,
122}
123
124pub type MutedWordTarget = String;
125pub const MUTED_WORD_TARGET_CONTENT: &str = "content";
126pub const MUTED_WORD_TARGET_TAG: &str = "tag";
127
128#[derive(Debug, Clone, Serialize, Deserialize)]
129#[serde(rename_all = "camelCase")]
130pub struct MutedWordsPref {
131    pub items: Vec<MutedWord>,
132}
133
134/// A new user experiences (NUX) storage object
135#[derive(Debug, Clone, Serialize, Deserialize)]
136#[serde(rename_all = "camelCase")]
137pub struct Nux {
138    pub completed: bool,
139    #[serde(skip_serializing_if = "Option::is_none")]
140    pub data: Option<String>,
141    #[serde(skip_serializing_if = "Option::is_none")]
142    pub expires_at: Option<proto_blue_syntax::Datetime>,
143    pub id: String,
144}
145
146#[derive(Debug, Clone, Serialize, Deserialize)]
147#[serde(rename_all = "camelCase")]
148pub struct PersonalDetailsPref {
149    #[serde(skip_serializing_if = "Option::is_none")]
150    pub birth_date: Option<proto_blue_syntax::Datetime>,
151}
152
153#[derive(Debug, Clone, Serialize, Deserialize)]
154#[serde(tag = "$type")]
155pub enum PostInteractionSettingsPrefPostgateEmbeddingRulesItemRefs {
156    #[serde(rename = "app.bsky.feed.postgate#disableRule")]
157    BskyFeedPostgateDisableRule(Box<crate::app::bsky::feed::postgate::DisableRule>),
158    #[serde(other)]
159    Other,
160}
161
162#[derive(Debug, Clone, Serialize, Deserialize)]
163#[serde(tag = "$type")]
164pub enum PostInteractionSettingsPrefThreadgateAllowRulesItemRefs {
165    #[serde(rename = "app.bsky.feed.threadgate#mentionRule")]
166    BskyFeedThreadgateMentionRule(Box<crate::app::bsky::feed::threadgate::MentionRule>),
167    #[serde(rename = "app.bsky.feed.threadgate#followerRule")]
168    BskyFeedThreadgateFollowerRule(Box<crate::app::bsky::feed::threadgate::FollowerRule>),
169    #[serde(rename = "app.bsky.feed.threadgate#followingRule")]
170    BskyFeedThreadgateFollowingRule(Box<crate::app::bsky::feed::threadgate::FollowingRule>),
171    #[serde(rename = "app.bsky.feed.threadgate#listRule")]
172    BskyFeedThreadgateListRule(Box<crate::app::bsky::feed::threadgate::ListRule>),
173    #[serde(other)]
174    Other,
175}
176
177/// Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly.
178#[derive(Debug, Clone, Serialize, Deserialize)]
179#[serde(rename_all = "camelCase")]
180pub struct PostInteractionSettingsPref {
181    #[serde(skip_serializing_if = "Option::is_none")]
182    pub postgate_embedding_rules:
183        Option<Vec<PostInteractionSettingsPrefPostgateEmbeddingRulesItemRefs>>,
184    #[serde(skip_serializing_if = "Option::is_none")]
185    pub threadgate_allow_rules:
186        Option<Vec<PostInteractionSettingsPrefThreadgateAllowRulesItemRefs>>,
187}
188
189pub type Preferences = Vec<serde_json::Value>;
190
191#[derive(Debug, Clone, Serialize, Deserialize)]
192#[serde(rename_all = "camelCase")]
193pub struct ProfileAssociated {
194    #[serde(skip_serializing_if = "Option::is_none")]
195    pub activity_subscription: Option<ProfileAssociatedActivitySubscription>,
196    #[serde(skip_serializing_if = "Option::is_none")]
197    pub chat: Option<ProfileAssociatedChat>,
198    #[serde(skip_serializing_if = "Option::is_none")]
199    pub feedgens: Option<i64>,
200    #[serde(skip_serializing_if = "Option::is_none")]
201    pub germ: Option<ProfileAssociatedGerm>,
202    #[serde(skip_serializing_if = "Option::is_none")]
203    pub labeler: Option<bool>,
204    #[serde(skip_serializing_if = "Option::is_none")]
205    pub lists: Option<i64>,
206    #[serde(skip_serializing_if = "Option::is_none")]
207    pub starter_packs: Option<i64>,
208}
209
210#[derive(Debug, Clone, Serialize, Deserialize)]
211#[serde(rename_all = "camelCase")]
212pub struct ProfileAssociatedActivitySubscription {
213    pub allow_subscriptions: String,
214}
215
216#[derive(Debug, Clone, Serialize, Deserialize)]
217#[serde(rename_all = "camelCase")]
218pub struct ProfileAssociatedChat {
219    pub allow_incoming: String,
220}
221
222#[derive(Debug, Clone, Serialize, Deserialize)]
223#[serde(rename_all = "camelCase")]
224pub struct ProfileAssociatedGerm {
225    pub message_me_url: String,
226    pub show_button_to: String,
227}
228
229#[derive(Debug, Clone, Serialize, Deserialize)]
230#[serde(rename_all = "camelCase")]
231pub struct ProfileView {
232    #[serde(skip_serializing_if = "Option::is_none")]
233    pub associated: Option<ProfileAssociated>,
234    #[serde(skip_serializing_if = "Option::is_none")]
235    pub avatar: Option<String>,
236    #[serde(skip_serializing_if = "Option::is_none")]
237    pub created_at: Option<proto_blue_syntax::Datetime>,
238    #[serde(skip_serializing_if = "Option::is_none")]
239    pub debug: Option<serde_json::Value>,
240    #[serde(skip_serializing_if = "Option::is_none")]
241    pub description: Option<String>,
242    pub did: proto_blue_syntax::Did,
243    #[serde(skip_serializing_if = "Option::is_none")]
244    pub display_name: Option<String>,
245    pub handle: proto_blue_syntax::Handle,
246    #[serde(skip_serializing_if = "Option::is_none")]
247    pub indexed_at: Option<proto_blue_syntax::Datetime>,
248    #[serde(skip_serializing_if = "Option::is_none")]
249    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
250    #[serde(skip_serializing_if = "Option::is_none")]
251    pub pronouns: Option<String>,
252    #[serde(skip_serializing_if = "Option::is_none")]
253    pub status: Option<StatusView>,
254    #[serde(skip_serializing_if = "Option::is_none")]
255    pub verification: Option<VerificationState>,
256    #[serde(skip_serializing_if = "Option::is_none")]
257    pub viewer: Option<ViewerState>,
258}
259
260#[derive(Debug, Clone, Serialize, Deserialize)]
261#[serde(rename_all = "camelCase")]
262pub struct ProfileViewBasic {
263    #[serde(skip_serializing_if = "Option::is_none")]
264    pub associated: Option<ProfileAssociated>,
265    #[serde(skip_serializing_if = "Option::is_none")]
266    pub avatar: Option<String>,
267    #[serde(skip_serializing_if = "Option::is_none")]
268    pub created_at: Option<proto_blue_syntax::Datetime>,
269    #[serde(skip_serializing_if = "Option::is_none")]
270    pub debug: Option<serde_json::Value>,
271    pub did: proto_blue_syntax::Did,
272    #[serde(skip_serializing_if = "Option::is_none")]
273    pub display_name: Option<String>,
274    pub handle: proto_blue_syntax::Handle,
275    #[serde(skip_serializing_if = "Option::is_none")]
276    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
277    #[serde(skip_serializing_if = "Option::is_none")]
278    pub pronouns: Option<String>,
279    #[serde(skip_serializing_if = "Option::is_none")]
280    pub status: Option<StatusView>,
281    #[serde(skip_serializing_if = "Option::is_none")]
282    pub verification: Option<VerificationState>,
283    #[serde(skip_serializing_if = "Option::is_none")]
284    pub viewer: Option<ViewerState>,
285}
286
287#[derive(Debug, Clone, Serialize, Deserialize)]
288#[serde(rename_all = "camelCase")]
289pub struct ProfileViewDetailed {
290    #[serde(skip_serializing_if = "Option::is_none")]
291    pub associated: Option<ProfileAssociated>,
292    #[serde(skip_serializing_if = "Option::is_none")]
293    pub avatar: Option<String>,
294    #[serde(skip_serializing_if = "Option::is_none")]
295    pub banner: Option<String>,
296    #[serde(skip_serializing_if = "Option::is_none")]
297    pub created_at: Option<proto_blue_syntax::Datetime>,
298    #[serde(skip_serializing_if = "Option::is_none")]
299    pub debug: Option<serde_json::Value>,
300    #[serde(skip_serializing_if = "Option::is_none")]
301    pub description: Option<String>,
302    pub did: proto_blue_syntax::Did,
303    #[serde(skip_serializing_if = "Option::is_none")]
304    pub display_name: Option<String>,
305    #[serde(skip_serializing_if = "Option::is_none")]
306    pub followers_count: Option<i64>,
307    #[serde(skip_serializing_if = "Option::is_none")]
308    pub follows_count: Option<i64>,
309    pub handle: proto_blue_syntax::Handle,
310    #[serde(skip_serializing_if = "Option::is_none")]
311    pub indexed_at: Option<proto_blue_syntax::Datetime>,
312    #[serde(skip_serializing_if = "Option::is_none")]
313    pub joined_via_starter_pack: Option<crate::app::bsky::graph::defs::StarterPackViewBasic>,
314    #[serde(skip_serializing_if = "Option::is_none")]
315    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
316    #[serde(skip_serializing_if = "Option::is_none")]
317    pub pinned_post: Option<crate::com::atproto::repo::strong_ref::Main>,
318    #[serde(skip_serializing_if = "Option::is_none")]
319    pub posts_count: Option<i64>,
320    #[serde(skip_serializing_if = "Option::is_none")]
321    pub pronouns: Option<String>,
322    #[serde(skip_serializing_if = "Option::is_none")]
323    pub status: Option<StatusView>,
324    #[serde(skip_serializing_if = "Option::is_none")]
325    pub verification: Option<VerificationState>,
326    #[serde(skip_serializing_if = "Option::is_none")]
327    pub viewer: Option<ViewerState>,
328    #[serde(skip_serializing_if = "Option::is_none")]
329    pub website: Option<String>,
330}
331
332#[derive(Debug, Clone, Serialize, Deserialize)]
333#[serde(rename_all = "camelCase")]
334pub struct SavedFeed {
335    pub id: String,
336    pub pinned: bool,
337    #[serde(rename = "type")]
338    pub r#type: String,
339    pub value: String,
340}
341
342#[derive(Debug, Clone, Serialize, Deserialize)]
343#[serde(rename_all = "camelCase")]
344pub struct SavedFeedsPref {
345    pub pinned: Vec<proto_blue_syntax::AtUri>,
346    pub saved: Vec<proto_blue_syntax::AtUri>,
347    #[serde(skip_serializing_if = "Option::is_none")]
348    pub timeline_index: Option<i64>,
349}
350
351#[derive(Debug, Clone, Serialize, Deserialize)]
352#[serde(rename_all = "camelCase")]
353pub struct SavedFeedsPrefV2 {
354    pub items: Vec<SavedFeed>,
355}
356
357/// An optional embed associated with the status.
358#[derive(Debug, Clone, Serialize, Deserialize)]
359#[serde(tag = "$type")]
360pub enum StatusViewEmbedRefs {
361    #[serde(rename = "app.bsky.embed.external#view")]
362    BskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>),
363    #[serde(other)]
364    Other,
365}
366
367#[derive(Debug, Clone, Serialize, Deserialize)]
368#[serde(rename_all = "camelCase")]
369pub struct StatusView {
370    #[serde(skip_serializing_if = "Option::is_none")]
371    pub cid: Option<String>,
372    #[serde(skip_serializing_if = "Option::is_none")]
373    pub embed: Option<StatusViewEmbedRefs>,
374    #[serde(skip_serializing_if = "Option::is_none")]
375    pub expires_at: Option<proto_blue_syntax::Datetime>,
376    #[serde(skip_serializing_if = "Option::is_none")]
377    pub is_active: Option<bool>,
378    #[serde(skip_serializing_if = "Option::is_none")]
379    pub is_disabled: Option<bool>,
380    pub record: serde_json::Value,
381    pub status: String,
382    #[serde(skip_serializing_if = "Option::is_none")]
383    pub uri: Option<proto_blue_syntax::AtUri>,
384}
385
386#[derive(Debug, Clone, Serialize, Deserialize)]
387#[serde(rename_all = "camelCase")]
388pub struct ThreadViewPref {
389    #[serde(skip_serializing_if = "Option::is_none")]
390    pub sort: Option<String>,
391}
392
393/// Preferences for how verified accounts appear in the app.
394#[derive(Debug, Clone, Serialize, Deserialize)]
395#[serde(rename_all = "camelCase")]
396pub struct VerificationPrefs {
397    #[serde(skip_serializing_if = "Option::is_none")]
398    pub hide_badges: Option<bool>,
399}
400
401/// Represents the verification information about the user this object is attached to.
402#[derive(Debug, Clone, Serialize, Deserialize)]
403#[serde(rename_all = "camelCase")]
404pub struct VerificationState {
405    pub trusted_verifier_status: String,
406    pub verifications: Vec<VerificationView>,
407    pub verified_status: String,
408}
409
410/// An individual verification for an associated subject.
411#[derive(Debug, Clone, Serialize, Deserialize)]
412#[serde(rename_all = "camelCase")]
413pub struct VerificationView {
414    pub created_at: proto_blue_syntax::Datetime,
415    pub is_valid: bool,
416    pub issuer: proto_blue_syntax::Did,
417    pub uri: proto_blue_syntax::AtUri,
418}
419
420/// Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
421#[derive(Debug, Clone, Serialize, Deserialize)]
422#[serde(rename_all = "camelCase")]
423pub struct ViewerState {
424    #[serde(skip_serializing_if = "Option::is_none")]
425    pub activity_subscription: Option<crate::app::bsky::notification::defs::ActivitySubscription>,
426    #[serde(skip_serializing_if = "Option::is_none")]
427    pub blocked_by: Option<bool>,
428    #[serde(skip_serializing_if = "Option::is_none")]
429    pub blocking: Option<proto_blue_syntax::AtUri>,
430    #[serde(skip_serializing_if = "Option::is_none")]
431    pub blocking_by_list: Option<crate::app::bsky::graph::defs::ListViewBasic>,
432    #[serde(skip_serializing_if = "Option::is_none")]
433    pub followed_by: Option<proto_blue_syntax::AtUri>,
434    #[serde(skip_serializing_if = "Option::is_none")]
435    pub following: Option<proto_blue_syntax::AtUri>,
436    #[serde(skip_serializing_if = "Option::is_none")]
437    pub known_followers: Option<KnownFollowers>,
438    #[serde(skip_serializing_if = "Option::is_none")]
439    pub muted: Option<bool>,
440    #[serde(skip_serializing_if = "Option::is_none")]
441    pub muted_by_list: Option<crate::app::bsky::graph::defs::ListViewBasic>,
442}