jacquard_api/app_bsky/
actor.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.actor.defs
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8pub mod get_preferences;
9pub mod get_profile;
10pub mod get_profiles;
11pub mod get_suggestions;
12pub mod profile;
13pub mod put_preferences;
14pub mod search_actors;
15pub mod search_actors_typeahead;
16pub mod status;
17
18#[jacquard_derive::lexicon]
19#[derive(
20    serde::Serialize,
21    serde::Deserialize,
22    Debug,
23    Clone,
24    PartialEq,
25    Eq,
26    jacquard_derive::IntoStatic
27)]
28#[serde(rename_all = "camelCase")]
29pub struct AdultContentPref<'a> {
30    pub enabled: bool,
31}
32
33///If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.
34#[jacquard_derive::lexicon]
35#[derive(
36    serde::Serialize,
37    serde::Deserialize,
38    Debug,
39    Clone,
40    PartialEq,
41    Eq,
42    jacquard_derive::IntoStatic
43)]
44#[serde(rename_all = "camelCase")]
45pub struct BskyAppProgressGuide<'a> {
46    #[serde(borrow)]
47    pub guide: jacquard_common::CowStr<'a>,
48}
49
50///A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.
51#[jacquard_derive::lexicon]
52#[derive(
53    serde::Serialize,
54    serde::Deserialize,
55    Debug,
56    Clone,
57    PartialEq,
58    Eq,
59    jacquard_derive::IntoStatic
60)]
61#[serde(rename_all = "camelCase")]
62pub struct BskyAppStatePref<'a> {
63    #[serde(skip_serializing_if = "std::option::Option::is_none")]
64    #[serde(borrow)]
65    pub active_progress_guide: std::option::Option<
66        crate::app_bsky::actor::BskyAppProgressGuide<'a>,
67    >,
68    ///Storage for NUXs the user has encountered.
69    #[serde(skip_serializing_if = "std::option::Option::is_none")]
70    #[serde(borrow)]
71    pub nuxs: std::option::Option<Vec<crate::app_bsky::actor::Nux<'a>>>,
72    ///An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.
73    #[serde(skip_serializing_if = "std::option::Option::is_none")]
74    #[serde(borrow)]
75    pub queued_nudges: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
76}
77
78#[jacquard_derive::lexicon]
79#[derive(
80    serde::Serialize,
81    serde::Deserialize,
82    Debug,
83    Clone,
84    PartialEq,
85    Eq,
86    jacquard_derive::IntoStatic
87)]
88#[serde(rename_all = "camelCase")]
89pub struct ContentLabelPref<'a> {
90    #[serde(borrow)]
91    pub label: jacquard_common::CowStr<'a>,
92    ///Which labeler does this preference apply to? If undefined, applies globally.
93    #[serde(skip_serializing_if = "std::option::Option::is_none")]
94    #[serde(borrow)]
95    pub labeler_did: std::option::Option<jacquard_common::types::string::Did<'a>>,
96    #[serde(borrow)]
97    pub visibility: jacquard_common::CowStr<'a>,
98}
99
100#[jacquard_derive::lexicon]
101#[derive(
102    serde::Serialize,
103    serde::Deserialize,
104    Debug,
105    Clone,
106    PartialEq,
107    Eq,
108    jacquard_derive::IntoStatic
109)]
110#[serde(rename_all = "camelCase")]
111pub struct FeedViewPref<'a> {
112    ///The URI of the feed, or an identifier which describes the feed.
113    #[serde(borrow)]
114    pub feed: jacquard_common::CowStr<'a>,
115    ///Hide quote posts in the feed.
116    #[serde(skip_serializing_if = "std::option::Option::is_none")]
117    pub hide_quote_posts: std::option::Option<bool>,
118    ///Hide replies in the feed.
119    #[serde(skip_serializing_if = "std::option::Option::is_none")]
120    pub hide_replies: std::option::Option<bool>,
121    ///Hide replies in the feed if they do not have this number of likes.
122    #[serde(skip_serializing_if = "std::option::Option::is_none")]
123    pub hide_replies_by_like_count: std::option::Option<i64>,
124    ///Hide replies in the feed if they are not by followed users.
125    #[serde(skip_serializing_if = "std::option::Option::is_none")]
126    pub hide_replies_by_unfollowed: std::option::Option<bool>,
127    ///Hide reposts in the feed.
128    #[serde(skip_serializing_if = "std::option::Option::is_none")]
129    pub hide_reposts: std::option::Option<bool>,
130}
131
132#[jacquard_derive::lexicon]
133#[derive(
134    serde::Serialize,
135    serde::Deserialize,
136    Debug,
137    Clone,
138    PartialEq,
139    Eq,
140    jacquard_derive::IntoStatic
141)]
142#[serde(rename_all = "camelCase")]
143pub struct HiddenPostsPref<'a> {
144    ///A list of URIs of posts the account owner has hidden.
145    #[serde(borrow)]
146    pub items: Vec<jacquard_common::types::string::AtUri<'a>>,
147}
148
149#[jacquard_derive::lexicon]
150#[derive(
151    serde::Serialize,
152    serde::Deserialize,
153    Debug,
154    Clone,
155    PartialEq,
156    Eq,
157    jacquard_derive::IntoStatic
158)]
159#[serde(rename_all = "camelCase")]
160pub struct InterestsPref<'a> {
161    ///A list of tags which describe the account owner's interests gathered during onboarding.
162    #[serde(borrow)]
163    pub tags: Vec<jacquard_common::CowStr<'a>>,
164}
165
166///The subject's followers whom you also follow
167#[jacquard_derive::lexicon]
168#[derive(
169    serde::Serialize,
170    serde::Deserialize,
171    Debug,
172    Clone,
173    PartialEq,
174    Eq,
175    jacquard_derive::IntoStatic
176)]
177#[serde(rename_all = "camelCase")]
178pub struct KnownFollowers<'a> {
179    pub count: i64,
180    #[serde(borrow)]
181    pub followers: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>,
182}
183
184#[jacquard_derive::lexicon]
185#[derive(
186    serde::Serialize,
187    serde::Deserialize,
188    Debug,
189    Clone,
190    PartialEq,
191    Eq,
192    jacquard_derive::IntoStatic
193)]
194#[serde(rename_all = "camelCase")]
195pub struct LabelerPrefItem<'a> {
196    #[serde(borrow)]
197    pub did: jacquard_common::types::string::Did<'a>,
198}
199
200#[jacquard_derive::lexicon]
201#[derive(
202    serde::Serialize,
203    serde::Deserialize,
204    Debug,
205    Clone,
206    PartialEq,
207    Eq,
208    jacquard_derive::IntoStatic
209)]
210#[serde(rename_all = "camelCase")]
211pub struct LabelersPref<'a> {
212    #[serde(borrow)]
213    pub labelers: Vec<crate::app_bsky::actor::LabelerPrefItem<'a>>,
214}
215
216///A word that the account owner has muted.
217#[jacquard_derive::lexicon]
218#[derive(
219    serde::Serialize,
220    serde::Deserialize,
221    Debug,
222    Clone,
223    PartialEq,
224    Eq,
225    jacquard_derive::IntoStatic
226)]
227#[serde(rename_all = "camelCase")]
228pub struct MutedWord<'a> {
229    ///Groups of users to apply the muted word to. If undefined, applies to all users.
230    #[serde(skip_serializing_if = "std::option::Option::is_none")]
231    #[serde(borrow)]
232    pub actor_target: std::option::Option<jacquard_common::CowStr<'a>>,
233    ///The date and time at which the muted word will expire and no longer be applied.
234    #[serde(skip_serializing_if = "std::option::Option::is_none")]
235    pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
236    #[serde(skip_serializing_if = "std::option::Option::is_none")]
237    #[serde(borrow)]
238    pub id: std::option::Option<jacquard_common::CowStr<'a>>,
239    ///The intended targets of the muted word.
240    #[serde(borrow)]
241    pub targets: Vec<crate::app_bsky::actor::MutedWordTarget<'a>>,
242    ///The muted word itself.
243    #[serde(borrow)]
244    pub value: jacquard_common::CowStr<'a>,
245}
246
247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
248pub enum MutedWordTarget<'a> {
249    Content,
250    Tag,
251    Other(jacquard_common::CowStr<'a>),
252}
253
254impl<'a> MutedWordTarget<'a> {
255    pub fn as_str(&self) -> &str {
256        match self {
257            Self::Content => "content",
258            Self::Tag => "tag",
259            Self::Other(s) => s.as_ref(),
260        }
261    }
262}
263
264impl<'a> From<&'a str> for MutedWordTarget<'a> {
265    fn from(s: &'a str) -> Self {
266        match s {
267            "content" => Self::Content,
268            "tag" => Self::Tag,
269            _ => Self::Other(jacquard_common::CowStr::from(s)),
270        }
271    }
272}
273
274impl<'a> From<String> for MutedWordTarget<'a> {
275    fn from(s: String) -> Self {
276        match s.as_str() {
277            "content" => Self::Content,
278            "tag" => Self::Tag,
279            _ => Self::Other(jacquard_common::CowStr::from(s)),
280        }
281    }
282}
283
284impl<'a> AsRef<str> for MutedWordTarget<'a> {
285    fn as_ref(&self) -> &str {
286        self.as_str()
287    }
288}
289
290impl<'a> serde::Serialize for MutedWordTarget<'a> {
291    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
292    where
293        S: serde::Serializer,
294    {
295        serializer.serialize_str(self.as_str())
296    }
297}
298
299impl<'de, 'a> serde::Deserialize<'de> for MutedWordTarget<'a>
300where
301    'de: 'a,
302{
303    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
304    where
305        D: serde::Deserializer<'de>,
306    {
307        let s = <&'de str>::deserialize(deserializer)?;
308        Ok(Self::from(s))
309    }
310}
311
312impl jacquard_common::IntoStatic for MutedWordTarget<'_> {
313    type Output = MutedWordTarget<'static>;
314    fn into_static(self) -> Self::Output {
315        match self {
316            MutedWordTarget::Content => MutedWordTarget::Content,
317            MutedWordTarget::Tag => MutedWordTarget::Tag,
318            MutedWordTarget::Other(v) => MutedWordTarget::Other(v.into_static()),
319        }
320    }
321}
322
323#[jacquard_derive::lexicon]
324#[derive(
325    serde::Serialize,
326    serde::Deserialize,
327    Debug,
328    Clone,
329    PartialEq,
330    Eq,
331    jacquard_derive::IntoStatic
332)]
333#[serde(rename_all = "camelCase")]
334pub struct MutedWordsPref<'a> {
335    ///A list of words the account owner has muted.
336    #[serde(borrow)]
337    pub items: Vec<crate::app_bsky::actor::MutedWord<'a>>,
338}
339
340///A new user experiences (NUX) storage object
341#[jacquard_derive::lexicon]
342#[derive(
343    serde::Serialize,
344    serde::Deserialize,
345    Debug,
346    Clone,
347    PartialEq,
348    Eq,
349    jacquard_derive::IntoStatic
350)]
351#[serde(rename_all = "camelCase")]
352pub struct Nux<'a> {
353    pub completed: bool,
354    ///Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.
355    #[serde(skip_serializing_if = "std::option::Option::is_none")]
356    #[serde(borrow)]
357    pub data: std::option::Option<jacquard_common::CowStr<'a>>,
358    ///The date and time at which the NUX will expire and should be considered completed.
359    #[serde(skip_serializing_if = "std::option::Option::is_none")]
360    pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
361    #[serde(borrow)]
362    pub id: jacquard_common::CowStr<'a>,
363}
364
365#[jacquard_derive::lexicon]
366#[derive(
367    serde::Serialize,
368    serde::Deserialize,
369    Debug,
370    Clone,
371    PartialEq,
372    Eq,
373    jacquard_derive::IntoStatic
374)]
375#[serde(rename_all = "camelCase")]
376pub struct PersonalDetailsPref<'a> {
377    ///The birth date of account owner.
378    #[serde(skip_serializing_if = "std::option::Option::is_none")]
379    pub birth_date: std::option::Option<jacquard_common::types::string::Datetime>,
380}
381
382///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.
383#[jacquard_derive::lexicon]
384#[derive(
385    serde::Serialize,
386    serde::Deserialize,
387    Debug,
388    Clone,
389    PartialEq,
390    Eq,
391    jacquard_derive::IntoStatic
392)]
393#[serde(rename_all = "camelCase")]
394pub struct PostInteractionSettingsPref<'a> {
395    ///Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed.
396    #[serde(skip_serializing_if = "std::option::Option::is_none")]
397    #[serde(borrow)]
398    pub postgate_embedding_rules: std::option::Option<
399        Vec<crate::app_bsky::feed::postgate::DisableRule<'a>>,
400    >,
401    ///Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply.
402    #[serde(skip_serializing_if = "std::option::Option::is_none")]
403    #[serde(borrow)]
404    pub threadgate_allow_rules: std::option::Option<
405        Vec<PostInteractionSettingsPrefThreadgateAllowRulesItem<'a>>,
406    >,
407}
408
409#[jacquard_derive::open_union]
410#[derive(
411    serde::Serialize,
412    serde::Deserialize,
413    Debug,
414    Clone,
415    PartialEq,
416    Eq,
417    jacquard_derive::IntoStatic
418)]
419#[serde(tag = "$type")]
420#[serde(bound(deserialize = "'de: 'a"))]
421pub enum PostInteractionSettingsPrefThreadgateAllowRulesItem<'a> {
422    #[serde(rename = "app.bsky.feed.threadgate#mentionRule")]
423    ThreadgateMentionRule(Box<crate::app_bsky::feed::threadgate::MentionRule<'a>>),
424    #[serde(rename = "app.bsky.feed.threadgate#followerRule")]
425    ThreadgateFollowerRule(Box<crate::app_bsky::feed::threadgate::FollowerRule<'a>>),
426    #[serde(rename = "app.bsky.feed.threadgate#followingRule")]
427    ThreadgateFollowingRule(Box<crate::app_bsky::feed::threadgate::FollowingRule<'a>>),
428    #[serde(rename = "app.bsky.feed.threadgate#listRule")]
429    ThreadgateListRule(Box<crate::app_bsky::feed::threadgate::ListRule<'a>>),
430}
431
432#[jacquard_derive::open_union]
433#[derive(
434    serde::Serialize,
435    serde::Deserialize,
436    Debug,
437    Clone,
438    PartialEq,
439    Eq,
440    jacquard_derive::IntoStatic
441)]
442#[serde(tag = "$type")]
443#[serde(bound(deserialize = "'de: 'a"))]
444pub enum PreferencesItem<'a> {
445    #[serde(rename = "app.bsky.actor.defs#adultContentPref")]
446    AdultContentPref(Box<crate::app_bsky::actor::AdultContentPref<'a>>),
447    #[serde(rename = "app.bsky.actor.defs#contentLabelPref")]
448    ContentLabelPref(Box<crate::app_bsky::actor::ContentLabelPref<'a>>),
449    #[serde(rename = "app.bsky.actor.defs#savedFeedsPref")]
450    SavedFeedsPref(Box<crate::app_bsky::actor::SavedFeedsPref<'a>>),
451    #[serde(rename = "app.bsky.actor.defs#savedFeedsPrefV2")]
452    SavedFeedsPrefV2(Box<crate::app_bsky::actor::SavedFeedsPrefV2<'a>>),
453    #[serde(rename = "app.bsky.actor.defs#personalDetailsPref")]
454    PersonalDetailsPref(Box<crate::app_bsky::actor::PersonalDetailsPref<'a>>),
455    #[serde(rename = "app.bsky.actor.defs#feedViewPref")]
456    FeedViewPref(Box<crate::app_bsky::actor::FeedViewPref<'a>>),
457    #[serde(rename = "app.bsky.actor.defs#threadViewPref")]
458    ThreadViewPref(Box<crate::app_bsky::actor::ThreadViewPref<'a>>),
459    #[serde(rename = "app.bsky.actor.defs#interestsPref")]
460    InterestsPref(Box<crate::app_bsky::actor::InterestsPref<'a>>),
461    #[serde(rename = "app.bsky.actor.defs#mutedWordsPref")]
462    MutedWordsPref(Box<crate::app_bsky::actor::MutedWordsPref<'a>>),
463    #[serde(rename = "app.bsky.actor.defs#hiddenPostsPref")]
464    HiddenPostsPref(Box<crate::app_bsky::actor::HiddenPostsPref<'a>>),
465    #[serde(rename = "app.bsky.actor.defs#bskyAppStatePref")]
466    BskyAppStatePref(Box<crate::app_bsky::actor::BskyAppStatePref<'a>>),
467    #[serde(rename = "app.bsky.actor.defs#labelersPref")]
468    LabelersPref(Box<crate::app_bsky::actor::LabelersPref<'a>>),
469    #[serde(rename = "app.bsky.actor.defs#postInteractionSettingsPref")]
470    PostInteractionSettingsPref(
471        Box<crate::app_bsky::actor::PostInteractionSettingsPref<'a>>,
472    ),
473    #[serde(rename = "app.bsky.actor.defs#verificationPrefs")]
474    VerificationPrefs(Box<crate::app_bsky::actor::VerificationPrefs<'a>>),
475}
476
477pub type Preferences<'a> = Vec<PreferencesItem<'a>>;
478#[jacquard_derive::lexicon]
479#[derive(
480    serde::Serialize,
481    serde::Deserialize,
482    Debug,
483    Clone,
484    PartialEq,
485    Eq,
486    jacquard_derive::IntoStatic
487)]
488#[serde(rename_all = "camelCase")]
489pub struct ProfileAssociated<'a> {
490    #[serde(skip_serializing_if = "std::option::Option::is_none")]
491    #[serde(borrow)]
492    pub activity_subscription: std::option::Option<
493        crate::app_bsky::actor::ProfileAssociatedActivitySubscription<'a>,
494    >,
495    #[serde(skip_serializing_if = "std::option::Option::is_none")]
496    #[serde(borrow)]
497    pub chat: std::option::Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>,
498    #[serde(skip_serializing_if = "std::option::Option::is_none")]
499    pub feedgens: std::option::Option<i64>,
500    #[serde(skip_serializing_if = "std::option::Option::is_none")]
501    pub labeler: std::option::Option<bool>,
502    #[serde(skip_serializing_if = "std::option::Option::is_none")]
503    pub lists: std::option::Option<i64>,
504    #[serde(skip_serializing_if = "std::option::Option::is_none")]
505    pub starter_packs: std::option::Option<i64>,
506}
507
508#[jacquard_derive::lexicon]
509#[derive(
510    serde::Serialize,
511    serde::Deserialize,
512    Debug,
513    Clone,
514    PartialEq,
515    Eq,
516    jacquard_derive::IntoStatic
517)]
518#[serde(rename_all = "camelCase")]
519pub struct ProfileAssociatedActivitySubscription<'a> {
520    #[serde(borrow)]
521    pub allow_subscriptions: jacquard_common::CowStr<'a>,
522}
523
524#[jacquard_derive::lexicon]
525#[derive(
526    serde::Serialize,
527    serde::Deserialize,
528    Debug,
529    Clone,
530    PartialEq,
531    Eq,
532    jacquard_derive::IntoStatic
533)]
534#[serde(rename_all = "camelCase")]
535pub struct ProfileAssociatedChat<'a> {
536    #[serde(borrow)]
537    pub allow_incoming: jacquard_common::CowStr<'a>,
538}
539
540#[jacquard_derive::lexicon]
541#[derive(
542    serde::Serialize,
543    serde::Deserialize,
544    Debug,
545    Clone,
546    PartialEq,
547    Eq,
548    jacquard_derive::IntoStatic
549)]
550#[serde(rename_all = "camelCase")]
551pub struct ProfileView<'a> {
552    #[serde(skip_serializing_if = "std::option::Option::is_none")]
553    #[serde(borrow)]
554    pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
555    #[serde(skip_serializing_if = "std::option::Option::is_none")]
556    #[serde(borrow)]
557    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
558    #[serde(skip_serializing_if = "std::option::Option::is_none")]
559    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
560    #[serde(skip_serializing_if = "std::option::Option::is_none")]
561    #[serde(borrow)]
562    pub description: std::option::Option<jacquard_common::CowStr<'a>>,
563    #[serde(borrow)]
564    pub did: jacquard_common::types::string::Did<'a>,
565    #[serde(skip_serializing_if = "std::option::Option::is_none")]
566    #[serde(borrow)]
567    pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
568    #[serde(borrow)]
569    pub handle: jacquard_common::types::string::Handle<'a>,
570    #[serde(skip_serializing_if = "std::option::Option::is_none")]
571    pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>,
572    #[serde(skip_serializing_if = "std::option::Option::is_none")]
573    #[serde(borrow)]
574    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
575    #[serde(skip_serializing_if = "std::option::Option::is_none")]
576    #[serde(borrow)]
577    pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
578    #[serde(skip_serializing_if = "std::option::Option::is_none")]
579    #[serde(borrow)]
580    pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
581    #[serde(skip_serializing_if = "std::option::Option::is_none")]
582    #[serde(borrow)]
583    pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
584    #[serde(skip_serializing_if = "std::option::Option::is_none")]
585    #[serde(borrow)]
586    pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
587}
588
589#[jacquard_derive::lexicon]
590#[derive(
591    serde::Serialize,
592    serde::Deserialize,
593    Debug,
594    Clone,
595    PartialEq,
596    Eq,
597    jacquard_derive::IntoStatic
598)]
599#[serde(rename_all = "camelCase")]
600pub struct ProfileViewBasic<'a> {
601    #[serde(skip_serializing_if = "std::option::Option::is_none")]
602    #[serde(borrow)]
603    pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
604    #[serde(skip_serializing_if = "std::option::Option::is_none")]
605    #[serde(borrow)]
606    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
607    #[serde(skip_serializing_if = "std::option::Option::is_none")]
608    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
609    #[serde(borrow)]
610    pub did: jacquard_common::types::string::Did<'a>,
611    #[serde(skip_serializing_if = "std::option::Option::is_none")]
612    #[serde(borrow)]
613    pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
614    #[serde(borrow)]
615    pub handle: jacquard_common::types::string::Handle<'a>,
616    #[serde(skip_serializing_if = "std::option::Option::is_none")]
617    #[serde(borrow)]
618    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
619    #[serde(skip_serializing_if = "std::option::Option::is_none")]
620    #[serde(borrow)]
621    pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
622    #[serde(skip_serializing_if = "std::option::Option::is_none")]
623    #[serde(borrow)]
624    pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
625    #[serde(skip_serializing_if = "std::option::Option::is_none")]
626    #[serde(borrow)]
627    pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
628    #[serde(skip_serializing_if = "std::option::Option::is_none")]
629    #[serde(borrow)]
630    pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
631}
632
633#[jacquard_derive::lexicon]
634#[derive(
635    serde::Serialize,
636    serde::Deserialize,
637    Debug,
638    Clone,
639    PartialEq,
640    Eq,
641    jacquard_derive::IntoStatic
642)]
643#[serde(rename_all = "camelCase")]
644pub struct ProfileViewDetailed<'a> {
645    #[serde(skip_serializing_if = "std::option::Option::is_none")]
646    #[serde(borrow)]
647    pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
648    #[serde(skip_serializing_if = "std::option::Option::is_none")]
649    #[serde(borrow)]
650    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
651    #[serde(skip_serializing_if = "std::option::Option::is_none")]
652    #[serde(borrow)]
653    pub banner: std::option::Option<jacquard_common::types::string::Uri<'a>>,
654    #[serde(skip_serializing_if = "std::option::Option::is_none")]
655    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
656    #[serde(skip_serializing_if = "std::option::Option::is_none")]
657    #[serde(borrow)]
658    pub description: std::option::Option<jacquard_common::CowStr<'a>>,
659    #[serde(borrow)]
660    pub did: jacquard_common::types::string::Did<'a>,
661    #[serde(skip_serializing_if = "std::option::Option::is_none")]
662    #[serde(borrow)]
663    pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
664    #[serde(skip_serializing_if = "std::option::Option::is_none")]
665    pub followers_count: std::option::Option<i64>,
666    #[serde(skip_serializing_if = "std::option::Option::is_none")]
667    pub follows_count: std::option::Option<i64>,
668    #[serde(borrow)]
669    pub handle: jacquard_common::types::string::Handle<'a>,
670    #[serde(skip_serializing_if = "std::option::Option::is_none")]
671    pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>,
672    #[serde(skip_serializing_if = "std::option::Option::is_none")]
673    #[serde(borrow)]
674    pub joined_via_starter_pack: std::option::Option<
675        crate::app_bsky::graph::StarterPackViewBasic<'a>,
676    >,
677    #[serde(skip_serializing_if = "std::option::Option::is_none")]
678    #[serde(borrow)]
679    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
680    #[serde(skip_serializing_if = "std::option::Option::is_none")]
681    #[serde(borrow)]
682    pub pinned_post: std::option::Option<
683        crate::com_atproto::repo::strong_ref::StrongRef<'a>,
684    >,
685    #[serde(skip_serializing_if = "std::option::Option::is_none")]
686    pub posts_count: std::option::Option<i64>,
687    #[serde(skip_serializing_if = "std::option::Option::is_none")]
688    #[serde(borrow)]
689    pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
690    #[serde(skip_serializing_if = "std::option::Option::is_none")]
691    #[serde(borrow)]
692    pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
693    #[serde(skip_serializing_if = "std::option::Option::is_none")]
694    #[serde(borrow)]
695    pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
696    #[serde(skip_serializing_if = "std::option::Option::is_none")]
697    #[serde(borrow)]
698    pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
699    #[serde(skip_serializing_if = "std::option::Option::is_none")]
700    #[serde(borrow)]
701    pub website: std::option::Option<jacquard_common::types::string::Uri<'a>>,
702}
703
704#[jacquard_derive::lexicon]
705#[derive(
706    serde::Serialize,
707    serde::Deserialize,
708    Debug,
709    Clone,
710    PartialEq,
711    Eq,
712    jacquard_derive::IntoStatic
713)]
714#[serde(rename_all = "camelCase")]
715pub struct SavedFeed<'a> {
716    #[serde(borrow)]
717    pub id: jacquard_common::CowStr<'a>,
718    pub pinned: bool,
719    #[serde(borrow)]
720    pub r#type: jacquard_common::CowStr<'a>,
721    #[serde(borrow)]
722    pub value: jacquard_common::CowStr<'a>,
723}
724
725#[jacquard_derive::lexicon]
726#[derive(
727    serde::Serialize,
728    serde::Deserialize,
729    Debug,
730    Clone,
731    PartialEq,
732    Eq,
733    jacquard_derive::IntoStatic
734)]
735#[serde(rename_all = "camelCase")]
736pub struct SavedFeedsPref<'a> {
737    #[serde(borrow)]
738    pub pinned: Vec<jacquard_common::types::string::AtUri<'a>>,
739    #[serde(borrow)]
740    pub saved: Vec<jacquard_common::types::string::AtUri<'a>>,
741    #[serde(skip_serializing_if = "std::option::Option::is_none")]
742    pub timeline_index: std::option::Option<i64>,
743}
744
745#[jacquard_derive::lexicon]
746#[derive(
747    serde::Serialize,
748    serde::Deserialize,
749    Debug,
750    Clone,
751    PartialEq,
752    Eq,
753    jacquard_derive::IntoStatic
754)]
755#[serde(rename_all = "camelCase")]
756pub struct SavedFeedsPrefV2<'a> {
757    #[serde(borrow)]
758    pub items: Vec<crate::app_bsky::actor::SavedFeed<'a>>,
759}
760
761#[jacquard_derive::lexicon]
762#[derive(
763    serde::Serialize,
764    serde::Deserialize,
765    Debug,
766    Clone,
767    PartialEq,
768    Eq,
769    jacquard_derive::IntoStatic
770)]
771#[serde(rename_all = "camelCase")]
772pub struct StatusView<'a> {
773    ///An optional embed associated with the status.
774    #[serde(skip_serializing_if = "std::option::Option::is_none")]
775    #[serde(borrow)]
776    pub embed: std::option::Option<crate::app_bsky::embed::external::View<'a>>,
777    ///The date when this status will expire. The application might choose to no longer return the status after expiration.
778    #[serde(skip_serializing_if = "std::option::Option::is_none")]
779    pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
780    ///True if the status is not expired, false if it is expired. Only present if expiration was set.
781    #[serde(skip_serializing_if = "std::option::Option::is_none")]
782    pub is_active: std::option::Option<bool>,
783    #[serde(borrow)]
784    pub record: jacquard_common::types::value::Data<'a>,
785    ///The status for the account.
786    #[serde(borrow)]
787    pub status: jacquard_common::CowStr<'a>,
788}
789
790#[jacquard_derive::lexicon]
791#[derive(
792    serde::Serialize,
793    serde::Deserialize,
794    Debug,
795    Clone,
796    PartialEq,
797    Eq,
798    jacquard_derive::IntoStatic
799)]
800#[serde(rename_all = "camelCase")]
801pub struct ThreadViewPref<'a> {
802    ///Show followed users at the top of all replies.
803    #[serde(skip_serializing_if = "std::option::Option::is_none")]
804    pub prioritize_followed_users: std::option::Option<bool>,
805    ///Sorting mode for threads.
806    #[serde(skip_serializing_if = "std::option::Option::is_none")]
807    #[serde(borrow)]
808    pub sort: std::option::Option<jacquard_common::CowStr<'a>>,
809}
810
811///Preferences for how verified accounts appear in the app.
812#[jacquard_derive::lexicon]
813#[derive(
814    serde::Serialize,
815    serde::Deserialize,
816    Debug,
817    Clone,
818    PartialEq,
819    Eq,
820    jacquard_derive::IntoStatic
821)]
822#[serde(rename_all = "camelCase")]
823pub struct VerificationPrefs<'a> {
824    ///Hide the blue check badges for verified accounts and trusted verifiers.
825    #[serde(skip_serializing_if = "std::option::Option::is_none")]
826    pub hide_badges: std::option::Option<bool>,
827}
828
829///Represents the verification information about the user this object is attached to.
830#[jacquard_derive::lexicon]
831#[derive(
832    serde::Serialize,
833    serde::Deserialize,
834    Debug,
835    Clone,
836    PartialEq,
837    Eq,
838    jacquard_derive::IntoStatic
839)]
840#[serde(rename_all = "camelCase")]
841pub struct VerificationState<'a> {
842    ///The user's status as a trusted verifier.
843    #[serde(borrow)]
844    pub trusted_verifier_status: jacquard_common::CowStr<'a>,
845    ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.
846    #[serde(borrow)]
847    pub verifications: Vec<crate::app_bsky::actor::VerificationView<'a>>,
848    ///The user's status as a verified account.
849    #[serde(borrow)]
850    pub verified_status: jacquard_common::CowStr<'a>,
851}
852
853///An individual verification for an associated subject.
854#[jacquard_derive::lexicon]
855#[derive(
856    serde::Serialize,
857    serde::Deserialize,
858    Debug,
859    Clone,
860    PartialEq,
861    Eq,
862    jacquard_derive::IntoStatic
863)]
864#[serde(rename_all = "camelCase")]
865pub struct VerificationView<'a> {
866    ///Timestamp when the verification was created.
867    pub created_at: jacquard_common::types::string::Datetime,
868    ///True if the verification passes validation, otherwise false.
869    pub is_valid: bool,
870    ///The user who issued this verification.
871    #[serde(borrow)]
872    pub issuer: jacquard_common::types::string::Did<'a>,
873    ///The AT-URI of the verification record.
874    #[serde(borrow)]
875    pub uri: jacquard_common::types::string::AtUri<'a>,
876}
877
878///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
879#[jacquard_derive::lexicon]
880#[derive(
881    serde::Serialize,
882    serde::Deserialize,
883    Debug,
884    Clone,
885    PartialEq,
886    Eq,
887    jacquard_derive::IntoStatic
888)]
889#[serde(rename_all = "camelCase")]
890pub struct ViewerState<'a> {
891    ///This property is present only in selected cases, as an optimization.
892    #[serde(skip_serializing_if = "std::option::Option::is_none")]
893    #[serde(borrow)]
894    pub activity_subscription: std::option::Option<
895        crate::app_bsky::notification::ActivitySubscription<'a>,
896    >,
897    #[serde(skip_serializing_if = "std::option::Option::is_none")]
898    pub blocked_by: std::option::Option<bool>,
899    #[serde(skip_serializing_if = "std::option::Option::is_none")]
900    #[serde(borrow)]
901    pub blocking: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
902    #[serde(skip_serializing_if = "std::option::Option::is_none")]
903    #[serde(borrow)]
904    pub blocking_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
905    #[serde(skip_serializing_if = "std::option::Option::is_none")]
906    #[serde(borrow)]
907    pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
908    #[serde(skip_serializing_if = "std::option::Option::is_none")]
909    #[serde(borrow)]
910    pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
911    ///This property is present only in selected cases, as an optimization.
912    #[serde(skip_serializing_if = "std::option::Option::is_none")]
913    #[serde(borrow)]
914    pub known_followers: std::option::Option<crate::app_bsky::actor::KnownFollowers<'a>>,
915    #[serde(skip_serializing_if = "std::option::Option::is_none")]
916    pub muted: std::option::Option<bool>,
917    #[serde(skip_serializing_if = "std::option::Option::is_none")]
918    #[serde(borrow)]
919    pub muted_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
920}