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