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<String>,
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<String>,
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: String,
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<String>,
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<String>,
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<String>,
151}
152
153/// 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.
154#[derive(Debug, Clone, Serialize, Deserialize)]
155#[serde(rename_all = "camelCase")]
156pub struct PostInteractionSettingsPref {
157    #[serde(skip_serializing_if = "Option::is_none")]
158    pub postgate_embedding_rules: Option<Vec<serde_json::Value>>,
159    #[serde(skip_serializing_if = "Option::is_none")]
160    pub threadgate_allow_rules: Option<Vec<serde_json::Value>>,
161}
162
163pub type Preferences = Vec<serde_json::Value>;
164
165#[derive(Debug, Clone, Serialize, Deserialize)]
166#[serde(rename_all = "camelCase")]
167pub struct ProfileAssociated {
168    #[serde(skip_serializing_if = "Option::is_none")]
169    pub activity_subscription: Option<ProfileAssociatedActivitySubscription>,
170    #[serde(skip_serializing_if = "Option::is_none")]
171    pub chat: Option<ProfileAssociatedChat>,
172    #[serde(skip_serializing_if = "Option::is_none")]
173    pub feedgens: Option<i64>,
174    #[serde(skip_serializing_if = "Option::is_none")]
175    pub germ: Option<ProfileAssociatedGerm>,
176    #[serde(skip_serializing_if = "Option::is_none")]
177    pub labeler: Option<bool>,
178    #[serde(skip_serializing_if = "Option::is_none")]
179    pub lists: Option<i64>,
180    #[serde(skip_serializing_if = "Option::is_none")]
181    pub starter_packs: Option<i64>,
182}
183
184#[derive(Debug, Clone, Serialize, Deserialize)]
185#[serde(rename_all = "camelCase")]
186pub struct ProfileAssociatedActivitySubscription {
187    pub allow_subscriptions: String,
188}
189
190#[derive(Debug, Clone, Serialize, Deserialize)]
191#[serde(rename_all = "camelCase")]
192pub struct ProfileAssociatedChat {
193    pub allow_incoming: String,
194}
195
196#[derive(Debug, Clone, Serialize, Deserialize)]
197#[serde(rename_all = "camelCase")]
198pub struct ProfileAssociatedGerm {
199    pub message_me_url: String,
200    pub show_button_to: String,
201}
202
203#[derive(Debug, Clone, Serialize, Deserialize)]
204#[serde(rename_all = "camelCase")]
205pub struct ProfileView {
206    #[serde(skip_serializing_if = "Option::is_none")]
207    pub associated: Option<ProfileAssociated>,
208    #[serde(skip_serializing_if = "Option::is_none")]
209    pub avatar: Option<String>,
210    #[serde(skip_serializing_if = "Option::is_none")]
211    pub created_at: Option<String>,
212    #[serde(skip_serializing_if = "Option::is_none")]
213    pub debug: Option<serde_json::Value>,
214    #[serde(skip_serializing_if = "Option::is_none")]
215    pub description: Option<String>,
216    pub did: String,
217    #[serde(skip_serializing_if = "Option::is_none")]
218    pub display_name: Option<String>,
219    pub handle: String,
220    #[serde(skip_serializing_if = "Option::is_none")]
221    pub indexed_at: Option<String>,
222    #[serde(skip_serializing_if = "Option::is_none")]
223    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
224    #[serde(skip_serializing_if = "Option::is_none")]
225    pub pronouns: Option<String>,
226    #[serde(skip_serializing_if = "Option::is_none")]
227    pub status: Option<StatusView>,
228    #[serde(skip_serializing_if = "Option::is_none")]
229    pub verification: Option<VerificationState>,
230    #[serde(skip_serializing_if = "Option::is_none")]
231    pub viewer: Option<ViewerState>,
232}
233
234#[derive(Debug, Clone, Serialize, Deserialize)]
235#[serde(rename_all = "camelCase")]
236pub struct ProfileViewBasic {
237    #[serde(skip_serializing_if = "Option::is_none")]
238    pub associated: Option<ProfileAssociated>,
239    #[serde(skip_serializing_if = "Option::is_none")]
240    pub avatar: Option<String>,
241    #[serde(skip_serializing_if = "Option::is_none")]
242    pub created_at: Option<String>,
243    #[serde(skip_serializing_if = "Option::is_none")]
244    pub debug: Option<serde_json::Value>,
245    pub did: String,
246    #[serde(skip_serializing_if = "Option::is_none")]
247    pub display_name: Option<String>,
248    pub handle: String,
249    #[serde(skip_serializing_if = "Option::is_none")]
250    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
251    #[serde(skip_serializing_if = "Option::is_none")]
252    pub pronouns: Option<String>,
253    #[serde(skip_serializing_if = "Option::is_none")]
254    pub status: Option<StatusView>,
255    #[serde(skip_serializing_if = "Option::is_none")]
256    pub verification: Option<VerificationState>,
257    #[serde(skip_serializing_if = "Option::is_none")]
258    pub viewer: Option<ViewerState>,
259}
260
261#[derive(Debug, Clone, Serialize, Deserialize)]
262#[serde(rename_all = "camelCase")]
263pub struct ProfileViewDetailed {
264    #[serde(skip_serializing_if = "Option::is_none")]
265    pub associated: Option<ProfileAssociated>,
266    #[serde(skip_serializing_if = "Option::is_none")]
267    pub avatar: Option<String>,
268    #[serde(skip_serializing_if = "Option::is_none")]
269    pub banner: Option<String>,
270    #[serde(skip_serializing_if = "Option::is_none")]
271    pub created_at: Option<String>,
272    #[serde(skip_serializing_if = "Option::is_none")]
273    pub debug: Option<serde_json::Value>,
274    #[serde(skip_serializing_if = "Option::is_none")]
275    pub description: Option<String>,
276    pub did: String,
277    #[serde(skip_serializing_if = "Option::is_none")]
278    pub display_name: Option<String>,
279    #[serde(skip_serializing_if = "Option::is_none")]
280    pub followers_count: Option<i64>,
281    #[serde(skip_serializing_if = "Option::is_none")]
282    pub follows_count: Option<i64>,
283    pub handle: String,
284    #[serde(skip_serializing_if = "Option::is_none")]
285    pub indexed_at: Option<String>,
286    #[serde(skip_serializing_if = "Option::is_none")]
287    pub joined_via_starter_pack: Option<crate::app::bsky::graph::defs::StarterPackViewBasic>,
288    #[serde(skip_serializing_if = "Option::is_none")]
289    pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
290    #[serde(skip_serializing_if = "Option::is_none")]
291    pub pinned_post: Option<crate::com::atproto::repo::strong_ref::Main>,
292    #[serde(skip_serializing_if = "Option::is_none")]
293    pub posts_count: Option<i64>,
294    #[serde(skip_serializing_if = "Option::is_none")]
295    pub pronouns: Option<String>,
296    #[serde(skip_serializing_if = "Option::is_none")]
297    pub status: Option<StatusView>,
298    #[serde(skip_serializing_if = "Option::is_none")]
299    pub verification: Option<VerificationState>,
300    #[serde(skip_serializing_if = "Option::is_none")]
301    pub viewer: Option<ViewerState>,
302    #[serde(skip_serializing_if = "Option::is_none")]
303    pub website: Option<String>,
304}
305
306#[derive(Debug, Clone, Serialize, Deserialize)]
307#[serde(rename_all = "camelCase")]
308pub struct SavedFeed {
309    pub id: String,
310    pub pinned: bool,
311    #[serde(rename = "type")]
312    pub r#type: String,
313    pub value: String,
314}
315
316#[derive(Debug, Clone, Serialize, Deserialize)]
317#[serde(rename_all = "camelCase")]
318pub struct SavedFeedsPref {
319    pub pinned: Vec<String>,
320    pub saved: Vec<String>,
321    #[serde(skip_serializing_if = "Option::is_none")]
322    pub timeline_index: Option<i64>,
323}
324
325#[derive(Debug, Clone, Serialize, Deserialize)]
326#[serde(rename_all = "camelCase")]
327pub struct SavedFeedsPrefV2 {
328    pub items: Vec<SavedFeed>,
329}
330
331#[derive(Debug, Clone, Serialize, Deserialize)]
332#[serde(rename_all = "camelCase")]
333pub struct StatusView {
334    #[serde(skip_serializing_if = "Option::is_none")]
335    pub cid: Option<String>,
336    #[serde(skip_serializing_if = "Option::is_none")]
337    pub embed: Option<serde_json::Value>,
338    #[serde(skip_serializing_if = "Option::is_none")]
339    pub expires_at: Option<String>,
340    #[serde(skip_serializing_if = "Option::is_none")]
341    pub is_active: Option<bool>,
342    #[serde(skip_serializing_if = "Option::is_none")]
343    pub is_disabled: Option<bool>,
344    pub record: serde_json::Value,
345    pub status: String,
346    #[serde(skip_serializing_if = "Option::is_none")]
347    pub uri: Option<String>,
348}
349
350#[derive(Debug, Clone, Serialize, Deserialize)]
351#[serde(rename_all = "camelCase")]
352pub struct ThreadViewPref {
353    #[serde(skip_serializing_if = "Option::is_none")]
354    pub sort: Option<String>,
355}
356
357/// Preferences for how verified accounts appear in the app.
358#[derive(Debug, Clone, Serialize, Deserialize)]
359#[serde(rename_all = "camelCase")]
360pub struct VerificationPrefs {
361    #[serde(skip_serializing_if = "Option::is_none")]
362    pub hide_badges: Option<bool>,
363}
364
365/// Represents the verification information about the user this object is attached to.
366#[derive(Debug, Clone, Serialize, Deserialize)]
367#[serde(rename_all = "camelCase")]
368pub struct VerificationState {
369    pub trusted_verifier_status: String,
370    pub verifications: Vec<VerificationView>,
371    pub verified_status: String,
372}
373
374/// An individual verification for an associated subject.
375#[derive(Debug, Clone, Serialize, Deserialize)]
376#[serde(rename_all = "camelCase")]
377pub struct VerificationView {
378    pub created_at: String,
379    pub is_valid: bool,
380    pub issuer: String,
381    pub uri: String,
382}
383
384/// Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
385#[derive(Debug, Clone, Serialize, Deserialize)]
386#[serde(rename_all = "camelCase")]
387pub struct ViewerState {
388    #[serde(skip_serializing_if = "Option::is_none")]
389    pub activity_subscription: Option<crate::app::bsky::notification::defs::ActivitySubscription>,
390    #[serde(skip_serializing_if = "Option::is_none")]
391    pub blocked_by: Option<bool>,
392    #[serde(skip_serializing_if = "Option::is_none")]
393    pub blocking: Option<String>,
394    #[serde(skip_serializing_if = "Option::is_none")]
395    pub blocking_by_list: Option<crate::app::bsky::graph::defs::ListViewBasic>,
396    #[serde(skip_serializing_if = "Option::is_none")]
397    pub followed_by: Option<String>,
398    #[serde(skip_serializing_if = "Option::is_none")]
399    pub following: Option<String>,
400    #[serde(skip_serializing_if = "Option::is_none")]
401    pub known_followers: Option<KnownFollowers>,
402    #[serde(skip_serializing_if = "Option::is_none")]
403    pub muted: Option<bool>,
404    #[serde(skip_serializing_if = "Option::is_none")]
405    pub muted_by_list: Option<crate::app::bsky::graph::defs::ListViewBasic>,
406}