Skip to main content

atrium_api/app/bsky/actor/
defs.rs

1// @generated - This file is generated by atrium-codegen. DO NOT EDIT.
2//!Definitions for the `app.bsky.actor.defs` namespace.
3#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
4#[serde(rename_all = "camelCase")]
5pub struct AdultContentPrefData {
6    pub enabled: bool,
7}
8pub type AdultContentPref = crate::types::Object<AdultContentPrefData>;
9///If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.
10#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
11#[serde(rename_all = "camelCase")]
12pub struct BskyAppProgressGuideData {
13    pub guide: String,
14}
15pub type BskyAppProgressGuide = crate::types::Object<BskyAppProgressGuideData>;
16///A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.
17#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
18#[serde(rename_all = "camelCase")]
19pub struct BskyAppStatePrefData {
20    #[serde(skip_serializing_if = "core::option::Option::is_none")]
21    pub active_progress_guide: core::option::Option<BskyAppProgressGuide>,
22    ///Indicates if the user is participating in the beta features program.
23    #[serde(skip_serializing_if = "core::option::Option::is_none")]
24    pub is_beta_user: core::option::Option<bool>,
25    ///Storage for NUXs the user has encountered.
26    #[serde(skip_serializing_if = "core::option::Option::is_none")]
27    pub nuxs: core::option::Option<Vec<crate::app::bsky::actor::defs::Nux>>,
28    ///An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.
29    #[serde(skip_serializing_if = "core::option::Option::is_none")]
30    pub queued_nudges: core::option::Option<Vec<String>>,
31}
32pub type BskyAppStatePref = crate::types::Object<BskyAppStatePrefData>;
33#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
34#[serde(rename_all = "camelCase")]
35pub struct ContentLabelPrefData {
36    pub label: String,
37    ///Which labeler does this preference apply to? If undefined, applies globally.
38    #[serde(skip_serializing_if = "core::option::Option::is_none")]
39    pub labeler_did: core::option::Option<crate::types::string::Did>,
40    pub visibility: String,
41}
42pub type ContentLabelPref = crate::types::Object<ContentLabelPrefData>;
43///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.
44#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
45#[serde(rename_all = "camelCase")]
46pub struct DeclaredAgePrefData {
47    ///Indicates if the user has declared that they are over 13 years of age.
48    #[serde(skip_serializing_if = "core::option::Option::is_none")]
49    pub is_over_age13: core::option::Option<bool>,
50    ///Indicates if the user has declared that they are over 16 years of age.
51    #[serde(skip_serializing_if = "core::option::Option::is_none")]
52    pub is_over_age16: core::option::Option<bool>,
53    ///Indicates if the user has declared that they are over 18 years of age.
54    #[serde(skip_serializing_if = "core::option::Option::is_none")]
55    pub is_over_age18: core::option::Option<bool>,
56}
57pub type DeclaredAgePref = crate::types::Object<DeclaredAgePrefData>;
58#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
59#[serde(rename_all = "camelCase")]
60pub struct FeedViewPrefData {
61    ///The URI of the feed, or an identifier which describes the feed.
62    pub feed: String,
63    ///Hide quote posts in the feed.
64    #[serde(skip_serializing_if = "core::option::Option::is_none")]
65    pub hide_quote_posts: core::option::Option<bool>,
66    ///Hide replies in the feed.
67    #[serde(skip_serializing_if = "core::option::Option::is_none")]
68    pub hide_replies: core::option::Option<bool>,
69    ///Hide replies in the feed if they do not have this number of likes.
70    #[serde(skip_serializing_if = "core::option::Option::is_none")]
71    pub hide_replies_by_like_count: core::option::Option<i64>,
72    ///Hide replies in the feed if they are not by followed users.
73    #[serde(skip_serializing_if = "core::option::Option::is_none")]
74    pub hide_replies_by_unfollowed: core::option::Option<bool>,
75    ///Hide reposts in the feed.
76    #[serde(skip_serializing_if = "core::option::Option::is_none")]
77    pub hide_reposts: core::option::Option<bool>,
78}
79pub type FeedViewPref = crate::types::Object<FeedViewPrefData>;
80#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
81#[serde(rename_all = "camelCase")]
82pub struct HiddenPostsPrefData {
83    ///A list of URIs of posts the account owner has hidden.
84    pub items: Vec<String>,
85}
86pub type HiddenPostsPref = crate::types::Object<HiddenPostsPrefData>;
87#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
88#[serde(rename_all = "camelCase")]
89pub struct InterestsPrefData {
90    ///A list of tags which describe the account owner's interests gathered during onboarding.
91    pub tags: Vec<String>,
92}
93pub type InterestsPref = crate::types::Object<InterestsPrefData>;
94///The subject's followers whom you also follow
95#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
96#[serde(rename_all = "camelCase")]
97pub struct KnownFollowersData {
98    pub count: i64,
99    pub followers: Vec<ProfileViewBasic>,
100}
101pub type KnownFollowers = crate::types::Object<KnownFollowersData>;
102#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
103#[serde(rename_all = "camelCase")]
104pub struct LabelerPrefItemData {
105    pub did: crate::types::string::Did,
106}
107pub type LabelerPrefItem = crate::types::Object<LabelerPrefItemData>;
108#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
109#[serde(rename_all = "camelCase")]
110pub struct LabelersPrefData {
111    pub labelers: Vec<LabelerPrefItem>,
112}
113pub type LabelersPref = crate::types::Object<LabelersPrefData>;
114///Preferences for live events.
115#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
116#[serde(rename_all = "camelCase")]
117pub struct LiveEventPreferencesData {
118    ///A list of feed IDs that the user has hidden from live events.
119    #[serde(skip_serializing_if = "core::option::Option::is_none")]
120    pub hidden_feed_ids: core::option::Option<Vec<String>>,
121    ///Whether to hide all feeds from live events.
122    #[serde(skip_serializing_if = "core::option::Option::is_none")]
123    pub hide_all_feeds: core::option::Option<bool>,
124}
125pub type LiveEventPreferences = crate::types::Object<LiveEventPreferencesData>;
126///A word that the account owner has muted.
127#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
128#[serde(rename_all = "camelCase")]
129pub struct MutedWordData {
130    ///Groups of users to apply the muted word to. If undefined, applies to all users.
131    #[serde(skip_serializing_if = "core::option::Option::is_none")]
132    pub actor_target: core::option::Option<String>,
133    ///The date and time at which the muted word will expire and no longer be applied.
134    #[serde(skip_serializing_if = "core::option::Option::is_none")]
135    pub expires_at: core::option::Option<crate::types::string::Datetime>,
136    #[serde(skip_serializing_if = "core::option::Option::is_none")]
137    pub id: core::option::Option<String>,
138    ///The intended targets of the muted word.
139    pub targets: Vec<crate::app::bsky::actor::defs::MutedWordTarget>,
140    ///The muted word itself.
141    pub value: String,
142}
143pub type MutedWord = crate::types::Object<MutedWordData>;
144pub type MutedWordTarget = String;
145#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
146#[serde(rename_all = "camelCase")]
147pub struct MutedWordsPrefData {
148    ///A list of words the account owner has muted.
149    pub items: Vec<crate::app::bsky::actor::defs::MutedWord>,
150}
151pub type MutedWordsPref = crate::types::Object<MutedWordsPrefData>;
152///A new user experiences (NUX) storage object
153#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
154#[serde(rename_all = "camelCase")]
155pub struct NuxData {
156    pub completed: bool,
157    ///Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.
158    #[serde(skip_serializing_if = "core::option::Option::is_none")]
159    pub data: core::option::Option<String>,
160    ///The date and time at which the NUX will expire and should be considered completed.
161    #[serde(skip_serializing_if = "core::option::Option::is_none")]
162    pub expires_at: core::option::Option<crate::types::string::Datetime>,
163    pub id: String,
164}
165pub type Nux = crate::types::Object<NuxData>;
166#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
167#[serde(rename_all = "camelCase")]
168pub struct PersonalDetailsPrefData {
169    ///The birth date of account owner.
170    #[serde(skip_serializing_if = "core::option::Option::is_none")]
171    pub birth_date: core::option::Option<crate::types::string::Datetime>,
172}
173pub type PersonalDetailsPref = crate::types::Object<PersonalDetailsPrefData>;
174///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.
175#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
176#[serde(rename_all = "camelCase")]
177pub struct PostInteractionSettingsPrefData {
178    ///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.
179    #[serde(skip_serializing_if = "core::option::Option::is_none")]
180    pub postgate_embedding_rules: core::option::Option<
181        Vec<crate::types::Union<PostInteractionSettingsPrefPostgateEmbeddingRulesItem>>,
182    >,
183    ///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.
184    #[serde(skip_serializing_if = "core::option::Option::is_none")]
185    pub threadgate_allow_rules: core::option::Option<
186        Vec<crate::types::Union<PostInteractionSettingsPrefThreadgateAllowRulesItem>>,
187    >,
188}
189pub type PostInteractionSettingsPref = crate::types::Object<
190    PostInteractionSettingsPrefData,
191>;
192pub type Preferences = Vec<crate::types::Union<PreferencesItem>>;
193#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
194#[serde(rename_all = "camelCase")]
195pub struct ProfileAssociatedData {
196    #[serde(skip_serializing_if = "core::option::Option::is_none")]
197    pub activity_subscription: core::option::Option<
198        ProfileAssociatedActivitySubscription,
199    >,
200    #[serde(skip_serializing_if = "core::option::Option::is_none")]
201    pub chat: core::option::Option<ProfileAssociatedChat>,
202    #[serde(skip_serializing_if = "core::option::Option::is_none")]
203    pub feedgens: core::option::Option<i64>,
204    #[serde(skip_serializing_if = "core::option::Option::is_none")]
205    pub germ: core::option::Option<ProfileAssociatedGerm>,
206    #[serde(skip_serializing_if = "core::option::Option::is_none")]
207    pub labeler: core::option::Option<bool>,
208    #[serde(skip_serializing_if = "core::option::Option::is_none")]
209    pub lists: core::option::Option<i64>,
210    #[serde(skip_serializing_if = "core::option::Option::is_none")]
211    pub starter_packs: core::option::Option<i64>,
212}
213pub type ProfileAssociated = crate::types::Object<ProfileAssociatedData>;
214#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
215#[serde(rename_all = "camelCase")]
216pub struct ProfileAssociatedActivitySubscriptionData {
217    pub allow_subscriptions: String,
218}
219pub type ProfileAssociatedActivitySubscription = crate::types::Object<
220    ProfileAssociatedActivitySubscriptionData,
221>;
222#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
223#[serde(rename_all = "camelCase")]
224pub struct ProfileAssociatedChatData {
225    #[serde(skip_serializing_if = "core::option::Option::is_none")]
226    pub allow_group_invites: core::option::Option<String>,
227    pub allow_incoming: String,
228}
229pub type ProfileAssociatedChat = crate::types::Object<ProfileAssociatedChatData>;
230#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
231#[serde(rename_all = "camelCase")]
232pub struct ProfileAssociatedGermData {
233    pub message_me_url: String,
234    pub show_button_to: String,
235}
236pub type ProfileAssociatedGerm = crate::types::Object<ProfileAssociatedGermData>;
237#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
238#[serde(rename_all = "camelCase")]
239pub struct ProfileViewData {
240    #[serde(skip_serializing_if = "core::option::Option::is_none")]
241    pub associated: core::option::Option<ProfileAssociated>,
242    #[serde(skip_serializing_if = "core::option::Option::is_none")]
243    pub avatar: core::option::Option<String>,
244    #[serde(skip_serializing_if = "core::option::Option::is_none")]
245    pub created_at: core::option::Option<crate::types::string::Datetime>,
246    ///Debug information for internal development
247    #[serde(skip_serializing_if = "core::option::Option::is_none")]
248    pub debug: core::option::Option<crate::types::Unknown>,
249    #[serde(skip_serializing_if = "core::option::Option::is_none")]
250    pub description: core::option::Option<String>,
251    pub did: crate::types::string::Did,
252    #[serde(skip_serializing_if = "core::option::Option::is_none")]
253    pub display_name: core::option::Option<String>,
254    pub handle: crate::types::string::Handle,
255    #[serde(skip_serializing_if = "core::option::Option::is_none")]
256    pub indexed_at: core::option::Option<crate::types::string::Datetime>,
257    #[serde(skip_serializing_if = "core::option::Option::is_none")]
258    pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
259    #[serde(skip_serializing_if = "core::option::Option::is_none")]
260    pub pronouns: core::option::Option<String>,
261    #[serde(skip_serializing_if = "core::option::Option::is_none")]
262    pub status: core::option::Option<StatusView>,
263    #[serde(skip_serializing_if = "core::option::Option::is_none")]
264    pub verification: core::option::Option<VerificationState>,
265    #[serde(skip_serializing_if = "core::option::Option::is_none")]
266    pub viewer: core::option::Option<ViewerState>,
267}
268pub type ProfileView = crate::types::Object<ProfileViewData>;
269#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
270#[serde(rename_all = "camelCase")]
271pub struct ProfileViewBasicData {
272    #[serde(skip_serializing_if = "core::option::Option::is_none")]
273    pub associated: core::option::Option<ProfileAssociated>,
274    #[serde(skip_serializing_if = "core::option::Option::is_none")]
275    pub avatar: core::option::Option<String>,
276    #[serde(skip_serializing_if = "core::option::Option::is_none")]
277    pub created_at: core::option::Option<crate::types::string::Datetime>,
278    ///Debug information for internal development
279    #[serde(skip_serializing_if = "core::option::Option::is_none")]
280    pub debug: core::option::Option<crate::types::Unknown>,
281    pub did: crate::types::string::Did,
282    #[serde(skip_serializing_if = "core::option::Option::is_none")]
283    pub display_name: core::option::Option<String>,
284    pub handle: crate::types::string::Handle,
285    #[serde(skip_serializing_if = "core::option::Option::is_none")]
286    pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
287    #[serde(skip_serializing_if = "core::option::Option::is_none")]
288    pub pronouns: core::option::Option<String>,
289    #[serde(skip_serializing_if = "core::option::Option::is_none")]
290    pub status: core::option::Option<StatusView>,
291    #[serde(skip_serializing_if = "core::option::Option::is_none")]
292    pub verification: core::option::Option<VerificationState>,
293    #[serde(skip_serializing_if = "core::option::Option::is_none")]
294    pub viewer: core::option::Option<ViewerState>,
295}
296pub type ProfileViewBasic = crate::types::Object<ProfileViewBasicData>;
297#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
298#[serde(rename_all = "camelCase")]
299pub struct ProfileViewDetailedData {
300    #[serde(skip_serializing_if = "core::option::Option::is_none")]
301    pub associated: core::option::Option<ProfileAssociated>,
302    #[serde(skip_serializing_if = "core::option::Option::is_none")]
303    pub avatar: core::option::Option<String>,
304    #[serde(skip_serializing_if = "core::option::Option::is_none")]
305    pub banner: core::option::Option<String>,
306    #[serde(skip_serializing_if = "core::option::Option::is_none")]
307    pub created_at: core::option::Option<crate::types::string::Datetime>,
308    ///Debug information for internal development
309    #[serde(skip_serializing_if = "core::option::Option::is_none")]
310    pub debug: core::option::Option<crate::types::Unknown>,
311    #[serde(skip_serializing_if = "core::option::Option::is_none")]
312    pub description: core::option::Option<String>,
313    pub did: crate::types::string::Did,
314    #[serde(skip_serializing_if = "core::option::Option::is_none")]
315    pub display_name: core::option::Option<String>,
316    #[serde(skip_serializing_if = "core::option::Option::is_none")]
317    pub followers_count: core::option::Option<i64>,
318    #[serde(skip_serializing_if = "core::option::Option::is_none")]
319    pub follows_count: core::option::Option<i64>,
320    pub handle: crate::types::string::Handle,
321    #[serde(skip_serializing_if = "core::option::Option::is_none")]
322    pub indexed_at: core::option::Option<crate::types::string::Datetime>,
323    #[serde(skip_serializing_if = "core::option::Option::is_none")]
324    pub joined_via_starter_pack: core::option::Option<
325        crate::app::bsky::graph::defs::StarterPackViewBasic,
326    >,
327    #[serde(skip_serializing_if = "core::option::Option::is_none")]
328    pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
329    #[serde(skip_serializing_if = "core::option::Option::is_none")]
330    pub pinned_post: core::option::Option<crate::com::atproto::repo::strong_ref::Main>,
331    #[serde(skip_serializing_if = "core::option::Option::is_none")]
332    pub posts_count: core::option::Option<i64>,
333    #[serde(skip_serializing_if = "core::option::Option::is_none")]
334    pub pronouns: core::option::Option<String>,
335    #[serde(skip_serializing_if = "core::option::Option::is_none")]
336    pub status: core::option::Option<StatusView>,
337    #[serde(skip_serializing_if = "core::option::Option::is_none")]
338    pub verification: core::option::Option<VerificationState>,
339    #[serde(skip_serializing_if = "core::option::Option::is_none")]
340    pub viewer: core::option::Option<ViewerState>,
341    #[serde(skip_serializing_if = "core::option::Option::is_none")]
342    pub website: core::option::Option<String>,
343}
344pub type ProfileViewDetailed = crate::types::Object<ProfileViewDetailedData>;
345#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
346#[serde(rename_all = "camelCase")]
347pub struct SavedFeedData {
348    pub id: String,
349    pub pinned: bool,
350    pub r#type: String,
351    pub value: String,
352}
353pub type SavedFeed = crate::types::Object<SavedFeedData>;
354#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
355#[serde(rename_all = "camelCase")]
356pub struct SavedFeedsPrefData {
357    pub pinned: Vec<String>,
358    pub saved: Vec<String>,
359    #[serde(skip_serializing_if = "core::option::Option::is_none")]
360    pub timeline_index: core::option::Option<i64>,
361}
362pub type SavedFeedsPref = crate::types::Object<SavedFeedsPrefData>;
363#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
364#[serde(rename_all = "camelCase")]
365pub struct SavedFeedsPrefV2Data {
366    pub items: Vec<crate::app::bsky::actor::defs::SavedFeed>,
367}
368pub type SavedFeedsPrefV2 = crate::types::Object<SavedFeedsPrefV2Data>;
369#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
370#[serde(rename_all = "camelCase")]
371pub struct StatusViewData {
372    #[serde(skip_serializing_if = "core::option::Option::is_none")]
373    pub cid: core::option::Option<crate::types::string::Cid>,
374    ///An optional embed associated with the status.
375    #[serde(skip_serializing_if = "core::option::Option::is_none")]
376    pub embed: core::option::Option<crate::types::Union<StatusViewEmbedRefs>>,
377    ///The date when this status will expire. The application might choose to no longer return the status after expiration.
378    #[serde(skip_serializing_if = "core::option::Option::is_none")]
379    pub expires_at: core::option::Option<crate::types::string::Datetime>,
380    ///True if the status is not expired, false if it is expired. Only present if expiration was set.
381    #[serde(skip_serializing_if = "core::option::Option::is_none")]
382    pub is_active: core::option::Option<bool>,
383    ///True if the user's go-live access has been disabled by a moderator, false otherwise.
384    #[serde(skip_serializing_if = "core::option::Option::is_none")]
385    pub is_disabled: core::option::Option<bool>,
386    #[serde(skip_serializing_if = "core::option::Option::is_none")]
387    pub labels: core::option::Option<Vec<crate::com::atproto::label::defs::Label>>,
388    pub record: crate::types::Unknown,
389    ///The status for the account.
390    pub status: String,
391    #[serde(skip_serializing_if = "core::option::Option::is_none")]
392    pub uri: core::option::Option<String>,
393}
394pub type StatusView = crate::types::Object<StatusViewData>;
395#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
396#[serde(rename_all = "camelCase")]
397pub struct ThreadViewPrefData {
398    ///Sorting mode for threads.
399    #[serde(skip_serializing_if = "core::option::Option::is_none")]
400    pub sort: core::option::Option<String>,
401}
402pub type ThreadViewPref = crate::types::Object<ThreadViewPrefData>;
403///Preferences for how verified accounts appear in the app.
404#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
405#[serde(rename_all = "camelCase")]
406pub struct VerificationPrefsData {
407    ///Hide the blue check badges for verified accounts and trusted verifiers.
408    #[serde(skip_serializing_if = "core::option::Option::is_none")]
409    pub hide_badges: core::option::Option<bool>,
410}
411pub type VerificationPrefs = crate::types::Object<VerificationPrefsData>;
412///Represents the verification information about the user this object is attached to.
413#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
414#[serde(rename_all = "camelCase")]
415pub struct VerificationStateData {
416    ///The user's status as a trusted verifier.
417    pub trusted_verifier_status: String,
418    ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.
419    pub verifications: Vec<VerificationView>,
420    ///The user's status as a verified account.
421    pub verified_status: String,
422}
423pub type VerificationState = crate::types::Object<VerificationStateData>;
424///An individual verification for an associated subject.
425#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
426#[serde(rename_all = "camelCase")]
427pub struct VerificationViewData {
428    ///Timestamp when the verification was created.
429    pub created_at: crate::types::string::Datetime,
430    ///True if the verification passes validation, otherwise false.
431    pub is_valid: bool,
432    ///The user who issued this verification.
433    pub issuer: crate::types::string::Did,
434    ///The display name of the issuer.
435    #[serde(skip_serializing_if = "core::option::Option::is_none")]
436    pub issuer_display_name: core::option::Option<String>,
437    ///The handle of the issuer.
438    #[serde(skip_serializing_if = "core::option::Option::is_none")]
439    pub issuer_handle: core::option::Option<crate::types::string::Handle>,
440    ///The AT-URI of the verification record.
441    pub uri: String,
442}
443pub type VerificationView = crate::types::Object<VerificationViewData>;
444///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
445#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
446#[serde(rename_all = "camelCase")]
447pub struct ViewerStateData {
448    ///This property is present only in selected cases, as an optimization.
449    #[serde(skip_serializing_if = "core::option::Option::is_none")]
450    pub activity_subscription: core::option::Option<
451        crate::app::bsky::notification::defs::ActivitySubscription,
452    >,
453    #[serde(skip_serializing_if = "core::option::Option::is_none")]
454    pub blocked_by: core::option::Option<bool>,
455    #[serde(skip_serializing_if = "core::option::Option::is_none")]
456    pub blocking: core::option::Option<String>,
457    #[serde(skip_serializing_if = "core::option::Option::is_none")]
458    pub blocking_by_list: core::option::Option<
459        crate::app::bsky::graph::defs::ListViewBasic,
460    >,
461    #[serde(skip_serializing_if = "core::option::Option::is_none")]
462    pub followed_by: core::option::Option<String>,
463    #[serde(skip_serializing_if = "core::option::Option::is_none")]
464    pub following: core::option::Option<String>,
465    ///This property is present only in selected cases, as an optimization.
466    #[serde(skip_serializing_if = "core::option::Option::is_none")]
467    pub known_followers: core::option::Option<KnownFollowers>,
468    ///Whether the account is fully muted, directly or via a mutelist. False when the mute is scoped to specific kinds; see mutedOnlyReposts and mutedOnlyQuoteposts.
469    #[serde(skip_serializing_if = "core::option::Option::is_none")]
470    pub muted: core::option::Option<bool>,
471    #[serde(skip_serializing_if = "core::option::Option::is_none")]
472    pub muted_by_list: core::option::Option<
473        crate::app::bsky::graph::defs::ListViewBasic,
474    >,
475    ///Whether the account's quote posts are muted. Scoped mutes are exclusive with muted: this can be true while muted is false. If muted is true, this will be false.
476    #[serde(skip_serializing_if = "core::option::Option::is_none")]
477    pub muted_only_quoteposts: core::option::Option<bool>,
478    ///Whether the account's reposts are muted. Scoped mutes are exclusive with muted: this can be true while muted is false. If muted is true, this will be false.
479    #[serde(skip_serializing_if = "core::option::Option::is_none")]
480    pub muted_only_reposts: core::option::Option<bool>,
481}
482pub type ViewerState = crate::types::Object<ViewerStateData>;
483#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
484#[serde(tag = "$type")]
485pub enum PostInteractionSettingsPrefPostgateEmbeddingRulesItem {
486    #[serde(rename = "app.bsky.feed.postgate#disableRule")]
487    AppBskyFeedPostgateDisableRule(Box<crate::app::bsky::feed::postgate::DisableRule>),
488}
489#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
490#[serde(tag = "$type")]
491pub enum PostInteractionSettingsPrefThreadgateAllowRulesItem {
492    #[serde(rename = "app.bsky.feed.threadgate#mentionRule")]
493    AppBskyFeedThreadgateMentionRule(
494        Box<crate::app::bsky::feed::threadgate::MentionRule>,
495    ),
496    #[serde(rename = "app.bsky.feed.threadgate#followerRule")]
497    AppBskyFeedThreadgateFollowerRule(
498        Box<crate::app::bsky::feed::threadgate::FollowerRule>,
499    ),
500    #[serde(rename = "app.bsky.feed.threadgate#followingRule")]
501    AppBskyFeedThreadgateFollowingRule(
502        Box<crate::app::bsky::feed::threadgate::FollowingRule>,
503    ),
504    #[serde(rename = "app.bsky.feed.threadgate#listRule")]
505    AppBskyFeedThreadgateListRule(Box<crate::app::bsky::feed::threadgate::ListRule>),
506}
507#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
508#[serde(tag = "$type")]
509pub enum PreferencesItem {
510    #[serde(rename = "app.bsky.actor.defs#adultContentPref")]
511    AdultContentPref(Box<AdultContentPref>),
512    #[serde(rename = "app.bsky.actor.defs#contentLabelPref")]
513    ContentLabelPref(Box<ContentLabelPref>),
514    #[serde(rename = "app.bsky.actor.defs#savedFeedsPref")]
515    SavedFeedsPref(Box<SavedFeedsPref>),
516    #[serde(rename = "app.bsky.actor.defs#savedFeedsPrefV2")]
517    SavedFeedsPrefV2(Box<SavedFeedsPrefV2>),
518    #[serde(rename = "app.bsky.actor.defs#personalDetailsPref")]
519    PersonalDetailsPref(Box<PersonalDetailsPref>),
520    #[serde(rename = "app.bsky.actor.defs#declaredAgePref")]
521    DeclaredAgePref(Box<DeclaredAgePref>),
522    #[serde(rename = "app.bsky.actor.defs#feedViewPref")]
523    FeedViewPref(Box<FeedViewPref>),
524    #[serde(rename = "app.bsky.actor.defs#threadViewPref")]
525    ThreadViewPref(Box<ThreadViewPref>),
526    #[serde(rename = "app.bsky.actor.defs#interestsPref")]
527    InterestsPref(Box<InterestsPref>),
528    #[serde(rename = "app.bsky.actor.defs#mutedWordsPref")]
529    MutedWordsPref(Box<MutedWordsPref>),
530    #[serde(rename = "app.bsky.actor.defs#hiddenPostsPref")]
531    HiddenPostsPref(Box<HiddenPostsPref>),
532    #[serde(rename = "app.bsky.actor.defs#bskyAppStatePref")]
533    BskyAppStatePref(Box<BskyAppStatePref>),
534    #[serde(rename = "app.bsky.actor.defs#labelersPref")]
535    LabelersPref(Box<LabelersPref>),
536    #[serde(rename = "app.bsky.actor.defs#postInteractionSettingsPref")]
537    PostInteractionSettingsPref(Box<PostInteractionSettingsPref>),
538    #[serde(rename = "app.bsky.actor.defs#verificationPrefs")]
539    VerificationPrefs(Box<VerificationPrefs>),
540    #[serde(rename = "app.bsky.actor.defs#liveEventPreferences")]
541    LiveEventPreferences(Box<LiveEventPreferences>),
542}
543#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
544#[serde(tag = "$type")]
545pub enum StatusViewEmbedRefs {
546    #[serde(rename = "app.bsky.embed.external#view")]
547    AppBskyEmbedExternalView(Box<crate::app::bsky::embed::external::View>),
548}