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<jacquard_common::types::value::Data<'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<jacquard_common::types::value::Data<'a>>,
406    >,
407}
408
409pub type Preferences<'a> = Vec<jacquard_common::types::value::Data<'a>>;
410#[jacquard_derive::lexicon]
411#[derive(
412    serde::Serialize,
413    serde::Deserialize,
414    Debug,
415    Clone,
416    PartialEq,
417    Eq,
418    jacquard_derive::IntoStatic
419)]
420#[serde(rename_all = "camelCase")]
421pub struct ProfileAssociated<'a> {
422    #[serde(skip_serializing_if = "std::option::Option::is_none")]
423    #[serde(borrow)]
424    pub activity_subscription: std::option::Option<
425        crate::app_bsky::actor::ProfileAssociatedActivitySubscription<'a>,
426    >,
427    #[serde(skip_serializing_if = "std::option::Option::is_none")]
428    #[serde(borrow)]
429    pub chat: std::option::Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>,
430    #[serde(skip_serializing_if = "std::option::Option::is_none")]
431    pub feedgens: std::option::Option<i64>,
432    #[serde(skip_serializing_if = "std::option::Option::is_none")]
433    pub labeler: std::option::Option<bool>,
434    #[serde(skip_serializing_if = "std::option::Option::is_none")]
435    pub lists: std::option::Option<i64>,
436    #[serde(skip_serializing_if = "std::option::Option::is_none")]
437    pub starter_packs: std::option::Option<i64>,
438}
439
440#[jacquard_derive::lexicon]
441#[derive(
442    serde::Serialize,
443    serde::Deserialize,
444    Debug,
445    Clone,
446    PartialEq,
447    Eq,
448    jacquard_derive::IntoStatic
449)]
450#[serde(rename_all = "camelCase")]
451pub struct ProfileAssociatedActivitySubscription<'a> {
452    #[serde(borrow)]
453    pub allow_subscriptions: jacquard_common::CowStr<'a>,
454}
455
456#[jacquard_derive::lexicon]
457#[derive(
458    serde::Serialize,
459    serde::Deserialize,
460    Debug,
461    Clone,
462    PartialEq,
463    Eq,
464    jacquard_derive::IntoStatic
465)]
466#[serde(rename_all = "camelCase")]
467pub struct ProfileAssociatedChat<'a> {
468    #[serde(borrow)]
469    pub allow_incoming: jacquard_common::CowStr<'a>,
470}
471
472#[jacquard_derive::lexicon]
473#[derive(
474    serde::Serialize,
475    serde::Deserialize,
476    Debug,
477    Clone,
478    PartialEq,
479    Eq,
480    jacquard_derive::IntoStatic
481)]
482#[serde(rename_all = "camelCase")]
483pub struct ProfileView<'a> {
484    #[serde(skip_serializing_if = "std::option::Option::is_none")]
485    #[serde(borrow)]
486    pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
487    #[serde(skip_serializing_if = "std::option::Option::is_none")]
488    #[serde(borrow)]
489    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
490    #[serde(skip_serializing_if = "std::option::Option::is_none")]
491    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
492    #[serde(skip_serializing_if = "std::option::Option::is_none")]
493    #[serde(borrow)]
494    pub description: std::option::Option<jacquard_common::CowStr<'a>>,
495    #[serde(borrow)]
496    pub did: jacquard_common::types::string::Did<'a>,
497    #[serde(skip_serializing_if = "std::option::Option::is_none")]
498    #[serde(borrow)]
499    pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
500    #[serde(borrow)]
501    pub handle: jacquard_common::types::string::Handle<'a>,
502    #[serde(skip_serializing_if = "std::option::Option::is_none")]
503    pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>,
504    #[serde(skip_serializing_if = "std::option::Option::is_none")]
505    #[serde(borrow)]
506    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
507    #[serde(skip_serializing_if = "std::option::Option::is_none")]
508    #[serde(borrow)]
509    pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
510    #[serde(skip_serializing_if = "std::option::Option::is_none")]
511    #[serde(borrow)]
512    pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
513    #[serde(skip_serializing_if = "std::option::Option::is_none")]
514    #[serde(borrow)]
515    pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
516    #[serde(skip_serializing_if = "std::option::Option::is_none")]
517    #[serde(borrow)]
518    pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
519}
520
521#[jacquard_derive::lexicon]
522#[derive(
523    serde::Serialize,
524    serde::Deserialize,
525    Debug,
526    Clone,
527    PartialEq,
528    Eq,
529    jacquard_derive::IntoStatic
530)]
531#[serde(rename_all = "camelCase")]
532pub struct ProfileViewBasic<'a> {
533    #[serde(skip_serializing_if = "std::option::Option::is_none")]
534    #[serde(borrow)]
535    pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
536    #[serde(skip_serializing_if = "std::option::Option::is_none")]
537    #[serde(borrow)]
538    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
539    #[serde(skip_serializing_if = "std::option::Option::is_none")]
540    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
541    #[serde(borrow)]
542    pub did: jacquard_common::types::string::Did<'a>,
543    #[serde(skip_serializing_if = "std::option::Option::is_none")]
544    #[serde(borrow)]
545    pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
546    #[serde(borrow)]
547    pub handle: jacquard_common::types::string::Handle<'a>,
548    #[serde(skip_serializing_if = "std::option::Option::is_none")]
549    #[serde(borrow)]
550    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
551    #[serde(skip_serializing_if = "std::option::Option::is_none")]
552    #[serde(borrow)]
553    pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
554    #[serde(skip_serializing_if = "std::option::Option::is_none")]
555    #[serde(borrow)]
556    pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
557    #[serde(skip_serializing_if = "std::option::Option::is_none")]
558    #[serde(borrow)]
559    pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
560    #[serde(skip_serializing_if = "std::option::Option::is_none")]
561    #[serde(borrow)]
562    pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
563}
564
565#[jacquard_derive::lexicon]
566#[derive(
567    serde::Serialize,
568    serde::Deserialize,
569    Debug,
570    Clone,
571    PartialEq,
572    Eq,
573    jacquard_derive::IntoStatic
574)]
575#[serde(rename_all = "camelCase")]
576pub struct ProfileViewDetailed<'a> {
577    #[serde(skip_serializing_if = "std::option::Option::is_none")]
578    #[serde(borrow)]
579    pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
580    #[serde(skip_serializing_if = "std::option::Option::is_none")]
581    #[serde(borrow)]
582    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
583    #[serde(skip_serializing_if = "std::option::Option::is_none")]
584    #[serde(borrow)]
585    pub banner: std::option::Option<jacquard_common::types::string::Uri<'a>>,
586    #[serde(skip_serializing_if = "std::option::Option::is_none")]
587    pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
588    #[serde(skip_serializing_if = "std::option::Option::is_none")]
589    #[serde(borrow)]
590    pub description: std::option::Option<jacquard_common::CowStr<'a>>,
591    #[serde(borrow)]
592    pub did: jacquard_common::types::string::Did<'a>,
593    #[serde(skip_serializing_if = "std::option::Option::is_none")]
594    #[serde(borrow)]
595    pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
596    #[serde(skip_serializing_if = "std::option::Option::is_none")]
597    pub followers_count: std::option::Option<i64>,
598    #[serde(skip_serializing_if = "std::option::Option::is_none")]
599    pub follows_count: std::option::Option<i64>,
600    #[serde(borrow)]
601    pub handle: jacquard_common::types::string::Handle<'a>,
602    #[serde(skip_serializing_if = "std::option::Option::is_none")]
603    pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>,
604    #[serde(skip_serializing_if = "std::option::Option::is_none")]
605    #[serde(borrow)]
606    pub joined_via_starter_pack: std::option::Option<
607        crate::app_bsky::graph::StarterPackViewBasic<'a>,
608    >,
609    #[serde(skip_serializing_if = "std::option::Option::is_none")]
610    #[serde(borrow)]
611    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
612    #[serde(skip_serializing_if = "std::option::Option::is_none")]
613    #[serde(borrow)]
614    pub pinned_post: std::option::Option<
615        crate::com_atproto::repo::strong_ref::StrongRef<'a>,
616    >,
617    #[serde(skip_serializing_if = "std::option::Option::is_none")]
618    pub posts_count: std::option::Option<i64>,
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    #[serde(skip_serializing_if = "std::option::Option::is_none")]
632    #[serde(borrow)]
633    pub website: std::option::Option<jacquard_common::types::string::Uri<'a>>,
634}
635
636#[jacquard_derive::lexicon]
637#[derive(
638    serde::Serialize,
639    serde::Deserialize,
640    Debug,
641    Clone,
642    PartialEq,
643    Eq,
644    jacquard_derive::IntoStatic
645)]
646#[serde(rename_all = "camelCase")]
647pub struct SavedFeed<'a> {
648    #[serde(borrow)]
649    pub id: jacquard_common::CowStr<'a>,
650    pub pinned: bool,
651    #[serde(borrow)]
652    pub r#type: jacquard_common::CowStr<'a>,
653    #[serde(borrow)]
654    pub value: jacquard_common::CowStr<'a>,
655}
656
657#[jacquard_derive::lexicon]
658#[derive(
659    serde::Serialize,
660    serde::Deserialize,
661    Debug,
662    Clone,
663    PartialEq,
664    Eq,
665    jacquard_derive::IntoStatic
666)]
667#[serde(rename_all = "camelCase")]
668pub struct SavedFeedsPref<'a> {
669    #[serde(borrow)]
670    pub pinned: Vec<jacquard_common::types::string::AtUri<'a>>,
671    #[serde(borrow)]
672    pub saved: Vec<jacquard_common::types::string::AtUri<'a>>,
673    #[serde(skip_serializing_if = "std::option::Option::is_none")]
674    pub timeline_index: std::option::Option<i64>,
675}
676
677#[jacquard_derive::lexicon]
678#[derive(
679    serde::Serialize,
680    serde::Deserialize,
681    Debug,
682    Clone,
683    PartialEq,
684    Eq,
685    jacquard_derive::IntoStatic
686)]
687#[serde(rename_all = "camelCase")]
688pub struct SavedFeedsPrefV2<'a> {
689    #[serde(borrow)]
690    pub items: Vec<crate::app_bsky::actor::SavedFeed<'a>>,
691}
692
693#[jacquard_derive::lexicon]
694#[derive(
695    serde::Serialize,
696    serde::Deserialize,
697    Debug,
698    Clone,
699    PartialEq,
700    Eq,
701    jacquard_derive::IntoStatic
702)]
703#[serde(rename_all = "camelCase")]
704pub struct StatusView<'a> {
705    ///An optional embed associated with the status.
706    #[serde(skip_serializing_if = "std::option::Option::is_none")]
707    #[serde(borrow)]
708    pub embed: std::option::Option<StatusViewRecordEmbed<'a>>,
709    ///The date when this status will expire. The application might choose to no longer return the status after expiration.
710    #[serde(skip_serializing_if = "std::option::Option::is_none")]
711    pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
712    ///True if the status is not expired, false if it is expired. Only present if expiration was set.
713    #[serde(skip_serializing_if = "std::option::Option::is_none")]
714    pub is_active: std::option::Option<bool>,
715    #[serde(borrow)]
716    pub record: jacquard_common::types::value::Data<'a>,
717    ///The status for the account.
718    #[serde(borrow)]
719    pub status: jacquard_common::CowStr<'a>,
720}
721
722#[jacquard_derive::open_union]
723#[derive(
724    serde::Serialize,
725    serde::Deserialize,
726    Debug,
727    Clone,
728    PartialEq,
729    Eq,
730    jacquard_derive::IntoStatic
731)]
732#[serde(tag = "$type")]
733#[serde(bound(deserialize = "'de: 'a"))]
734pub enum StatusViewRecordEmbed<'a> {
735    #[serde(rename = "app.bsky.embed.external#view")]
736    ExternalView(Box<crate::app_bsky::embed::external::View<'a>>),
737}
738
739#[jacquard_derive::lexicon]
740#[derive(
741    serde::Serialize,
742    serde::Deserialize,
743    Debug,
744    Clone,
745    PartialEq,
746    Eq,
747    jacquard_derive::IntoStatic
748)]
749#[serde(rename_all = "camelCase")]
750pub struct ThreadViewPref<'a> {
751    ///Show followed users at the top of all replies.
752    #[serde(skip_serializing_if = "std::option::Option::is_none")]
753    pub prioritize_followed_users: std::option::Option<bool>,
754    ///Sorting mode for threads.
755    #[serde(skip_serializing_if = "std::option::Option::is_none")]
756    #[serde(borrow)]
757    pub sort: std::option::Option<jacquard_common::CowStr<'a>>,
758}
759
760///Preferences for how verified accounts appear in the app.
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 VerificationPrefs<'a> {
773    ///Hide the blue check badges for verified accounts and trusted verifiers.
774    #[serde(skip_serializing_if = "std::option::Option::is_none")]
775    pub hide_badges: std::option::Option<bool>,
776}
777
778///Represents the verification information about the user this object is attached to.
779#[jacquard_derive::lexicon]
780#[derive(
781    serde::Serialize,
782    serde::Deserialize,
783    Debug,
784    Clone,
785    PartialEq,
786    Eq,
787    jacquard_derive::IntoStatic
788)]
789#[serde(rename_all = "camelCase")]
790pub struct VerificationState<'a> {
791    ///The user's status as a trusted verifier.
792    #[serde(borrow)]
793    pub trusted_verifier_status: jacquard_common::CowStr<'a>,
794    ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.
795    #[serde(borrow)]
796    pub verifications: Vec<crate::app_bsky::actor::VerificationView<'a>>,
797    ///The user's status as a verified account.
798    #[serde(borrow)]
799    pub verified_status: jacquard_common::CowStr<'a>,
800}
801
802///An individual verification for an associated subject.
803#[jacquard_derive::lexicon]
804#[derive(
805    serde::Serialize,
806    serde::Deserialize,
807    Debug,
808    Clone,
809    PartialEq,
810    Eq,
811    jacquard_derive::IntoStatic
812)]
813#[serde(rename_all = "camelCase")]
814pub struct VerificationView<'a> {
815    ///Timestamp when the verification was created.
816    pub created_at: jacquard_common::types::string::Datetime,
817    ///True if the verification passes validation, otherwise false.
818    pub is_valid: bool,
819    ///The user who issued this verification.
820    #[serde(borrow)]
821    pub issuer: jacquard_common::types::string::Did<'a>,
822    ///The AT-URI of the verification record.
823    #[serde(borrow)]
824    pub uri: jacquard_common::types::string::AtUri<'a>,
825}
826
827///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
828#[jacquard_derive::lexicon]
829#[derive(
830    serde::Serialize,
831    serde::Deserialize,
832    Debug,
833    Clone,
834    PartialEq,
835    Eq,
836    jacquard_derive::IntoStatic
837)]
838#[serde(rename_all = "camelCase")]
839pub struct ViewerState<'a> {
840    ///This property is present only in selected cases, as an optimization.
841    #[serde(skip_serializing_if = "std::option::Option::is_none")]
842    #[serde(borrow)]
843    pub activity_subscription: std::option::Option<
844        crate::app_bsky::notification::ActivitySubscription<'a>,
845    >,
846    #[serde(skip_serializing_if = "std::option::Option::is_none")]
847    pub blocked_by: std::option::Option<bool>,
848    #[serde(skip_serializing_if = "std::option::Option::is_none")]
849    #[serde(borrow)]
850    pub blocking: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
851    #[serde(skip_serializing_if = "std::option::Option::is_none")]
852    #[serde(borrow)]
853    pub blocking_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
854    #[serde(skip_serializing_if = "std::option::Option::is_none")]
855    #[serde(borrow)]
856    pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
857    #[serde(skip_serializing_if = "std::option::Option::is_none")]
858    #[serde(borrow)]
859    pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
860    ///This property is present only in selected cases, as an optimization.
861    #[serde(skip_serializing_if = "std::option::Option::is_none")]
862    #[serde(borrow)]
863    pub known_followers: std::option::Option<crate::app_bsky::actor::KnownFollowers<'a>>,
864    #[serde(skip_serializing_if = "std::option::Option::is_none")]
865    pub muted: std::option::Option<bool>,
866    #[serde(skip_serializing_if = "std::option::Option::is_none")]
867    #[serde(borrow)]
868    pub muted_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
869}