···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16pub mod actor;
27pub mod bookmark;
38pub mod embed;
···712pub mod notification;
813pub mod richtext;
914pub mod unspecced;
1010-pub mod video;
1515+pub mod video;
+109-29
crates/jacquard-api/src/app_bsky/actor.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_preferences;
77+pub mod get_profile;
88+pub mod get_profiles;
99+pub mod get_suggestions;
1010+pub mod profile;
1111+pub mod put_preferences;
1212+pub mod search_actors;
1313+pub mod search_actors_typeahead;
1414+pub mod status;
1515+116#[jacquard_derive::lexicon]
217#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
318#[serde(rename_all = "camelCase")]
419pub struct AdultContentPref<'a> {
520 pub enabled: bool,
621}
2222+723///If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.
824#[jacquard_derive::lexicon]
925#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···1228 #[serde(borrow)]
1329 pub guide: jacquard_common::CowStr<'a>,
1430}
3131+1532///A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.
1633#[jacquard_derive::lexicon]
1734#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···2037 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2138 #[serde(borrow)]
2239 pub active_progress_guide: std::option::Option<
2323- jacquard_common::types::value::Data<'a>,
4040+ crate::app_bsky::actor::BskyAppProgressGuide<'a>,
2441 >,
4242+ ///Storage for NUXs the user has encountered.
2543 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2644 #[serde(borrow)]
2745 pub nuxs: std::option::Option<Vec<crate::app_bsky::actor::Nux<'a>>>,
4646+ ///An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.
2847 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2948 #[serde(borrow)]
3049 pub queued_nudges: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
3150}
5151+3252#[jacquard_derive::lexicon]
3353#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3454#[serde(rename_all = "camelCase")]
3555pub struct ContentLabelPref<'a> {
3656 #[serde(borrow)]
3757 pub label: jacquard_common::CowStr<'a>,
5858+ ///Which labeler does this preference apply to? If undefined, applies globally.
3859 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3960 #[serde(borrow)]
4061 pub labeler_did: std::option::Option<jacquard_common::types::string::Did<'a>>,
4162 #[serde(borrow)]
4263 pub visibility: jacquard_common::CowStr<'a>,
4364}
6565+4466#[jacquard_derive::lexicon]
4567#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
4668#[serde(rename_all = "camelCase")]
4769pub struct FeedViewPref<'a> {
7070+ ///The URI of the feed, or an identifier which describes the feed.
4871 #[serde(borrow)]
4972 pub feed: jacquard_common::CowStr<'a>,
7373+ ///Hide quote posts in the feed.
5074 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5175 pub hide_quote_posts: std::option::Option<bool>,
7676+ ///Hide replies in the feed.
5277 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5378 pub hide_replies: std::option::Option<bool>,
7979+ ///Hide replies in the feed if they do not have this number of likes.
5480 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5581 pub hide_replies_by_like_count: std::option::Option<i64>,
8282+ ///Hide replies in the feed if they are not by followed users.
5683 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5784 pub hide_replies_by_unfollowed: std::option::Option<bool>,
8585+ ///Hide reposts in the feed.
5886 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5987 pub hide_reposts: std::option::Option<bool>,
6088}
8989+6190#[jacquard_derive::lexicon]
6291#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
6392#[serde(rename_all = "camelCase")]
6493pub struct HiddenPostsPref<'a> {
9494+ ///A list of URIs of posts the account owner has hidden.
6595 #[serde(borrow)]
6696 pub items: Vec<jacquard_common::types::string::AtUri<'a>>,
6797}
9898+6899#[jacquard_derive::lexicon]
69100#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
70101#[serde(rename_all = "camelCase")]
71102pub struct InterestsPref<'a> {
103103+ ///A list of tags which describe the account owner's interests gathered during onboarding.
72104 #[serde(borrow)]
73105 pub tags: Vec<jacquard_common::CowStr<'a>>,
74106}
107107+75108///The subject's followers whom you also follow
76109#[jacquard_derive::lexicon]
77110#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···79112pub struct KnownFollowers<'a> {
80113 pub count: i64,
81114 #[serde(borrow)]
8282- pub followers: Vec<jacquard_common::types::value::Data<'a>>,
115115+ pub followers: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>,
83116}
117117+84118#[jacquard_derive::lexicon]
85119#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
86120#[serde(rename_all = "camelCase")]
···88122 #[serde(borrow)]
89123 pub did: jacquard_common::types::string::Did<'a>,
90124}
125125+91126#[jacquard_derive::lexicon]
92127#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
93128#[serde(rename_all = "camelCase")]
94129pub struct LabelersPref<'a> {
95130 #[serde(borrow)]
9696- pub labelers: Vec<jacquard_common::types::value::Data<'a>>,
131131+ pub labelers: Vec<crate::app_bsky::actor::LabelerPrefItem<'a>>,
97132}
133133+98134///A word that the account owner has muted.
99135#[jacquard_derive::lexicon]
100136#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
101137#[serde(rename_all = "camelCase")]
102138pub struct MutedWord<'a> {
139139+ ///Groups of users to apply the muted word to. If undefined, applies to all users.
103140 #[serde(skip_serializing_if = "std::option::Option::is_none")]
104141 #[serde(borrow)]
105142 pub actor_target: std::option::Option<jacquard_common::CowStr<'a>>,
143143+ ///The date and time at which the muted word will expire and no longer be applied.
106144 #[serde(skip_serializing_if = "std::option::Option::is_none")]
107145 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
108146 #[serde(skip_serializing_if = "std::option::Option::is_none")]
109147 #[serde(borrow)]
110148 pub id: std::option::Option<jacquard_common::CowStr<'a>>,
149149+ ///The intended targets of the muted word.
111150 #[serde(borrow)]
112151 pub targets: Vec<crate::app_bsky::actor::MutedWordTarget<'a>>,
152152+ ///The muted word itself.
113153 #[serde(borrow)]
114154 pub value: jacquard_common::CowStr<'a>,
115155}
156156+116157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
117158pub enum MutedWordTarget<'a> {
118159 Content,
119160 Tag,
120161 Other(jacquard_common::CowStr<'a>),
121162}
163163+122164impl<'a> MutedWordTarget<'a> {
123165 pub fn as_str(&self) -> &str {
124166 match self {
···128170 }
129171 }
130172}
173173+131174impl<'a> From<&'a str> for MutedWordTarget<'a> {
132175 fn from(s: &'a str) -> Self {
133176 match s {
···137180 }
138181 }
139182}
183183+140184impl<'a> From<String> for MutedWordTarget<'a> {
141185 fn from(s: String) -> Self {
142186 match s.as_str() {
···146190 }
147191 }
148192}
193193+149194impl<'a> AsRef<str> for MutedWordTarget<'a> {
150195 fn as_ref(&self) -> &str {
151196 self.as_str()
152197 }
153198}
199199+154200impl<'a> serde::Serialize for MutedWordTarget<'a> {
155201 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
156202 where
···159205 serializer.serialize_str(self.as_str())
160206 }
161207}
208208+162209impl<'de, 'a> serde::Deserialize<'de> for MutedWordTarget<'a>
163210where
164211 'de: 'a,
···171218 Ok(Self::from(s))
172219 }
173220}
221221+174222#[jacquard_derive::lexicon]
175223#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
176224#[serde(rename_all = "camelCase")]
177225pub struct MutedWordsPref<'a> {
226226+ ///A list of words the account owner has muted.
178227 #[serde(borrow)]
179228 pub items: Vec<crate::app_bsky::actor::MutedWord<'a>>,
180229}
230230+181231///A new user experiences (NUX) storage object
182232#[jacquard_derive::lexicon]
183233#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
184234#[serde(rename_all = "camelCase")]
185235pub struct Nux<'a> {
186236 pub completed: bool,
237237+ ///Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.
187238 #[serde(skip_serializing_if = "std::option::Option::is_none")]
188239 #[serde(borrow)]
189240 pub data: std::option::Option<jacquard_common::CowStr<'a>>,
241241+ ///The date and time at which the NUX will expire and should be considered completed.
190242 #[serde(skip_serializing_if = "std::option::Option::is_none")]
191243 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
192244 #[serde(borrow)]
193245 pub id: jacquard_common::CowStr<'a>,
194246}
247247+195248#[jacquard_derive::lexicon]
196249#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
197250#[serde(rename_all = "camelCase")]
198251pub struct PersonalDetailsPref<'a> {
252252+ ///The birth date of account owner.
199253 #[serde(skip_serializing_if = "std::option::Option::is_none")]
200254 pub birth_date: std::option::Option<jacquard_common::types::string::Datetime>,
201255}
256256+202257///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.
203258#[jacquard_derive::lexicon]
204259#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
205260#[serde(rename_all = "camelCase")]
206261pub struct PostInteractionSettingsPref<'a> {
262262+ ///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.
207263 #[serde(skip_serializing_if = "std::option::Option::is_none")]
208264 #[serde(borrow)]
209265 pub postgate_embedding_rules: std::option::Option<
210266 Vec<jacquard_common::types::value::Data<'a>>,
211267 >,
268268+ ///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.
212269 #[serde(skip_serializing_if = "std::option::Option::is_none")]
213270 #[serde(borrow)]
214271 pub threadgate_allow_rules: std::option::Option<
215272 Vec<jacquard_common::types::value::Data<'a>>,
216273 >,
217274}
275275+218276pub type Preferences<'a> = Vec<jacquard_common::types::value::Data<'a>>;
219277#[jacquard_derive::lexicon]
220278#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···223281 #[serde(skip_serializing_if = "std::option::Option::is_none")]
224282 #[serde(borrow)]
225283 pub activity_subscription: std::option::Option<
226226- jacquard_common::types::value::Data<'a>,
284284+ crate::app_bsky::actor::ProfileAssociatedActivitySubscription<'a>,
227285 >,
228286 #[serde(skip_serializing_if = "std::option::Option::is_none")]
229287 #[serde(borrow)]
230230- pub chat: std::option::Option<jacquard_common::types::value::Data<'a>>,
288288+ pub chat: std::option::Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>,
231289 #[serde(skip_serializing_if = "std::option::Option::is_none")]
232290 pub feedgens: std::option::Option<i64>,
233291 #[serde(skip_serializing_if = "std::option::Option::is_none")]
···237295 #[serde(skip_serializing_if = "std::option::Option::is_none")]
238296 pub starter_packs: std::option::Option<i64>,
239297}
298298+240299#[jacquard_derive::lexicon]
241300#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
242301#[serde(rename_all = "camelCase")]
···244303 #[serde(borrow)]
245304 pub allow_subscriptions: jacquard_common::CowStr<'a>,
246305}
306306+247307#[jacquard_derive::lexicon]
248308#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
249309#[serde(rename_all = "camelCase")]
···251311 #[serde(borrow)]
252312 pub allow_incoming: jacquard_common::CowStr<'a>,
253313}
314314+254315#[jacquard_derive::lexicon]
255316#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
256317#[serde(rename_all = "camelCase")]
257318pub struct ProfileView<'a> {
258319 #[serde(skip_serializing_if = "std::option::Option::is_none")]
259320 #[serde(borrow)]
260260- pub associated: std::option::Option<jacquard_common::types::value::Data<'a>>,
321321+ pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
261322 #[serde(skip_serializing_if = "std::option::Option::is_none")]
262323 #[serde(borrow)]
263324 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
···283344 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
284345 #[serde(skip_serializing_if = "std::option::Option::is_none")]
285346 #[serde(borrow)]
286286- pub status: std::option::Option<jacquard_common::types::value::Data<'a>>,
347347+ pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
287348 #[serde(skip_serializing_if = "std::option::Option::is_none")]
288349 #[serde(borrow)]
289289- pub verification: std::option::Option<jacquard_common::types::value::Data<'a>>,
350350+ pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
290351 #[serde(skip_serializing_if = "std::option::Option::is_none")]
291352 #[serde(borrow)]
292292- pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
353353+ pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
293354}
355355+294356#[jacquard_derive::lexicon]
295357#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
296358#[serde(rename_all = "camelCase")]
297359pub struct ProfileViewBasic<'a> {
298360 #[serde(skip_serializing_if = "std::option::Option::is_none")]
299361 #[serde(borrow)]
300300- pub associated: std::option::Option<jacquard_common::types::value::Data<'a>>,
362362+ pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
301363 #[serde(skip_serializing_if = "std::option::Option::is_none")]
302364 #[serde(borrow)]
303365 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
···318380 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
319381 #[serde(skip_serializing_if = "std::option::Option::is_none")]
320382 #[serde(borrow)]
321321- pub status: std::option::Option<jacquard_common::types::value::Data<'a>>,
383383+ pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
322384 #[serde(skip_serializing_if = "std::option::Option::is_none")]
323385 #[serde(borrow)]
324324- pub verification: std::option::Option<jacquard_common::types::value::Data<'a>>,
386386+ pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
325387 #[serde(skip_serializing_if = "std::option::Option::is_none")]
326388 #[serde(borrow)]
327327- pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
389389+ pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
328390}
391391+329392#[jacquard_derive::lexicon]
330393#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
331394#[serde(rename_all = "camelCase")]
332395pub struct ProfileViewDetailed<'a> {
333396 #[serde(skip_serializing_if = "std::option::Option::is_none")]
334397 #[serde(borrow)]
335335- pub associated: std::option::Option<jacquard_common::types::value::Data<'a>>,
398398+ pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
336399 #[serde(skip_serializing_if = "std::option::Option::is_none")]
337400 #[serde(borrow)]
338401 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
···377440 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
378441 #[serde(skip_serializing_if = "std::option::Option::is_none")]
379442 #[serde(borrow)]
380380- pub status: std::option::Option<jacquard_common::types::value::Data<'a>>,
443443+ pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
381444 #[serde(skip_serializing_if = "std::option::Option::is_none")]
382445 #[serde(borrow)]
383383- pub verification: std::option::Option<jacquard_common::types::value::Data<'a>>,
446446+ pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
384447 #[serde(skip_serializing_if = "std::option::Option::is_none")]
385448 #[serde(borrow)]
386386- pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
449449+ pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
387450 #[serde(skip_serializing_if = "std::option::Option::is_none")]
388451 #[serde(borrow)]
389452 pub website: std::option::Option<jacquard_common::types::string::Uri<'a>>,
390453}
454454+391455#[jacquard_derive::lexicon]
392456#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
393457#[serde(rename_all = "camelCase")]
···400464 #[serde(borrow)]
401465 pub value: jacquard_common::CowStr<'a>,
402466}
467467+403468#[jacquard_derive::lexicon]
404469#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
405470#[serde(rename_all = "camelCase")]
···411476 #[serde(skip_serializing_if = "std::option::Option::is_none")]
412477 pub timeline_index: std::option::Option<i64>,
413478}
479479+414480#[jacquard_derive::lexicon]
415481#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
416482#[serde(rename_all = "camelCase")]
···418484 #[serde(borrow)]
419485 pub items: Vec<crate::app_bsky::actor::SavedFeed<'a>>,
420486}
487487+421488#[jacquard_derive::lexicon]
422489#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
423490#[serde(rename_all = "camelCase")]
424491pub struct StatusView<'a> {
492492+ ///An optional embed associated with the status.
425493 #[serde(skip_serializing_if = "std::option::Option::is_none")]
426494 #[serde(borrow)]
427495 pub embed: std::option::Option<StatusViewRecordEmbed<'a>>,
496496+ ///The date when this status will expire. The application might choose to no longer return the status after expiration.
428497 #[serde(skip_serializing_if = "std::option::Option::is_none")]
429498 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
499499+ ///True if the status is not expired, false if it is expired. Only present if expiration was set.
430500 #[serde(skip_serializing_if = "std::option::Option::is_none")]
431501 pub is_active: std::option::Option<bool>,
432502 #[serde(borrow)]
433503 pub record: jacquard_common::types::value::Data<'a>,
504504+ ///The status for the account.
434505 #[serde(borrow)]
435506 pub status: jacquard_common::CowStr<'a>,
436507}
508508+437509#[jacquard_derive::open_union]
438510#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
439511#[serde(tag = "$type")]
···442514 #[serde(rename = "app.bsky.embed.external#view")]
443515 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>),
444516}
517517+445518#[jacquard_derive::lexicon]
446519#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
447520#[serde(rename_all = "camelCase")]
448521pub struct ThreadViewPref<'a> {
522522+ ///Show followed users at the top of all replies.
449523 #[serde(skip_serializing_if = "std::option::Option::is_none")]
450524 pub prioritize_followed_users: std::option::Option<bool>,
525525+ ///Sorting mode for threads.
451526 #[serde(skip_serializing_if = "std::option::Option::is_none")]
452527 #[serde(borrow)]
453528 pub sort: std::option::Option<jacquard_common::CowStr<'a>>,
454529}
530530+455531///Preferences for how verified accounts appear in the app.
456532#[jacquard_derive::lexicon]
457533#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
458534#[serde(rename_all = "camelCase")]
459535pub struct VerificationPrefs<'a> {
536536+ ///Hide the blue check badges for verified accounts and trusted verifiers.
460537 #[serde(skip_serializing_if = "std::option::Option::is_none")]
461538 pub hide_badges: std::option::Option<bool>,
462539}
540540+463541///Represents the verification information about the user this object is attached to.
464542#[jacquard_derive::lexicon]
465543#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
466544#[serde(rename_all = "camelCase")]
467545pub struct VerificationState<'a> {
546546+ ///The user's status as a trusted verifier.
468547 #[serde(borrow)]
469548 pub trusted_verifier_status: jacquard_common::CowStr<'a>,
549549+ ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.
470550 #[serde(borrow)]
471471- pub verifications: Vec<jacquard_common::types::value::Data<'a>>,
551551+ pub verifications: Vec<crate::app_bsky::actor::VerificationView<'a>>,
552552+ ///The user's status as a verified account.
472553 #[serde(borrow)]
473554 pub verified_status: jacquard_common::CowStr<'a>,
474555}
556556+475557///An individual verification for an associated subject.
476558#[jacquard_derive::lexicon]
477559#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
478560#[serde(rename_all = "camelCase")]
479561pub struct VerificationView<'a> {
562562+ ///Timestamp when the verification was created.
480563 pub created_at: jacquard_common::types::string::Datetime,
564564+ ///True if the verification passes validation, otherwise false.
481565 pub is_valid: bool,
566566+ ///The user who issued this verification.
482567 #[serde(borrow)]
483568 pub issuer: jacquard_common::types::string::Did<'a>,
569569+ ///The AT-URI of the verification record.
484570 #[serde(borrow)]
485571 pub uri: jacquard_common::types::string::AtUri<'a>,
486572}
573573+487574///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
488575#[jacquard_derive::lexicon]
489576#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
490577#[serde(rename_all = "camelCase")]
491578pub struct ViewerState<'a> {
579579+ ///This property is present only in selected cases, as an optimization.
492580 #[serde(skip_serializing_if = "std::option::Option::is_none")]
493581 #[serde(borrow)]
494582 pub activity_subscription: std::option::Option<
···508596 #[serde(skip_serializing_if = "std::option::Option::is_none")]
509597 #[serde(borrow)]
510598 pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
599599+ ///This property is present only in selected cases, as an optimization.
511600 #[serde(skip_serializing_if = "std::option::Option::is_none")]
512601 #[serde(borrow)]
513513- pub known_followers: std::option::Option<jacquard_common::types::value::Data<'a>>,
602602+ pub known_followers: std::option::Option<crate::app_bsky::actor::KnownFollowers<'a>>,
514603 #[serde(skip_serializing_if = "std::option::Option::is_none")]
515604 pub muted: std::option::Option<bool>,
516605 #[serde(skip_serializing_if = "std::option::Option::is_none")]
517606 #[serde(borrow)]
518607 pub muted_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
519519-}
520520-pub mod get_preferences;
521521-pub mod get_profile;
522522-pub mod get_profiles;
523523-pub mod get_suggestions;
524524-pub mod profile;
525525-pub mod put_preferences;
526526-pub mod search_actors;
527527-pub mod search_actors_typeahead;
528528-pub mod status;
608608+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetPreferencesParams {}
···712pub struct GetPreferencesOutput<'a> {
813 #[serde(borrow)]
914 pub preferences: crate::app_bsky::actor::Preferences<'a>,
1010-}
1515+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct PutPreferencesInput<'a> {
510 #[serde(borrow)]
611 pub preferences: crate::app_bsky::actor::Preferences<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct SearchActorsTypeaheadParams<'a> {
···1015 #[serde(borrow)]
1116 pub term: std::option::Option<jacquard_common::CowStr<'a>>,
1217}
1818+1319#[jacquard_derive::lexicon]
1420#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1521#[serde(rename_all = "camelCase")]
1622pub struct SearchActorsTypeaheadOutput<'a> {
1723 #[serde(borrow)]
1824 pub actors: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>,
1919-}
2525+}
+10-1
crates/jacquard-api/src/app_bsky/actor/status.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///A declaration of a Bluesky account status.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Status<'a> {
611 pub created_at: jacquard_common::types::string::Datetime,
1212+ ///The duration of the status in minutes. Applications can choose to impose minimum and maximum limits.
713 #[serde(skip_serializing_if = "std::option::Option::is_none")]
814 pub duration_minutes: std::option::Option<i64>,
1515+ ///An optional embed associated with the status.
916 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1017 #[serde(borrow)]
1118 pub embed: std::option::Option<StatusRecordEmbed<'a>>,
1919+ ///The status for the account.
1220 #[serde(borrow)]
1321 pub status: jacquard_common::CowStr<'a>,
1422}
2323+1524#[jacquard_derive::open_union]
1625#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1726#[serde(tag = "$type")]
···1928pub enum StatusRecordEmbed<'a> {
2029 #[serde(rename = "app.bsky.embed.external")]
2130 External(Box<crate::app_bsky::embed::external::ExternalRecord<'a>>),
2222-}
3131+}
+14-4
crates/jacquard-api/src/app_bsky/bookmark.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod create_bookmark;
77+pub mod delete_bookmark;
88+pub mod get_bookmarks;
99+110///Object used to store bookmark data in stash.
211#[jacquard_derive::lexicon]
312#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
413#[serde(rename_all = "camelCase")]
514pub struct Bookmark<'a> {
1515+ ///A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported.
616 #[serde(borrow)]
717 pub subject: crate::com_atproto::repo::strong_ref::StrongRef<'a>,
818}
1919+920#[jacquard_derive::lexicon]
1021#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1122#[serde(rename_all = "camelCase")]
···1425 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
1526 #[serde(borrow)]
1627 pub item: BookmarkViewRecordItem<'a>,
2828+ ///A strong ref to the bookmarked record.
1729 #[serde(borrow)]
1830 pub subject: crate::com_atproto::repo::strong_ref::StrongRef<'a>,
1931}
3232+2033#[jacquard_derive::open_union]
2134#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2235#[serde(tag = "$type")]
···2841 DefsNotFoundPost(Box<crate::app_bsky::feed::NotFoundPost<'a>>),
2942 #[serde(rename = "app.bsky.feed.defs#postView")]
3043 DefsPostView(Box<crate::app_bsky::feed::PostView<'a>>),
3131-}
3232-pub mod create_bookmark;
3333-pub mod delete_bookmark;
3434-pub mod get_bookmarks;
4444+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetBookmarksParams<'a> {
···712 #[serde(skip_serializing_if = "std::option::Option::is_none")]
813 pub limit: std::option::Option<i64>,
914}
1515+1016#[jacquard_derive::lexicon]
1117#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1218#[serde(rename_all = "camelCase")]
···1622 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1723 #[serde(borrow)]
1824 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
1919-}
2525+}
+12-6
crates/jacquard-api/src/app_bsky/embed.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod external;
77+pub mod images;
88+pub mod record;
99+pub mod record_with_media;
1010+pub mod video;
1111+112///width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.
213#[jacquard_derive::lexicon]
314#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···516pub struct AspectRatio<'a> {
617 pub height: i64,
718 pub width: i64,
88-}
99-pub mod external;
1010-pub mod images;
1111-pub mod record;
1212-pub mod record_with_media;
1313-pub mod video;
1919+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1217 #[serde(borrow)]
1318 pub uri: jacquard_common::types::string::Uri<'a>,
1419}
2020+1521///A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).
1622#[jacquard_derive::lexicon]
1723#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1824#[serde(rename_all = "camelCase")]
1925pub struct ExternalRecord<'a> {
2026 #[serde(borrow)]
2121- pub external: jacquard_common::types::value::Data<'a>,
2727+ pub external: crate::app_bsky::embed::external::External<'a>,
2228}
2929+2330#[jacquard_derive::lexicon]
2431#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2532#[serde(rename_all = "camelCase")]
2633pub struct View<'a> {
2734 #[serde(borrow)]
2828- pub external: jacquard_common::types::value::Data<'a>,
3535+ pub external: crate::app_bsky::embed::external::ViewExternal<'a>,
2936}
3737+3038#[jacquard_derive::lexicon]
3139#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3240#[serde(rename_all = "camelCase")]
···4048 pub title: jacquard_common::CowStr<'a>,
4149 #[serde(borrow)]
4250 pub uri: jacquard_common::types::string::Uri<'a>,
4343-}
5151+}
+15-3
crates/jacquard-api/src/app_bsky/embed/images.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct Image<'a> {
1010+ ///Alt text description of the image, for accessibility.
511 #[serde(borrow)]
612 pub alt: jacquard_common::CowStr<'a>,
713 #[serde(skip_serializing_if = "std::option::Option::is_none")]
···1016 #[serde(borrow)]
1117 pub image: jacquard_common::types::blob::Blob<'a>,
1218}
1919+1320#[jacquard_derive::lexicon]
1421#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1522#[serde(rename_all = "camelCase")]
1623pub struct Images<'a> {
1724 #[serde(borrow)]
1818- pub images: Vec<jacquard_common::types::value::Data<'a>>,
2525+ pub images: Vec<crate::app_bsky::embed::images::Image<'a>>,
1926}
2727+2028#[jacquard_derive::lexicon]
2129#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2230#[serde(rename_all = "camelCase")]
2331pub struct View<'a> {
2432 #[serde(borrow)]
2525- pub images: Vec<jacquard_common::types::value::Data<'a>>,
3333+ pub images: Vec<crate::app_bsky::embed::images::ViewImage<'a>>,
2634}
3535+2736#[jacquard_derive::lexicon]
2837#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2938#[serde(rename_all = "camelCase")]
3039pub struct ViewImage<'a> {
4040+ ///Alt text description of the image, for accessibility.
3141 #[serde(borrow)]
3242 pub alt: jacquard_common::CowStr<'a>,
3343 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3444 #[serde(borrow)]
3545 pub aspect_ratio: std::option::Option<crate::app_bsky::embed::AspectRatio<'a>>,
4646+ ///Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View.
3647 #[serde(borrow)]
3748 pub fullsize: jacquard_common::types::string::Uri<'a>,
4949+ ///Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View.
3850 #[serde(borrow)]
3951 pub thumb: jacquard_common::types::string::Uri<'a>,
4040-}
5252+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Generator<'a> {
1111+ ///Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions
612 #[serde(skip_serializing_if = "std::option::Option::is_none")]
713 pub accepts_interactions: std::option::Option<bool>,
814 #[serde(skip_serializing_if = "std::option::Option::is_none")]
···2430 pub did: jacquard_common::types::string::Did<'a>,
2531 #[serde(borrow)]
2632 pub display_name: jacquard_common::CowStr<'a>,
3333+ ///Self-label values
2734 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2835 #[serde(borrow)]
2936 pub labels: std::option::Option<GeneratorRecordLabels<'a>>,
3037}
3838+3139#[jacquard_derive::open_union]
3240#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3341#[serde(tag = "$type")]
···3543pub enum GeneratorRecordLabels<'a> {
3644 #[serde(rename = "com.atproto.label.defs#selfLabels")]
3745 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>),
3838-}
4646+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetFeedGeneratorParams<'a> {
49 #[serde(borrow)]
510 pub feed: jacquard_common::types::string::AtUri<'a>,
611}
1212+713#[jacquard_derive::lexicon]
814#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
915#[serde(rename_all = "camelCase")]
1016pub struct GetFeedGeneratorOutput<'a> {
1717+ ///Indicates whether the feed generator service has been online recently, or else seems to be inactive.
1118 pub is_online: bool,
1919+ ///Indicates whether the feed generator service is compatible with the record declaration.
1220 pub is_valid: bool,
1321 #[serde(borrow)]
1422 pub view: crate::app_bsky::feed::GeneratorView<'a>,
1515-}
2323+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetTimelineParams<'a> {
···1015 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1116 pub limit: std::option::Option<i64>,
1217}
1818+1319#[jacquard_derive::lexicon]
1420#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1521#[serde(rename_all = "camelCase")]
···1925 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
2026 #[serde(borrow)]
2127 pub feed: Vec<crate::app_bsky::feed::FeedViewPost<'a>>,
2222-}
2828+}
+6-1
crates/jacquard-api/src/app_bsky/feed/like.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record declaring a 'like' of a piece of subject content.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···914 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1015 #[serde(borrow)]
1116 pub via: std::option::Option<crate::com_atproto::repo::strong_ref::StrongRef<'a>>,
1212-}
1717+}
+22-4
crates/jacquard-api/src/app_bsky/feed/post.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Deprecated: use facets instead.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Entity<'a> {
611 #[serde(borrow)]
77- pub index: jacquard_common::types::value::Data<'a>,
1212+ pub index: crate::app_bsky::feed::post::TextSlice<'a>,
1313+ ///Expected values are 'mention' and 'link'.
814 #[serde(borrow)]
915 pub r#type: jacquard_common::CowStr<'a>,
1016 #[serde(borrow)]
1117 pub value: jacquard_common::CowStr<'a>,
1218}
1919+1320///Record containing a Bluesky post.
1421#[jacquard_derive::lexicon]
1522#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1623#[serde(rename_all = "camelCase")]
1724pub struct Post<'a> {
2525+ ///Client-declared timestamp when this post was originally created.
1826 pub created_at: jacquard_common::types::string::Datetime,
1927 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2028 #[serde(borrow)]
2129 pub embed: std::option::Option<PostRecordEmbed<'a>>,
3030+ ///DEPRECATED: replaced by app.bsky.richtext.facet.
2231 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2332 #[serde(borrow)]
2424- pub entities: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>,
3333+ pub entities: std::option::Option<Vec<crate::app_bsky::feed::post::Entity<'a>>>,
3434+ ///Annotations of text (mentions, URLs, hashtags, etc)
2535 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2636 #[serde(borrow)]
2737 pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>,
3838+ ///Self-label values for this post. Effectively content warnings.
2839 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2940 #[serde(borrow)]
3041 pub labels: std::option::Option<PostRecordLabels<'a>>,
4242+ ///Indicates human language of post primary text content.
3143 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3244 pub langs: std::option::Option<Vec<jacquard_common::types::string::Language>>,
3345 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3446 #[serde(borrow)]
3535- pub reply: std::option::Option<jacquard_common::types::value::Data<'a>>,
4747+ pub reply: std::option::Option<crate::app_bsky::feed::post::ReplyRef<'a>>,
4848+ ///Additional hashtags, in addition to any included in post text and facets.
3649 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3750 #[serde(borrow)]
3851 pub tags: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
5252+ ///The primary post content. May be an empty string, if there are embeds.
3953 #[serde(borrow)]
4054 pub text: jacquard_common::CowStr<'a>,
4155}
5656+4257#[jacquard_derive::open_union]
4358#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
4459#[serde(tag = "$type")]
···5570 #[serde(rename = "app.bsky.embed.recordWithMedia")]
5671 RecordWithMedia(Box<crate::app_bsky::embed::record_with_media::RecordWithMedia<'a>>),
5772}
7373+5874#[jacquard_derive::open_union]
5975#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
6076#[serde(tag = "$type")]
···6379 #[serde(rename = "com.atproto.label.defs#selfLabels")]
6480 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>),
6581}
8282+6683#[jacquard_derive::lexicon]
6784#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
6885#[serde(rename_all = "camelCase")]
···7289 #[serde(borrow)]
7390 pub root: crate::com_atproto::repo::strong_ref::StrongRef<'a>,
7491}
9292+7593///Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.
7694#[jacquard_derive::lexicon]
7795#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···7997pub struct TextSlice<'a> {
8098 pub end: i64,
8199 pub start: i64,
8282-}
100100+}
+9-1
crates/jacquard-api/src/app_bsky/feed/postgate.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Disables embedding of this post.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···914#[serde(rename_all = "camelCase")]
1015pub struct Postgate<'a> {
1116 pub created_at: jacquard_common::types::string::Datetime,
1717+ ///List of AT-URIs embedding this post that the author has detached from.
1218 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1319 #[serde(borrow)]
1420 pub detached_embedding_uris: std::option::Option<
1521 Vec<jacquard_common::types::string::AtUri<'a>>,
1622 >,
2323+ ///List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed.
1724 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1825 #[serde(borrow)]
1926 pub embedding_rules: std::option::Option<
2027 Vec<jacquard_common::types::value::Data<'a>>,
2128 >,
2929+ ///Reference (AT-URI) to the post record.
2230 #[serde(borrow)]
2331 pub post: jacquard_common::types::string::AtUri<'a>,
2424-}
3232+}
+6-1
crates/jacquard-api/src/app_bsky/feed/repost.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record representing a 'repost' of an existing Bluesky post.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···914 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1015 #[serde(borrow)]
1116 pub via: std::option::Option<crate::com_atproto::repo::strong_ref::StrongRef<'a>>,
1212-}
1717+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Allow replies from actors who follow you.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···1621 #[serde(borrow)]
1722 pub list: jacquard_common::types::string::AtUri<'a>,
1823}
2424+1925///Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository.
2026#[jacquard_derive::lexicon]
2127#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2228#[serde(rename_all = "camelCase")]
2329pub struct Threadgate<'a> {
3030+ ///List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply.
2431 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2532 #[serde(borrow)]
2633 pub allow: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>,
2734 pub created_at: jacquard_common::types::string::Datetime,
3535+ ///List of hidden reply URIs.
2836 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2937 #[serde(borrow)]
3038 pub hidden_replies: std::option::Option<
3139 Vec<jacquard_common::types::string::AtUri<'a>>,
3240 >,
4141+ ///Reference (AT-URI) to the post record.
3342 #[serde(borrow)]
3443 pub post: jacquard_common::types::string::AtUri<'a>,
3544}
4545+3646///Allow replies from actors mentioned in your post.
3747#[jacquard_derive::lexicon]
3848#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3949#[serde(rename_all = "camelCase")]
4040-pub struct MentionRule<'a> {}
5050+pub struct MentionRule<'a> {}
+59-37
crates/jacquard-api/src/app_bsky/graph.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod block;
77+pub mod follow;
88+pub mod get_actor_starter_packs;
99+pub mod get_blocks;
1010+pub mod get_followers;
1111+pub mod get_follows;
1212+pub mod get_known_followers;
1313+pub mod get_list;
1414+pub mod get_list_blocks;
1515+pub mod get_list_mutes;
1616+pub mod get_lists;
1717+pub mod get_lists_with_membership;
1818+pub mod get_mutes;
1919+pub mod get_relationships;
2020+pub mod get_starter_pack;
2121+pub mod get_starter_packs;
2222+pub mod get_starter_packs_with_membership;
2323+pub mod get_suggested_follows_by_actor;
2424+pub mod list;
2525+pub mod listblock;
2626+pub mod listitem;
2727+pub mod mute_actor;
2828+pub mod mute_actor_list;
2929+pub mod mute_thread;
3030+pub mod search_starter_packs;
3131+pub mod starterpack;
3232+pub mod unmute_actor;
3333+pub mod unmute_actor_list;
3434+pub mod unmute_thread;
3535+pub mod verification;
3636+137#[jacquard_derive::lexicon]
238#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
339#[serde(rename_all = "camelCase")]
···743 #[serde(borrow)]
844 pub uri: jacquard_common::types::string::AtUri<'a>,
945}
4646+1047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1148pub enum ListPurpose<'a> {
1249 AppBskyGraphDefsModlist,
···1451 AppBskyGraphDefsReferencelist,
1552 Other(jacquard_common::CowStr<'a>),
1653}
5454+1755impl<'a> ListPurpose<'a> {
1856 pub fn as_str(&self) -> &str {
1957 match self {
···2462 }
2563 }
2664}
6565+2766impl<'a> From<&'a str> for ListPurpose<'a> {
2867 fn from(s: &'a str) -> Self {
2968 match s {
···3473 }
3574 }
3675}
7676+3777impl<'a> From<String> for ListPurpose<'a> {
3878 fn from(s: String) -> Self {
3979 match s.as_str() {
···4484 }
4585 }
4686}
8787+4788impl<'a> AsRef<str> for ListPurpose<'a> {
4889 fn as_ref(&self) -> &str {
4990 self.as_str()
5091 }
5192}
9393+5294impl<'a> serde::Serialize for ListPurpose<'a> {
5395 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5496 where
···5799 serializer.serialize_str(self.as_str())
58100 }
59101}
102102+60103impl<'de, 'a> serde::Deserialize<'de> for ListPurpose<'a>
61104where
62105 'de: 'a,
···69112 Ok(Self::from(s))
70113 }
71114}
115115+72116#[jacquard_derive::lexicon]
73117#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
74118#[serde(rename_all = "camelCase")]
···97141 #[serde(borrow)]
98142 pub name: jacquard_common::CowStr<'a>,
99143 #[serde(borrow)]
100100- pub purpose: jacquard_common::types::value::Data<'a>,
144144+ pub purpose: crate::app_bsky::graph::ListPurpose<'a>,
101145 #[serde(borrow)]
102146 pub uri: jacquard_common::types::string::AtUri<'a>,
103147 #[serde(skip_serializing_if = "std::option::Option::is_none")]
104148 #[serde(borrow)]
105105- pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
149149+ pub viewer: std::option::Option<crate::app_bsky::graph::ListViewerState<'a>>,
106150}
151151+107152#[jacquard_derive::lexicon]
108153#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
109154#[serde(rename_all = "camelCase")]
···123168 #[serde(borrow)]
124169 pub name: jacquard_common::CowStr<'a>,
125170 #[serde(borrow)]
126126- pub purpose: jacquard_common::types::value::Data<'a>,
171171+ pub purpose: crate::app_bsky::graph::ListPurpose<'a>,
127172 #[serde(borrow)]
128173 pub uri: jacquard_common::types::string::AtUri<'a>,
129174 #[serde(skip_serializing_if = "std::option::Option::is_none")]
130175 #[serde(borrow)]
131131- pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
176176+ pub viewer: std::option::Option<crate::app_bsky::graph::ListViewerState<'a>>,
132177}
178178+133179#[jacquard_derive::lexicon]
134180#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
135181#[serde(rename_all = "camelCase")]
···140186 #[serde(skip_serializing_if = "std::option::Option::is_none")]
141187 pub muted: std::option::Option<bool>,
142188}
189189+143190///indicates that a handle or DID could not be resolved
144191#[jacquard_derive::lexicon]
145192#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···149196 pub actor: jacquard_common::types::ident::AtIdentifier<'a>,
150197 pub not_found: bool,
151198}
199199+152200///lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)
153201#[jacquard_derive::lexicon]
154202#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···156204pub struct Relationship<'a> {
157205 #[serde(borrow)]
158206 pub did: jacquard_common::types::string::Did<'a>,
207207+ ///if the actor is followed by this DID, contains the AT-URI of the follow record
159208 #[serde(skip_serializing_if = "std::option::Option::is_none")]
160209 #[serde(borrow)]
161210 pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
211211+ ///if the actor follows this DID, this is the AT-URI of the follow record
162212 #[serde(skip_serializing_if = "std::option::Option::is_none")]
163213 #[serde(borrow)]
164214 pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
165215}
216216+166217#[jacquard_derive::lexicon]
167218#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
168219#[serde(rename_all = "camelCase")]
···184235 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
185236 #[serde(skip_serializing_if = "std::option::Option::is_none")]
186237 #[serde(borrow)]
187187- pub list: std::option::Option<jacquard_common::types::value::Data<'a>>,
238238+ pub list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
188239 #[serde(skip_serializing_if = "std::option::Option::is_none")]
189240 #[serde(borrow)]
190241 pub list_items_sample: std::option::Option<
191191- Vec<jacquard_common::types::value::Data<'a>>,
242242+ Vec<crate::app_bsky::graph::ListItemView<'a>>,
192243 >,
193244 #[serde(borrow)]
194245 pub record: jacquard_common::types::value::Data<'a>,
195246 #[serde(borrow)]
196247 pub uri: jacquard_common::types::string::AtUri<'a>,
197248}
249249+198250#[jacquard_derive::lexicon]
199251#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
200252#[serde(rename_all = "camelCase")]
···217269 pub record: jacquard_common::types::value::Data<'a>,
218270 #[serde(borrow)]
219271 pub uri: jacquard_common::types::string::AtUri<'a>,
220220-}
221221-pub mod block;
222222-pub mod follow;
223223-pub mod get_actor_starter_packs;
224224-pub mod get_blocks;
225225-pub mod get_followers;
226226-pub mod get_follows;
227227-pub mod get_known_followers;
228228-pub mod get_list;
229229-pub mod get_list_blocks;
230230-pub mod get_list_mutes;
231231-pub mod get_lists;
232232-pub mod get_lists_with_membership;
233233-pub mod get_mutes;
234234-pub mod get_relationships;
235235-pub mod get_starter_pack;
236236-pub mod get_starter_packs;
237237-pub mod get_starter_packs_with_membership;
238238-pub mod get_suggested_follows_by_actor;
239239-pub mod list;
240240-pub mod listblock;
241241-pub mod listitem;
242242-pub mod mute_actor;
243243-pub mod mute_actor_list;
244244-pub mod mute_thread;
245245-pub mod search_starter_packs;
246246-pub mod starterpack;
247247-pub mod unmute_actor;
248248-pub mod unmute_actor_list;
249249-pub mod unmute_thread;
250250-pub mod verification;
272272+}
+7-1
crates/jacquard-api/src/app_bsky/graph/block.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Block<'a> {
611 pub created_at: jacquard_common::types::string::Datetime,
1212+ ///DID of the account to be blocked.
713 #[serde(borrow)]
814 pub subject: jacquard_common::types::string::Did<'a>,
99-}
1515+}
+6-1
crates/jacquard-api/src/app_bsky/graph/follow.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···611 pub created_at: jacquard_common::types::string::Datetime,
712 #[serde(borrow)]
813 pub subject: jacquard_common::types::string::Did<'a>,
99-}
1414+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///A list and an optional list item indicating membership of a target user to that list.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···914 #[serde(borrow)]
1015 pub list_item: std::option::Option<crate::app_bsky::graph::ListItemView<'a>>,
1116}
1717+1218#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1319#[serde(rename_all = "camelCase")]
1420pub struct GetListsWithMembershipParams<'a> {
···2329 #[serde(borrow)]
2430 pub purposes: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
2531}
3232+2633#[jacquard_derive::lexicon]
2734#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2835#[serde(rename_all = "camelCase")]
···3239 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
3340 #[serde(borrow)]
3441 pub lists_with_membership: Vec<jacquard_common::types::value::Data<'a>>,
3535-}
4242+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetSuggestedFollowsByActorParams<'a> {
49 #[serde(borrow)]
510 pub actor: jacquard_common::types::ident::AtIdentifier<'a>,
611}
1212+713#[jacquard_derive::lexicon]
814#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
915#[serde(rename_all = "camelCase")]
1016pub struct GetSuggestedFollowsByActorOutput<'a> {
1717+ ///If true, response has fallen-back to generic results, and is not scoped using relativeToDid
1118 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1219 pub is_fallback: std::option::Option<bool>,
2020+ ///Snowflake for this recommendation, use when submitting recommendation events.
1321 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1422 pub rec_id: std::option::Option<i64>,
1523 #[serde(borrow)]
1624 pub suggestions: Vec<crate::app_bsky::actor::ProfileView<'a>>,
1717-}
2525+}
+9-1
crates/jacquard-api/src/app_bsky/graph/list.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···1823 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1924 #[serde(borrow)]
2025 pub labels: std::option::Option<ListRecordLabels<'a>>,
2626+ ///Display name for list; can not be empty.
2127 #[serde(borrow)]
2228 pub name: jacquard_common::CowStr<'a>,
2929+ ///Defines the purpose of the list (aka, moderation-oriented or curration-oriented)
2330 #[serde(borrow)]
2431 pub purpose: crate::app_bsky::graph::ListPurpose<'a>,
2532}
3333+2634#[jacquard_derive::open_union]
2735#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2836#[serde(tag = "$type")]
···3038pub enum ListRecordLabels<'a> {
3139 #[serde(rename = "com.atproto.label.defs#selfLabels")]
3240 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>),
3333-}
4141+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record representing a block relationship against an entire an entire list of accounts (actors).
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Listblock<'a> {
611 pub created_at: jacquard_common::types::string::Datetime,
1212+ ///Reference (AT-URI) to the mod list record.
713 #[serde(borrow)]
814 pub subject: jacquard_common::types::string::AtUri<'a>,
99-}
1515+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Listitem<'a> {
611 pub created_at: jacquard_common::types::string::Datetime,
1212+ ///Reference (AT-URI) to the list record (app.bsky.graph.list).
713 #[serde(borrow)]
814 pub list: jacquard_common::types::string::AtUri<'a>,
1515+ ///The account which is included on the list.
916 #[serde(borrow)]
1017 pub subject: jacquard_common::types::string::Did<'a>,
1111-}
1818+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct MuteActorInput<'a> {
510 #[serde(borrow)]
611 pub actor: jacquard_common::types::ident::AtIdentifier<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct MuteActorListInput<'a> {
510 #[serde(borrow)]
611 pub list: jacquard_common::types::string::AtUri<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct MuteThreadInput<'a> {
510 #[serde(borrow)]
611 pub root: jacquard_common::types::string::AtUri<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···510 #[serde(borrow)]
611 pub uri: jacquard_common::types::string::AtUri<'a>,
712}
1313+814///Record defining a starter pack of actors and feeds for new users.
915#[jacquard_derive::lexicon]
1016#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···2127 >,
2228 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2329 #[serde(borrow)]
2424- pub feeds: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>,
3030+ pub feeds: std::option::Option<
3131+ Vec<crate::app_bsky::graph::starterpack::FeedItem<'a>>,
3232+ >,
3333+ ///Reference (AT-URI) to the list record.
2534 #[serde(borrow)]
2635 pub list: jacquard_common::types::string::AtUri<'a>,
3636+ ///Display name for starter pack; can not be empty.
2737 #[serde(borrow)]
2838 pub name: jacquard_common::CowStr<'a>,
2929-}
3939+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UnmuteActorInput<'a> {
510 #[serde(borrow)]
611 pub actor: jacquard_common::types::ident::AtIdentifier<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UnmuteActorListInput<'a> {
510 #[serde(borrow)]
611 pub list: jacquard_common::types::string::AtUri<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UnmuteThreadInput<'a> {
510 #[serde(borrow)]
611 pub root: jacquard_common::types::string::AtUri<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Verification<'a> {
1111+ ///Date of when the verification was created.
612 pub created_at: jacquard_common::types::string::Datetime,
1313+ ///Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying.
714 #[serde(borrow)]
815 pub display_name: jacquard_common::CowStr<'a>,
1616+ ///Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying.
917 #[serde(borrow)]
1018 pub handle: jacquard_common::types::string::Handle<'a>,
1919+ ///DID of the subject the verification applies to.
1120 #[serde(borrow)]
1221 pub subject: jacquard_common::types::string::Did<'a>,
1313-}
2222+}
+19-5
crates/jacquard-api/src/app_bsky/labeler.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_services;
77+pub mod service;
88+19#[jacquard_derive::lexicon]
210#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
311#[serde(rename_all = "camelCase")]
412pub struct LabelerPolicies<'a> {
1313+ ///Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler.
514 #[serde(skip_serializing_if = "std::option::Option::is_none")]
615 #[serde(borrow)]
716 pub label_value_definitions: std::option::Option<
817 Vec<crate::com_atproto::label::LabelValueDefinition<'a>>,
918 >,
1919+ ///The label values which this labeler publishes. May include global or custom labels.
1020 #[serde(borrow)]
1121 pub label_values: Vec<crate::com_atproto::label::LabelValue<'a>>,
1222}
2323+1324#[jacquard_derive::lexicon]
1425#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1526#[serde(rename_all = "camelCase")]
···2839 pub uri: jacquard_common::types::string::AtUri<'a>,
2940 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3041 #[serde(borrow)]
3131- pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
4242+ pub viewer: std::option::Option<crate::app_bsky::labeler::LabelerViewerState<'a>>,
3243}
4444+3345#[jacquard_derive::lexicon]
3446#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3547#[serde(rename_all = "camelCase")]
···4658 pub like_count: std::option::Option<i64>,
4759 #[serde(borrow)]
4860 pub policies: crate::app_bsky::labeler::LabelerPolicies<'a>,
6161+ ///The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed.
4962 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5063 #[serde(borrow)]
5164 pub reason_types: std::option::Option<
5265 Vec<crate::com_atproto::moderation::ReasonType<'a>>,
5366 >,
6767+ ///Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type.
5468 #[serde(skip_serializing_if = "std::option::Option::is_none")]
5569 #[serde(borrow)]
5670 pub subject_collections: std::option::Option<
5771 Vec<jacquard_common::types::string::Nsid<'a>>,
5872 >,
7373+ ///The set of subject types (account, record, etc) this service accepts reports on.
5974 #[serde(skip_serializing_if = "std::option::Option::is_none")]
6075 #[serde(borrow)]
6176 pub subject_types: std::option::Option<
···6580 pub uri: jacquard_common::types::string::AtUri<'a>,
6681 #[serde(skip_serializing_if = "std::option::Option::is_none")]
6782 #[serde(borrow)]
6868- pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
8383+ pub viewer: std::option::Option<crate::app_bsky::labeler::LabelerViewerState<'a>>,
6984}
8585+7086#[jacquard_derive::lexicon]
7187#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
7288#[serde(rename_all = "camelCase")]
···7490 #[serde(skip_serializing_if = "std::option::Option::is_none")]
7591 #[serde(borrow)]
7692 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
7777-}
7878-pub mod get_services;
7979-pub mod service;
9393+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///A declaration of the existence of labeler service.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···914 pub labels: std::option::Option<ServiceRecordLabels<'a>>,
1015 #[serde(borrow)]
1116 pub policies: crate::app_bsky::labeler::LabelerPolicies<'a>,
1717+ ///The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed.
1218 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1319 #[serde(borrow)]
1420 pub reason_types: std::option::Option<
1521 Vec<crate::com_atproto::moderation::ReasonType<'a>>,
1622 >,
2323+ ///Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type.
1724 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1825 #[serde(borrow)]
1926 pub subject_collections: std::option::Option<
2027 Vec<jacquard_common::types::string::Nsid<'a>>,
2128 >,
2929+ ///The set of subject types (account, record, etc) this service accepts reports on.
2230 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2331 #[serde(borrow)]
2432 pub subject_types: std::option::Option<
2533 Vec<crate::com_atproto::moderation::SubjectType<'a>>,
2634 >,
2735}
3636+2837#[jacquard_derive::open_union]
2938#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3039#[serde(tag = "$type")]
···3241pub enum ServiceRecordLabels<'a> {
3342 #[serde(rename = "com.atproto.label.defs#selfLabels")]
3443 DefsSelfLabels(Box<crate::com_atproto::label::SelfLabels<'a>>),
3535-}
4444+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///A declaration of the user's choices related to notifications that can be produced by them.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Declaration<'a> {
1111+ ///A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'.
612 #[serde(borrow)]
713 pub allow_subscriptions: jacquard_common::CowStr<'a>,
88-}
1414+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetPreferencesParams {}
···712pub struct GetPreferencesOutput<'a> {
813 #[serde(borrow)]
914 pub preferences: crate::app_bsky::notification::Preferences<'a>,
1010-}
1515+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct PutPreferencesInput<'a> {
510 pub priority: bool,
66-}
1111+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct RegisterPushInput<'a> {
1010+ ///Set to true when the actor is age restricted
511 #[serde(skip_serializing_if = "std::option::Option::is_none")]
612 pub age_restricted: std::option::Option<bool>,
713 #[serde(borrow)]
···1218 pub service_did: jacquard_common::types::string::Did<'a>,
1319 #[serde(borrow)]
1420 pub token: jacquard_common::CowStr<'a>,
1515-}
2121+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1015 pub service_did: jacquard_common::types::string::Did<'a>,
1116 #[serde(borrow)]
1217 pub token: jacquard_common::CowStr<'a>,
1313-}
1818+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UpdateSeenInput<'a> {
510 pub seen_at: jacquard_common::types::string::Datetime,
66-}
1111+}
+6-1
crates/jacquard-api/src/app_bsky/richtext.rs
···11-pub mod facet;
11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod facet;
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···611 pub byte_end: i64,
712 pub byte_start: i64,
813}
1414+915///Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.
1016#[jacquard_derive::lexicon]
1117#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···1420 #[serde(borrow)]
1521 pub uri: jacquard_common::types::string::Uri<'a>,
1622}
2323+1724///Annotation of a sub-string within rich text.
1825#[jacquard_derive::lexicon]
1926#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···2229 #[serde(borrow)]
2330 pub features: Vec<jacquard_common::types::value::Data<'a>>,
2431 #[serde(borrow)]
2525- pub index: jacquard_common::types::value::Data<'a>,
3232+ pub index: crate::app_bsky::richtext::facet::ByteSlice<'a>,
2633}
3434+2735///Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.
2836#[jacquard_derive::lexicon]
2937#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···3240 #[serde(borrow)]
3341 pub did: jacquard_common::types::string::Did<'a>,
3442}
4343+3544///Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').
3645#[jacquard_derive::lexicon]
3746#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···3948pub struct Tag<'a> {
4049 #[serde(borrow)]
4150 pub tag: jacquard_common::CowStr<'a>,
4242-}
5151+}
+53-23
crates/jacquard-api/src/app_bsky/unspecced.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_age_assurance_state;
77+pub mod get_config;
88+pub mod get_onboarding_suggested_starter_packs;
99+pub mod get_onboarding_suggested_starter_packs_skeleton;
1010+pub mod get_popular_feed_generators;
1111+pub mod get_post_thread_other_v2;
1212+pub mod get_post_thread_v2;
1313+pub mod get_suggested_feeds;
1414+pub mod get_suggested_feeds_skeleton;
1515+pub mod get_suggested_starter_packs;
1616+pub mod get_suggested_starter_packs_skeleton;
1717+pub mod get_suggested_users;
1818+pub mod get_suggested_users_skeleton;
1919+pub mod get_suggestions_skeleton;
2020+pub mod get_tagged_suggestions;
2121+pub mod get_trending_topics;
2222+pub mod get_trends;
2323+pub mod get_trends_skeleton;
2424+pub mod init_age_assurance;
2525+pub mod search_actors_skeleton;
2626+pub mod search_posts_skeleton;
2727+pub mod search_starter_packs_skeleton;
2828+129///Object used to store age assurance data in stash.
230#[jacquard_derive::lexicon]
331#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
432#[serde(rename_all = "camelCase")]
533pub struct AgeAssuranceEvent<'a> {
3434+ ///The unique identifier for this instance of the age assurance flow, in UUID format.
635 #[serde(borrow)]
736 pub attempt_id: jacquard_common::CowStr<'a>,
3737+ ///The IP address used when completing the AA flow.
838 #[serde(skip_serializing_if = "std::option::Option::is_none")]
939 #[serde(borrow)]
1040 pub complete_ip: std::option::Option<jacquard_common::CowStr<'a>>,
4141+ ///The user agent used when completing the AA flow.
1142 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1243 #[serde(borrow)]
1344 pub complete_ua: std::option::Option<jacquard_common::CowStr<'a>>,
4545+ ///The date and time of this write operation.
1446 pub created_at: jacquard_common::types::string::Datetime,
4747+ ///The email used for AA.
1548 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1649 #[serde(borrow)]
1750 pub email: std::option::Option<jacquard_common::CowStr<'a>>,
5151+ ///The IP address used when initiating the AA flow.
1852 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1953 #[serde(borrow)]
2054 pub init_ip: std::option::Option<jacquard_common::CowStr<'a>>,
5555+ ///The user agent used when initiating the AA flow.
2156 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2257 #[serde(borrow)]
2358 pub init_ua: std::option::Option<jacquard_common::CowStr<'a>>,
5959+ ///The status of the age assurance process.
2460 #[serde(borrow)]
2561 pub status: jacquard_common::CowStr<'a>,
2662}
6363+2764///The computed state of the age assurance process, returned to the user in question on certain authenticated requests.
2865#[jacquard_derive::lexicon]
2966#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3067#[serde(rename_all = "camelCase")]
3168pub struct AgeAssuranceState<'a> {
6969+ ///The timestamp when this state was last updated.
3270 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3371 pub last_initiated_at: std::option::Option<jacquard_common::types::string::Datetime>,
7272+ ///The status of the age assurance process.
3473 #[serde(borrow)]
3574 pub status: jacquard_common::CowStr<'a>,
3675}
7676+3777#[jacquard_derive::lexicon]
3878#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3979#[serde(rename_all = "camelCase")]
···4181 #[serde(borrow)]
4282 pub did: jacquard_common::types::string::Did<'a>,
4383}
8484+4485#[jacquard_derive::lexicon]
4586#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
4687#[serde(rename_all = "camelCase")]
···4889 #[serde(borrow)]
4990 pub uri: jacquard_common::types::string::AtUri<'a>,
5091}
9292+5193#[jacquard_derive::lexicon]
5294#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
5395#[serde(rename_all = "camelCase")]
···5597 #[serde(borrow)]
5698 pub uri: jacquard_common::types::string::AtUri<'a>,
5799}
100100+58101#[jacquard_derive::lexicon]
59102#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
60103#[serde(rename_all = "camelCase")]
···76119 #[serde(borrow)]
77120 pub topic: jacquard_common::CowStr<'a>,
78121}
122122+79123#[jacquard_derive::lexicon]
80124#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
81125#[serde(rename_all = "camelCase")]
···83127 #[serde(borrow)]
84128 pub author: crate::app_bsky::feed::BlockedAuthor<'a>,
85129}
130130+86131#[jacquard_derive::lexicon]
87132#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
88133#[serde(rename_all = "camelCase")]
···95140#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
96141#[serde(rename_all = "camelCase")]
97142pub struct ThreadItemPost<'a> {
143143+ ///The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread.
98144 pub hidden_by_threadgate: bool,
145145+ ///This post has more parents that were not present in the response. This is just a boolean, without the number of parents.
99146 pub more_parents: bool,
147147+ ///This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate.
100148 pub more_replies: i64,
149149+ ///This is by an account muted by the viewer requesting it.
101150 pub muted_by_viewer: bool,
151151+ ///This post is part of a contiguous thread by the OP from the thread root. Many different OP threads can happen in the same thread.
102152 pub op_thread: bool,
103153 #[serde(borrow)]
104154 pub post: crate::app_bsky::feed::PostView<'a>,
105155}
156156+106157#[jacquard_derive::lexicon]
107158#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
108159#[serde(rename_all = "camelCase")]
···124175 #[serde(borrow)]
125176 pub topic: jacquard_common::CowStr<'a>,
126177}
178178+127179#[jacquard_derive::lexicon]
128180#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
129181#[serde(rename_all = "camelCase")]
···138190 pub link: jacquard_common::CowStr<'a>,
139191 #[serde(borrow)]
140192 pub topic: jacquard_common::CowStr<'a>,
141141-}
142142-pub mod get_age_assurance_state;
143143-pub mod get_config;
144144-pub mod get_onboarding_suggested_starter_packs;
145145-pub mod get_onboarding_suggested_starter_packs_skeleton;
146146-pub mod get_popular_feed_generators;
147147-pub mod get_post_thread_other_v2;
148148-pub mod get_post_thread_v2;
149149-pub mod get_suggested_feeds;
150150-pub mod get_suggested_feeds_skeleton;
151151-pub mod get_suggested_starter_packs;
152152-pub mod get_suggested_starter_packs_skeleton;
153153-pub mod get_suggested_users;
154154-pub mod get_suggested_users_skeleton;
155155-pub mod get_suggestions_skeleton;
156156-pub mod get_tagged_suggestions;
157157-pub mod get_trending_topics;
158158-pub mod get_trends;
159159-pub mod get_trends_skeleton;
160160-pub mod init_age_assurance;
161161-pub mod search_actors_skeleton;
162162-pub mod search_posts_skeleton;
163163-pub mod search_starter_packs_skeleton;
193193+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···510 #[serde(flatten)]
611 #[serde(borrow)]
712 pub value: crate::app_bsky::unspecced::AgeAssuranceState<'a>,
88-}
1313+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetSuggestionsSkeletonParams<'a> {
···1318 #[serde(borrow)]
1419 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>,
1520}
2121+1622#[jacquard_derive::lexicon]
1723#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1824#[serde(rename_all = "camelCase")]
···2228 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2329 #[serde(borrow)]
2430 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
3131+ ///Snowflake for this recommendation, use when submitting recommendation events.
2532 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2633 pub rec_id: std::option::Option<i64>,
3434+ ///DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer.
2735 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2836 #[serde(borrow)]
2937 pub relative_to_did: std::option::Option<jacquard_common::types::string::Did<'a>>,
3030-}
3838+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct SearchStarterPacksSkeletonParams<'a> {
···1217 #[serde(borrow)]
1318 pub viewer: std::option::Option<jacquard_common::types::string::Did<'a>>,
1419}
2020+1521#[jacquard_derive::lexicon]
1622#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1723#[serde(rename_all = "camelCase")]
···1925 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2026 #[serde(borrow)]
2127 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
2828+ ///Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits.
2229 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2330 pub hits_total: std::option::Option<i64>,
2431 #[serde(borrow)]
2532 pub starter_packs: Vec<crate::app_bsky::unspecced::SkeletonSearchStarterPack<'a>>,
2633}
3434+2735#[jacquard_derive::open_union]
2836#[derive(
2937 serde::Serialize,
···4149 #[serde(rename = "BadQueryString")]
4250 BadQueryString(std::option::Option<String>),
4351}
5252+4453impl std::fmt::Display for SearchStarterPacksSkeletonError<'_> {
4554 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4655 match self {
···5160 }
5261 Ok(())
5362 }
5454- Self::Unknown(_) => write!(f, "Unknown error"),
6363+ Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
5564 }
5665 }
5757-}
6666+}
+12-4
crates/jacquard-api/src/app_bsky/video.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_job_status;
77+pub mod get_upload_limits;
88+pub mod upload_video;
99+110#[jacquard_derive::lexicon]
211#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
312#[serde(rename_all = "camelCase")]
···1524 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1625 #[serde(borrow)]
1726 pub message: std::option::Option<jacquard_common::CowStr<'a>>,
2727+ ///Progress within the current processing state.
1828 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1929 pub progress: std::option::Option<i64>,
3030+ ///The state of the video processing job. All values not listed as a known value indicate that the job is in process.
2031 #[serde(borrow)]
2132 pub state: jacquard_common::CowStr<'a>,
2222-}
2323-pub mod get_job_status;
2424-pub mod get_upload_limits;
2525-pub mod upload_video;
3333+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1318 pub remaining_daily_bytes: std::option::Option<i64>,
1419 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1520 pub remaining_daily_videos: std::option::Option<i64>,
1616-}
2121+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···813pub struct UploadVideoOutput<'a> {
914 #[serde(borrow)]
1015 pub job_status: crate::app_bsky::video::JobStatus<'a>,
1111-}
1616+}
+6-1
crates/jacquard-api/src/chat_bsky.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16pub mod actor;
27pub mod convo;
33-pub mod moderation;
88+pub mod moderation;
+11-4
crates/jacquard-api/src/chat_bsky/actor.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod declaration;
77+pub mod delete_account;
88+pub mod export_account_data;
99+110#[jacquard_derive::lexicon]
211#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
312#[serde(rename_all = "camelCase")]
···817 #[serde(skip_serializing_if = "std::option::Option::is_none")]
918 #[serde(borrow)]
1019 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
2020+ ///Set to true when the actor cannot actively participate in conversations
1121 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1222 pub chat_disabled: std::option::Option<bool>,
1323 #[serde(borrow)]
···2636 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2737 #[serde(borrow)]
2838 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
2929-}
3030-pub mod declaration;
3131-pub mod delete_account;
3232-pub mod export_account_data;
3939+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///A declaration of a Bluesky chat account.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···510pub struct Declaration<'a> {
611 #[serde(borrow)]
712 pub allow_incoming: jacquard_common::CowStr<'a>,
88-}
1313+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
44-pub struct DeleteAccountOutput<'a> {}
99+pub struct DeleteAccountOutput<'a> {}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
44-pub struct ExportAccountDataOutput<'a> {}
99+pub struct ExportAccountDataOutput<'a> {}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···510 #[serde(borrow)]
611 pub convo_id: jacquard_common::CowStr<'a>,
712}
1313+814#[jacquard_derive::lexicon]
915#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1016#[serde(rename_all = "camelCase")]
1117pub struct AcceptConvoOutput<'a> {
1818+ ///Rev when the convo was accepted. If not present, the convo was already accepted.
1219 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1320 #[serde(borrow)]
1421 pub rev: std::option::Option<jacquard_common::CowStr<'a>>,
1515-}
2222+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···813 #[serde(borrow)]
914 pub message_id: std::option::Option<jacquard_common::CowStr<'a>>,
1015}
1616+1117#[jacquard_derive::lexicon]
1218#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1319#[serde(rename_all = "camelCase")]
1420pub struct UpdateReadOutput<'a> {
1521 #[serde(borrow)]
1622 pub convo: crate::chat_bsky::convo::ConvoView<'a>,
1717-}
2323+}
+6-1
crates/jacquard-api/src/chat_bsky/moderation.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16pub mod get_actor_metadata;
27pub mod get_message_context;
33-pub mod update_actor_access;
88+pub mod update_actor_access;
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···813 #[serde(skip_serializing_if = "std::option::Option::is_none")]
914 #[serde(borrow)]
1015 pub r#ref: std::option::Option<jacquard_common::CowStr<'a>>,
1111-}
1616+}
+6-1
crates/jacquard-api/src/com_atproto.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16pub mod admin;
27pub mod identity;
38pub mod label;
···611pub mod repo;
712pub mod server;
813pub mod sync;
99-pub mod temp;
1414+pub mod temp;
+27-17
crates/jacquard-api/src/com_atproto/admin.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod delete_account;
77+pub mod disable_account_invites;
88+pub mod disable_invite_codes;
99+pub mod enable_account_invites;
1010+pub mod get_account_info;
1111+pub mod get_account_infos;
1212+pub mod get_invite_codes;
1313+pub mod get_subject_status;
1414+pub mod search_accounts;
1515+pub mod send_email;
1616+pub mod update_account_email;
1717+pub mod update_account_handle;
1818+pub mod update_account_password;
1919+pub mod update_account_signing_key;
2020+pub mod update_subject_status;
2121+122#[jacquard_derive::lexicon]
223#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
324#[serde(rename_all = "camelCase")]
···3556 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3657 #[serde(borrow)]
3758 pub threat_signatures: std::option::Option<
3838- Vec<jacquard_common::types::value::Data<'a>>,
5959+ Vec<crate::com_atproto::admin::ThreatSignature<'a>>,
3960 >,
4061}
6262+4163#[jacquard_derive::lexicon]
4264#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
4365#[serde(rename_all = "camelCase")]
···5072 #[serde(borrow)]
5173 pub record_uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
5274}
7575+5376#[jacquard_derive::lexicon]
5477#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
5578#[serde(rename_all = "camelCase")]
···5780 #[serde(borrow)]
5881 pub did: jacquard_common::types::string::Did<'a>,
5982}
8383+6084#[jacquard_derive::lexicon]
6185#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
6286#[serde(rename_all = "camelCase")]
···6690 #[serde(borrow)]
6791 pub r#ref: std::option::Option<jacquard_common::CowStr<'a>>,
6892}
9393+6994#[jacquard_derive::lexicon]
7095#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
7196#[serde(rename_all = "camelCase")]
···7499 pub property: jacquard_common::CowStr<'a>,
75100 #[serde(borrow)]
76101 pub value: jacquard_common::CowStr<'a>,
7777-}
7878-pub mod delete_account;
7979-pub mod disable_account_invites;
8080-pub mod disable_invite_codes;
8181-pub mod enable_account_invites;
8282-pub mod get_account_info;
8383-pub mod get_account_infos;
8484-pub mod get_invite_codes;
8585-pub mod get_subject_status;
8686-pub mod search_accounts;
8787-pub mod send_email;
8888-pub mod update_account_email;
8989-pub mod update_account_handle;
9090-pub mod update_account_password;
9191-pub mod update_account_signing_key;
9292-pub mod update_subject_status;
102102+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct DeleteAccountInput<'a> {
510 #[serde(borrow)]
611 pub did: jacquard_common::types::string::Did<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···813 #[serde(skip_serializing_if = "std::option::Option::is_none")]
914 #[serde(borrow)]
1015 pub codes: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
1111-}
1616+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct SendEmailInput<'a> {
1010+ ///Additional comment by the sender that won't be used in the email itself but helpful to provide more context for moderators/reviewers
511 #[serde(skip_serializing_if = "std::option::Option::is_none")]
612 #[serde(borrow)]
713 pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
···1521 #[serde(borrow)]
1622 pub subject: std::option::Option<jacquard_common::CowStr<'a>>,
1723}
2424+1825#[jacquard_derive::lexicon]
1926#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2027#[serde(rename_all = "camelCase")]
2128pub struct SendEmailOutput<'a> {
2229 pub sent: bool,
2323-}
3030+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UpdateAccountEmailInput<'a> {
1010+ ///The handle or DID of the repo.
511 #[serde(borrow)]
612 pub account: jacquard_common::types::ident::AtIdentifier<'a>,
713 #[serde(borrow)]
814 pub email: jacquard_common::CowStr<'a>,
99-}
1515+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···611 pub did: jacquard_common::types::string::Did<'a>,
712 #[serde(borrow)]
813 pub handle: jacquard_common::types::string::Handle<'a>,
99-}
1414+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···611 pub did: jacquard_common::types::string::Did<'a>,
712 #[serde(borrow)]
813 pub password: jacquard_common::CowStr<'a>,
99-}
1414+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UpdateAccountSigningKeyInput<'a> {
510 #[serde(borrow)]
611 pub did: jacquard_common::types::string::Did<'a>,
1212+ ///Did-key formatted public key
713 #[serde(borrow)]
814 pub signing_key: jacquard_common::types::string::Did<'a>,
99-}
1515+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1116 #[serde(borrow)]
1217 pub takedown: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>,
1318}
1919+1420#[jacquard_derive::open_union]
1521#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1622#[serde(tag = "$type")]
···2329 #[serde(rename = "com.atproto.admin.defs#repoBlobRef")]
2430 DefsRepoBlobRef(Box<crate::com_atproto::admin::RepoBlobRef<'a>>),
2531}
3232+2633#[jacquard_derive::lexicon]
2734#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2835#[serde(rename_all = "camelCase")]
···3340 #[serde(borrow)]
3441 pub takedown: std::option::Option<crate::com_atproto::admin::StatusAttr<'a>>,
3542}
4343+3644#[jacquard_derive::open_union]
3745#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3846#[serde(tag = "$type")]
···4452 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>),
4553 #[serde(rename = "com.atproto.admin.defs#repoBlobRef")]
4654 DefsRepoBlobRef(Box<crate::com_atproto::admin::RepoBlobRef<'a>>),
4747-}
5555+}
+18-10
crates/jacquard-api/src/com_atproto/identity.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_recommended_did_credentials;
77+pub mod refresh_identity;
88+pub mod request_plc_operation_signature;
99+pub mod resolve_did;
1010+pub mod resolve_handle;
1111+pub mod resolve_identity;
1212+pub mod sign_plc_operation;
1313+pub mod submit_plc_operation;
1414+pub mod update_handle;
1515+116#[jacquard_derive::lexicon]
217#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
318#[serde(rename_all = "camelCase")]
419pub struct IdentityInfo<'a> {
520 #[serde(borrow)]
621 pub did: jacquard_common::types::string::Did<'a>,
2222+ ///The complete DID document for the identity.
723 #[serde(borrow)]
824 pub did_doc: jacquard_common::types::value::Data<'a>,
2525+ ///The validated handle of the account; or 'handle.invalid' if the handle did not bi-directionally match the DID document.
926 #[serde(borrow)]
1027 pub handle: jacquard_common::types::string::Handle<'a>,
1111-}
1212-pub mod get_recommended_did_credentials;
1313-pub mod refresh_identity;
1414-pub mod request_plc_operation_signature;
1515-pub mod resolve_did;
1616-pub mod resolve_handle;
1717-pub mod resolve_identity;
1818-pub mod sign_plc_operation;
1919-pub mod submit_plc_operation;
2020-pub mod update_handle;
2828+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct SubmitPlcOperationInput<'a> {
510 #[serde(borrow)]
611 pub operation: jacquard_common::types::value::Data<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UpdateHandleInput<'a> {
1010+ ///The new handle.
511 #[serde(borrow)]
612 pub handle: jacquard_common::types::string::Handle<'a>,
77-}
1313+}
+40-5
crates/jacquard-api/src/com_atproto/label.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod query_labels;
77+pub mod subscribe_labels;
88+19///Metadata tag on an atproto resource (eg, repo or record).
210#[jacquard_derive::lexicon]
311#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
412#[serde(rename_all = "camelCase")]
513pub struct Label<'a> {
1414+ ///Optionally, CID specifying the specific version of 'uri' resource this label applies to.
615 #[serde(skip_serializing_if = "std::option::Option::is_none")]
716 #[serde(borrow)]
817 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
1818+ ///Timestamp when this label was created.
919 pub cts: jacquard_common::types::string::Datetime,
2020+ ///Timestamp at which this label expires (no longer applies).
1021 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1122 pub exp: std::option::Option<jacquard_common::types::string::Datetime>,
2323+ ///If true, this is a negation label, overwriting a previous label.
1224 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1325 pub neg: std::option::Option<bool>,
2626+ ///Signature of dag-cbor encoded label.
1427 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1528 pub sig: std::option::Option<bytes::Bytes>,
2929+ ///DID of the actor who created this label.
1630 #[serde(borrow)]
1731 pub src: jacquard_common::types::string::Did<'a>,
3232+ ///AT URI of the record, repository (account), or other resource that this label applies to.
1833 #[serde(borrow)]
1934 pub uri: jacquard_common::types::string::Uri<'a>,
3535+ ///The short string name of the value or type of this label.
2036 #[serde(borrow)]
2137 pub val: jacquard_common::CowStr<'a>,
3838+ ///The AT Protocol version of the label object.
2239 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2340 pub ver: std::option::Option<i64>,
2441}
4242+2543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2644pub enum LabelValue<'a> {
2745 Hide,
···3755 Gore,
3856 Other(jacquard_common::CowStr<'a>),
3957}
5858+4059impl<'a> LabelValue<'a> {
4160 pub fn as_str(&self) -> &str {
4261 match self {
···5574 }
5675 }
5776}
7777+5878impl<'a> From<&'a str> for LabelValue<'a> {
5979 fn from(s: &'a str) -> Self {
6080 match s {
···7393 }
7494 }
7595}
9696+7697impl<'a> From<String> for LabelValue<'a> {
7798 fn from(s: String) -> Self {
7899 match s.as_str() {
···91112 }
92113 }
93114}
115115+94116impl<'a> AsRef<str> for LabelValue<'a> {
95117 fn as_ref(&self) -> &str {
96118 self.as_str()
97119 }
98120}
121121+99122impl<'a> serde::Serialize for LabelValue<'a> {
100123 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
101124 where
···104127 serializer.serialize_str(self.as_str())
105128 }
106129}
130130+107131impl<'de, 'a> serde::Deserialize<'de> for LabelValue<'a>
108132where
109133 'de: 'a,
···116140 Ok(Self::from(s))
117141 }
118142}
143143+119144///Declares a label value and its expected interpretations and behaviors.
120145#[jacquard_derive::lexicon]
121146#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
122147#[serde(rename_all = "camelCase")]
123148pub struct LabelValueDefinition<'a> {
149149+ ///Does the user need to have adult content enabled in order to configure this label?
124150 #[serde(skip_serializing_if = "std::option::Option::is_none")]
125151 pub adult_only: std::option::Option<bool>,
152152+ ///What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.
126153 #[serde(borrow)]
127154 pub blurs: jacquard_common::CowStr<'a>,
155155+ ///The default setting for this label.
128156 #[serde(skip_serializing_if = "std::option::Option::is_none")]
129157 #[serde(borrow)]
130158 pub default_setting: std::option::Option<jacquard_common::CowStr<'a>>,
159159+ ///The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).
131160 #[serde(borrow)]
132161 pub identifier: jacquard_common::CowStr<'a>,
133162 #[serde(borrow)]
134134- pub locales: Vec<jacquard_common::types::value::Data<'a>>,
163163+ pub locales: Vec<crate::com_atproto::label::LabelValueDefinitionStrings<'a>>,
164164+ ///How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.
135165 #[serde(borrow)]
136166 pub severity: jacquard_common::CowStr<'a>,
137167}
168168+138169///Strings which describe the label in the UI, localized into a specific language.
139170#[jacquard_derive::lexicon]
140171#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
141172#[serde(rename_all = "camelCase")]
142173pub struct LabelValueDefinitionStrings<'a> {
174174+ ///A longer description of what the label means and why it might be applied.
143175 #[serde(borrow)]
144176 pub description: jacquard_common::CowStr<'a>,
177177+ ///The code of the language these strings are written in.
145178 pub lang: jacquard_common::types::string::Language,
179179+ ///A short human-readable name for the label.
146180 #[serde(borrow)]
147181 pub name: jacquard_common::CowStr<'a>,
148182}
183183+149184///Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.
150185#[jacquard_derive::lexicon]
151186#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
152187#[serde(rename_all = "camelCase")]
153188pub struct SelfLabel<'a> {
189189+ ///The short string name of the value or type of this label.
154190 #[serde(borrow)]
155191 pub val: jacquard_common::CowStr<'a>,
156192}
193193+157194///Metadata tags on an atproto record, published by the author within the record.
158195#[jacquard_derive::lexicon]
159196#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
160197#[serde(rename_all = "camelCase")]
161198pub struct SelfLabels<'a> {
162199 #[serde(borrow)]
163163- pub values: Vec<jacquard_common::types::value::Data<'a>>,
164164-}
165165-pub mod query_labels;
166166-pub mod subscribe_labels;
200200+ pub values: Vec<crate::com_atproto::label::SelfLabel<'a>>,
201201+}
···11-pub mod schema;
11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod schema;
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Representation of Lexicon schemas themselves, when published as atproto records. Note that the schema language is not defined in Lexicon; this meta schema currently only includes a single version field ('lexicon'). See the atproto specifications for description of the other expected top-level fields ('id', 'defs', etc).
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Schema<'a> {
1111+ ///Indicates the 'version' of the Lexicon language. Must be '1' for the current atproto/Lexicon schema system.
612 pub lexicon: i64,
77-}
1313+}
+21-2
crates/jacquard-api/src/com_atproto/moderation.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod create_report;
77+18#[derive(Debug, Clone, PartialEq, Eq, Hash)]
29pub enum ReasonType<'a> {
310 ComAtprotoModerationDefsReasonSpam,
···5461 ToolsOzoneReportDefsReasonCivicImpersonation,
5562 Other(jacquard_common::CowStr<'a>),
5663}
6464+5765impl<'a> ReasonType<'a> {
5866 pub fn as_str(&self) -> &str {
5967 match self {
···217225 }
218226 }
219227}
228228+220229impl<'a> From<&'a str> for ReasonType<'a> {
221230 fn from(s: &'a str) -> Self {
222231 match s {
···380389 }
381390 }
382391}
392392+383393impl<'a> From<String> for ReasonType<'a> {
384394 fn from(s: String) -> Self {
385395 match s.as_str() {
···543553 }
544554 }
545555}
556556+546557impl<'a> AsRef<str> for ReasonType<'a> {
547558 fn as_ref(&self) -> &str {
548559 self.as_str()
549560 }
550561}
562562+551563impl<'a> serde::Serialize for ReasonType<'a> {
552564 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
553565 where
···556568 serializer.serialize_str(self.as_str())
557569 }
558570}
571571+559572impl<'de, 'a> serde::Deserialize<'de> for ReasonType<'a>
560573where
561574 'de: 'a,
···568581 Ok(Self::from(s))
569582 }
570583}
584584+571585///Tag describing a type of subject that might be reported.
572586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
573587pub enum SubjectType<'a> {
···576590 Chat,
577591 Other(jacquard_common::CowStr<'a>),
578592}
593593+579594impl<'a> SubjectType<'a> {
580595 pub fn as_str(&self) -> &str {
581596 match self {
···586601 }
587602 }
588603}
604604+589605impl<'a> From<&'a str> for SubjectType<'a> {
590606 fn from(s: &'a str) -> Self {
591607 match s {
···596612 }
597613 }
598614}
615615+599616impl<'a> From<String> for SubjectType<'a> {
600617 fn from(s: String) -> Self {
601618 match s.as_str() {
···606623 }
607624 }
608625}
626626+609627impl<'a> AsRef<str> for SubjectType<'a> {
610628 fn as_ref(&self) -> &str {
611629 self.as_str()
612630 }
613631}
632632+614633impl<'a> serde::Serialize for SubjectType<'a> {
615634 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
616635 where
···619638 serializer.serialize_str(self.as_str())
620639 }
621640}
641641+622642impl<'de, 'a> serde::Deserialize<'de> for SubjectType<'a>
623643where
624644 'de: 'a,
···630650 let s = <&'de str>::deserialize(deserializer)?;
631651 Ok(Self::from(s))
632652 }
633633-}
634634-pub mod create_report;
653653+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct DescribeRepoParams<'a> {
49 #[serde(borrow)]
510 pub repo: jacquard_common::types::ident::AtIdentifier<'a>,
611}
1212+713#[jacquard_derive::lexicon]
814#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
915#[serde(rename_all = "camelCase")]
1016pub struct DescribeRepoOutput<'a> {
1717+ ///List of all the collections (NSIDs) for which this repo contains at least one record.
1118 #[serde(borrow)]
1219 pub collections: Vec<jacquard_common::types::string::Nsid<'a>>,
1320 #[serde(borrow)]
1421 pub did: jacquard_common::types::string::Did<'a>,
2222+ ///The complete DID document for this account.
1523 #[serde(borrow)]
1624 pub did_doc: jacquard_common::types::value::Data<'a>,
1725 #[serde(borrow)]
1826 pub handle: jacquard_common::types::string::Handle<'a>,
2727+ ///Indicates if handle is currently valid (resolves bi-directionally)
1928 pub handle_is_correct: bool,
2020-}
2929+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
44-pub struct ImportRepoInput<'a> {}
99+pub struct ImportRepoInput<'a> {}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···611 pub cid: jacquard_common::types::string::Cid<'a>,
712 #[serde(borrow)]
813 pub uri: jacquard_common::types::string::AtUri<'a>,
99-}
1414+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···813pub struct UploadBlobOutput<'a> {
914 #[serde(borrow)]
1015 pub blob: jacquard_common::types::blob::Blob<'a>,
1111-}
1616+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1318 #[serde(borrow)]
1419 pub repo_rev: jacquard_common::CowStr<'a>,
1520 pub valid_did: bool,
1616-}
2121+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct CreateSessionInput<'a> {
1010+ ///When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned
511 #[serde(skip_serializing_if = "std::option::Option::is_none")]
612 pub allow_takendown: std::option::Option<bool>,
713 #[serde(skip_serializing_if = "std::option::Option::is_none")]
814 #[serde(borrow)]
915 pub auth_factor_token: std::option::Option<jacquard_common::CowStr<'a>>,
1616+ ///Handle or other identifier supported by the server for the authenticating user.
1017 #[serde(borrow)]
1118 pub identifier: jacquard_common::CowStr<'a>,
1219 #[serde(borrow)]
1320 pub password: jacquard_common::CowStr<'a>,
1421}
2222+1523#[jacquard_derive::lexicon]
1624#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1725#[serde(rename_all = "camelCase")]
···3644 pub handle: jacquard_common::types::string::Handle<'a>,
3745 #[serde(borrow)]
3846 pub refresh_jwt: jacquard_common::CowStr<'a>,
4747+ ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.
3948 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4049 #[serde(borrow)]
4150 pub status: std::option::Option<jacquard_common::CowStr<'a>>,
4251}
5252+4353#[jacquard_derive::open_union]
4454#[derive(
4555 serde::Serialize,
···5969 #[serde(rename = "AuthFactorTokenRequired")]
6070 AuthFactorTokenRequired(std::option::Option<String>),
6171}
7272+6273impl std::fmt::Display for CreateSessionError<'_> {
6374 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6475 match self {
···7687 }
7788 Ok(())
7889 }
7979- Self::Unknown(_) => write!(f, "Unknown error"),
9090+ Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
8091 }
8192 }
8282-}
9393+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct DeactivateAccountInput<'a> {
1010+ ///A recommendation to server as to how long they should hold onto the deactivated account before deleting.
511 #[serde(skip_serializing_if = "std::option::Option::is_none")]
612 pub delete_after: std::option::Option<jacquard_common::types::string::Datetime>,
77-}
1313+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1823 pub email_confirmed: std::option::Option<bool>,
1924 #[serde(borrow)]
2025 pub handle: jacquard_common::types::string::Handle<'a>,
2626+ ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.
2127 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2228 #[serde(borrow)]
2329 pub status: std::option::Option<jacquard_common::CowStr<'a>>,
2424-}
3030+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct RequestEmailUpdateOutput<'a> {
510 pub token_required: bool,
66-}
1111+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct RequestPasswordResetInput<'a> {
510 #[serde(borrow)]
611 pub email: jacquard_common::CowStr<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct ReserveSigningKeyInput<'a> {
1010+ ///The DID to reserve a key for.
511 #[serde(skip_serializing_if = "std::option::Option::is_none")]
612 #[serde(borrow)]
713 pub did: std::option::Option<jacquard_common::types::string::Did<'a>>,
814}
1515+916#[jacquard_derive::lexicon]
1017#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1118#[serde(rename_all = "camelCase")]
1219pub struct ReserveSigningKeyOutput<'a> {
2020+ ///The public key for the reserved signing key, in did:key serialization.
1321 #[serde(borrow)]
1422 pub signing_key: jacquard_common::CowStr<'a>,
1515-}
2323+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct RevokeAppPasswordInput<'a> {
510 #[serde(borrow)]
611 pub name: jacquard_common::CowStr<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···611 pub email: jacquard_common::CowStr<'a>,
712 #[serde(skip_serializing_if = "std::option::Option::is_none")]
813 pub email_auth_factor: std::option::Option<bool>,
1414+ ///Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed.
915 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1016 #[serde(borrow)]
1117 pub token: std::option::Option<jacquard_common::CowStr<'a>>,
1218}
1919+1320#[jacquard_derive::open_union]
1421#[derive(
1522 serde::Serialize,
···3138 #[serde(rename = "TokenRequired")]
3239 TokenRequired(std::option::Option<String>),
3340}
4141+3442impl std::fmt::Display for UpdateEmailError<'_> {
3543 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3644 match self {
···5563 }
5664 Ok(())
5765 }
5858- Self::Unknown(_) => write!(f, "Unknown error"),
6666+ Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
5967 }
6068 }
6161-}
6969+}
+29-17
crates/jacquard-api/src/com_atproto/sync.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_blob;
77+pub mod get_blocks;
88+pub mod get_checkout;
99+pub mod get_head;
1010+pub mod get_host_status;
1111+pub mod get_latest_commit;
1212+pub mod get_record;
1313+pub mod get_repo;
1414+pub mod get_repo_status;
1515+pub mod list_blobs;
1616+pub mod list_hosts;
1717+pub mod list_repos;
1818+pub mod list_repos_by_collection;
1919+pub mod notify_of_update;
2020+pub mod request_crawl;
2121+pub mod subscribe_repos;
2222+123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
224pub enum HostStatus<'a> {
325 Active,
···729 Banned,
830 Other(jacquard_common::CowStr<'a>),
931}
3232+1033impl<'a> HostStatus<'a> {
1134 pub fn as_str(&self) -> &str {
1235 match self {
···1942 }
2043 }
2144}
4545+2246impl<'a> From<&'a str> for HostStatus<'a> {
2347 fn from(s: &'a str) -> Self {
2448 match s {
···3155 }
3256 }
3357}
5858+3459impl<'a> From<String> for HostStatus<'a> {
3560 fn from(s: String) -> Self {
3661 match s.as_str() {
···4368 }
4469 }
4570}
7171+4672impl<'a> AsRef<str> for HostStatus<'a> {
4773 fn as_ref(&self) -> &str {
4874 self.as_str()
4975 }
5076}
7777+5178impl<'a> serde::Serialize for HostStatus<'a> {
5279 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
5380 where
···5683 serializer.serialize_str(self.as_str())
5784 }
5885}
8686+5987impl<'de, 'a> serde::Deserialize<'de> for HostStatus<'a>
6088where
6189 'de: 'a,
···6795 let s = <&'de str>::deserialize(deserializer)?;
6896 Ok(Self::from(s))
6997 }
7070-}
7171-pub mod get_blob;
7272-pub mod get_blocks;
7373-pub mod get_checkout;
7474-pub mod get_head;
7575-pub mod get_host_status;
7676-pub mod get_latest_commit;
7777-pub mod get_record;
7878-pub mod get_repo;
7979-pub mod get_repo_status;
8080-pub mod list_blobs;
8181-pub mod list_hosts;
8282-pub mod list_repos;
8383-pub mod list_repos_by_collection;
8484-pub mod notify_of_update;
8585-pub mod request_crawl;
8686-pub mod subscribe_repos;
9898+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct GetRepoStatusParams<'a> {
49 #[serde(borrow)]
510 pub did: jacquard_common::types::string::Did<'a>,
611}
1212+713#[jacquard_derive::lexicon]
814#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
915#[serde(rename_all = "camelCase")]
···1117 pub active: bool,
1218 #[serde(borrow)]
1319 pub did: jacquard_common::types::string::Did<'a>,
2020+ ///Optional field, the current rev of the repo, if active=true
1421 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1522 pub rev: std::option::Option<jacquard_common::types::string::Tid>,
2323+ ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.
1624 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1725 #[serde(borrow)]
1826 pub status: std::option::Option<jacquard_common::CowStr<'a>>,
1927}
2828+2029#[jacquard_derive::open_union]
2130#[derive(
2231 serde::Serialize,
···3443 #[serde(rename = "RepoNotFound")]
3544 RepoNotFound(std::option::Option<String>),
3645}
4646+3747impl std::fmt::Display for GetRepoStatusError<'_> {
3848 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3949 match self {
···4454 }
4555 Ok(())
4656 }
4747- Self::Unknown(_) => write!(f, "Unknown error"),
5757+ Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
4858 }
4959 }
5050-}
6060+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct ListReposParams<'a> {
···712 #[serde(skip_serializing_if = "std::option::Option::is_none")]
813 pub limit: std::option::Option<i64>,
914}
1515+1016#[jacquard_derive::lexicon]
1117#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1218#[serde(rename_all = "camelCase")]
···1723 #[serde(borrow)]
1824 pub repos: Vec<jacquard_common::types::value::Data<'a>>,
1925}
2626+2027#[jacquard_derive::lexicon]
2128#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2229#[serde(rename_all = "camelCase")]
···2532 pub active: std::option::Option<bool>,
2633 #[serde(borrow)]
2734 pub did: jacquard_common::types::string::Did<'a>,
3535+ ///Current repo commit CID
2836 #[serde(borrow)]
2937 pub head: jacquard_common::types::string::Cid<'a>,
3038 pub rev: jacquard_common::types::string::Tid,
3939+ ///If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.
3140 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3241 #[serde(borrow)]
3342 pub status: std::option::Option<jacquard_common::CowStr<'a>>,
3434-}
4343+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct NotifyOfUpdateInput<'a> {
1010+ ///Hostname of the current service (usually a PDS) that is notifying of update.
511 #[serde(borrow)]
612 pub hostname: jacquard_common::CowStr<'a>,
77-}
1313+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct Account<'a> {
1111+ ///Indicates that the account has a repository which can be fetched from the host that emitted this event.
612 pub active: bool,
713 #[serde(borrow)]
814 pub did: jacquard_common::types::string::Did<'a>,
915 pub seq: i64,
1616+ ///If active=false, this optional field indicates a reason for why the account is not active.
1017 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1118 #[serde(borrow)]
1219 pub status: std::option::Option<jacquard_common::CowStr<'a>>,
1320 pub time: jacquard_common::types::string::Datetime,
1421}
2222+1523///Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature.
1624#[jacquard_derive::lexicon]
1725#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···1927pub struct Commit<'a> {
2028 #[serde(borrow)]
2129 pub blobs: Vec<jacquard_common::types::cid::CidLink<'a>>,
3030+ ///CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list.
2231 pub blocks: bytes::Bytes,
3232+ ///Repo commit object CID.
2333 #[serde(borrow)]
2434 pub commit: jacquard_common::types::cid::CidLink<'a>,
2535 #[serde(borrow)]
2626- pub ops: Vec<jacquard_common::types::value::Data<'a>>,
3636+ pub ops: Vec<crate::com_atproto::sync::subscribe_repos::RepoOp<'a>>,
3737+ ///The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is effectively required for the 'inductive' version of firehose.
2738 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2839 #[serde(borrow)]
2940 pub prev_data: std::option::Option<jacquard_common::types::cid::CidLink<'a>>,
4141+ ///DEPRECATED -- unused
3042 pub rebase: bool,
4343+ ///The repo this event comes from. Note that all other message types name this field 'did'.
3144 #[serde(borrow)]
3245 pub repo: jacquard_common::types::string::Did<'a>,
4646+ ///The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event.
3347 pub rev: jacquard_common::types::string::Tid,
4848+ ///The stream sequence number of this message.
3449 pub seq: i64,
5050+ ///The rev of the last emitted commit from this repo (if any).
3551 pub since: jacquard_common::types::string::Tid,
5252+ ///Timestamp of when this message was originally broadcast.
3653 pub time: jacquard_common::types::string::Datetime,
5454+ ///DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data.
3755 pub too_big: bool,
3856}
5757+3958///Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache.
4059#[jacquard_derive::lexicon]
4160#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···4362pub struct Identity<'a> {
4463 #[serde(borrow)]
4564 pub did: jacquard_common::types::string::Did<'a>,
6565+ ///The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details.
4666 #[serde(skip_serializing_if = "std::option::Option::is_none")]
4767 #[serde(borrow)]
4868 pub handle: std::option::Option<jacquard_common::types::string::Handle<'a>>,
4969 pub seq: i64,
5070 pub time: jacquard_common::types::string::Datetime,
5171}
7272+5273#[jacquard_derive::lexicon]
5374#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
5475#[serde(rename_all = "camelCase")]
···5980 #[serde(borrow)]
6081 pub name: jacquard_common::CowStr<'a>,
6182}
8383+6284#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
6385#[serde(rename_all = "camelCase")]
6486pub struct SubscribeReposParams {
6587 #[serde(skip_serializing_if = "std::option::Option::is_none")]
6688 pub cursor: std::option::Option<i64>,
6789}
9090+6891#[jacquard_derive::open_union]
6992#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
7093#[serde(tag = "$type")]
···81104 #[serde(rename = "#info")]
82105 Info(Box<jacquard_common::types::value::Data<'a>>),
83106}
107107+84108#[jacquard_derive::open_union]
85109#[derive(
86110 serde::Serialize,
···101125 #[serde(rename = "ConsumerTooSlow")]
102126 ConsumerTooSlow(std::option::Option<String>),
103127}
128128+104129impl std::fmt::Display for SubscribeReposError<'_> {
105130 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
106131 match self {
···118143 }
119144 Ok(())
120145 }
121121- Self::Unknown(_) => write!(f, "Unknown error"),
146146+ Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
122147 }
123148 }
124149}
150150+125151///A repo operation, ie a mutation of a single record.
126152#[jacquard_derive::lexicon]
127153#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
···129155pub struct RepoOp<'a> {
130156 #[serde(borrow)]
131157 pub action: jacquard_common::CowStr<'a>,
158158+ ///For creates and updates, the new record CID. For deletions, null.
132159 #[serde(borrow)]
133160 pub cid: jacquard_common::types::cid::CidLink<'a>,
134161 #[serde(borrow)]
135162 pub path: jacquard_common::CowStr<'a>,
163163+ ///For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined.
136164 #[serde(skip_serializing_if = "std::option::Option::is_none")]
137165 #[serde(borrow)]
138166 pub prev: std::option::Option<jacquard_common::types::cid::CidLink<'a>>,
139167}
168168+140169///Updates the repo to a new state, without necessarily including that state on the firehose. Used to recover from broken commit streams, data loss incidents, or in situations where upstream host does not know recent state of the repository.
141170#[jacquard_derive::lexicon]
142171#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
143172#[serde(rename_all = "camelCase")]
144173pub struct Sync<'a> {
174174+ ///CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'.
145175 pub blocks: bytes::Bytes,
176176+ ///The account this repo event corresponds to. Must match that in the commit object.
146177 #[serde(borrow)]
147178 pub did: jacquard_common::types::string::Did<'a>,
179179+ ///The rev of the commit. This value must match that in the commit object.
148180 #[serde(borrow)]
149181 pub rev: jacquard_common::CowStr<'a>,
182182+ ///The stream sequence number of this message.
150183 pub seq: i64,
184184+ ///Timestamp of when this message was originally broadcast.
151185 pub time: jacquard_common::types::string::Datetime,
152152-}
186186+}
+6-1
crates/jacquard-api/src/com_atproto/temp.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16pub mod add_reserved_handle;
27pub mod check_handle_availability;
38pub mod check_signup_queue;
49pub mod dereference_scope;
510pub mod fetch_labels;
611pub mod request_phone_verification;
77-pub mod revoke_account_credentials;
1212+pub mod revoke_account_credentials;
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···712 pub estimated_time_ms: std::option::Option<i64>,
813 #[serde(skip_serializing_if = "std::option::Option::is_none")]
914 pub place_in_queue: std::option::Option<i64>,
1010-}
1515+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct RequestPhoneVerificationInput<'a> {
510 #[serde(borrow)]
611 pub phone_number: jacquard_common::CowStr<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct RevokeAccountCredentialsInput<'a> {
510 #[serde(borrow)]
611 pub account: jacquard_common::types::ident::AtIdentifier<'a>,
77-}
1212+}
+6-1
crates/jacquard-api/src/lib.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16pub mod app_bsky;
27pub mod chat_bsky;
38pub mod com_atproto;
44-pub mod tools_ozone;
99+pub mod tools_ozone;
+6-1
crates/jacquard-api/src/tools_ozone.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16pub mod communication;
27pub mod hosting;
38pub mod moderation;
···813pub mod setting;
914pub mod signature;
1015pub mod team;
1111-pub mod verification;
1616+pub mod verification;
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod create_template;
77+pub mod delete_template;
88+pub mod list_templates;
99+pub mod update_template;
1010+111#[jacquard_derive::lexicon]
212#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
313#[serde(rename_all = "camelCase")]
414pub struct TemplateView<'a> {
1515+ ///Subject of the message, used in emails.
516 #[serde(borrow)]
617 pub content_markdown: jacquard_common::CowStr<'a>,
718 pub created_at: jacquard_common::types::string::Datetime,
819 pub disabled: bool,
920 #[serde(borrow)]
1021 pub id: jacquard_common::CowStr<'a>,
2222+ ///Message language.
1123 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1224 pub lang: std::option::Option<jacquard_common::types::string::Language>,
2525+ ///DID of the user who last updated the template.
1326 #[serde(borrow)]
1427 pub last_updated_by: jacquard_common::types::string::Did<'a>,
2828+ ///Name of the template.
1529 #[serde(borrow)]
1630 pub name: jacquard_common::CowStr<'a>,
3131+ ///Content of the template, can contain markdown and variable placeholders.
1732 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1833 #[serde(borrow)]
1934 pub subject: std::option::Option<jacquard_common::CowStr<'a>>,
2035 pub updated_at: jacquard_common::types::string::Datetime,
2121-}
2222-pub mod create_template;
2323-pub mod delete_template;
2424-pub mod list_templates;
2525-pub mod update_template;
3636+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct DeleteTemplateInput<'a> {
510 #[serde(borrow)]
611 pub id: jacquard_common::CowStr<'a>,
77-}
1212+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···611 pub communication_templates: Vec<
712 crate::tools_ozone::communication::TemplateView<'a>,
813 >,
99-}
1414+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UpdateTemplateInput<'a> {
1010+ ///Content of the template, markdown supported, can contain variable placeholders.
511 #[serde(skip_serializing_if = "std::option::Option::is_none")]
612 #[serde(borrow)]
713 pub content_markdown: std::option::Option<jacquard_common::CowStr<'a>>,
814 #[serde(skip_serializing_if = "std::option::Option::is_none")]
915 pub disabled: std::option::Option<bool>,
1616+ ///ID of the template to be updated.
1017 #[serde(borrow)]
1118 pub id: jacquard_common::CowStr<'a>,
1919+ ///Message language.
1220 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1321 pub lang: std::option::Option<jacquard_common::types::string::Language>,
2222+ ///Name of the template.
1423 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1524 #[serde(borrow)]
1625 pub name: std::option::Option<jacquard_common::CowStr<'a>>,
2626+ ///Subject of the message, used in emails.
1727 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1828 #[serde(borrow)]
1929 pub subject: std::option::Option<jacquard_common::CowStr<'a>>,
3030+ ///DID of the user who is updating the template.
2031 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2132 #[serde(borrow)]
2233 pub updated_by: std::option::Option<jacquard_common::types::string::Did<'a>>,
2334}
3535+2436#[jacquard_derive::lexicon]
2537#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2638#[serde(rename_all = "camelCase")]
···2941 #[serde(borrow)]
3042 pub value: crate::tools_ozone::communication::TemplateView<'a>,
3143}
4444+3245#[jacquard_derive::open_union]
3346#[derive(
3447 serde::Serialize,
···4659 #[serde(rename = "DuplicateTemplateName")]
4760 DuplicateTemplateName(std::option::Option<String>),
4861}
6262+4963impl std::fmt::Display for UpdateTemplateError<'_> {
5064 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5165 match self {
···5670 }
5771 Ok(())
5872 }
5959- Self::Unknown(_) => write!(f, "Unknown error"),
7373+ Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
6074 }
6175 }
6262-}
7676+}
+6-1
crates/jacquard-api/src/tools_ozone/hosting.rs
···11-pub mod get_account_history;
11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_account_history;
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct UpdateRuleInput<'a> {
510 #[serde(borrow)]
611 pub action: crate::tools_ozone::safelink::ActionType<'a>,
1212+ ///Optional comment about the update
713 #[serde(skip_serializing_if = "std::option::Option::is_none")]
814 #[serde(borrow)]
915 pub comment: std::option::Option<jacquard_common::CowStr<'a>>,
1616+ ///Optional DID to credit as the creator. Only respected for admin_token authentication.
1017 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1118 #[serde(borrow)]
1219 pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>,
···1421 pub pattern: crate::tools_ozone::safelink::PatternType<'a>,
1522 #[serde(borrow)]
1623 pub reason: crate::tools_ozone::safelink::ReasonType<'a>,
2424+ ///The URL or domain to update the rule for
1725 #[serde(borrow)]
1826 pub url: jacquard_common::CowStr<'a>,
1927}
2828+2029#[jacquard_derive::lexicon]
2130#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2231#[serde(rename_all = "camelCase")]
···2534 #[serde(borrow)]
2635 pub value: crate::tools_ozone::safelink::Event<'a>,
2736}
3737+2838#[jacquard_derive::open_union]
2939#[derive(
3040 serde::Serialize,
···4353 #[serde(rename = "RuleNotFound")]
4454 RuleNotFound(std::option::Option<String>),
4555}
5656+4657impl std::fmt::Display for UpdateRuleError<'_> {
4758 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4859 match self {
···5364 }
5465 Ok(())
5566 }
5656- Self::Unknown(_) => write!(f, "Unknown error"),
6767+ Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
5768 }
5869 }
5959-}
7070+}
+6-1
crates/jacquard-api/src/tools_ozone/server.rs
···11-pub mod get_config;
11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod get_config;
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1419 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1520 #[serde(borrow)]
1621 pub pds: std::option::Option<jacquard_common::types::value::Data<'a>>,
2222+ ///The did of the verifier used for verification.
1723 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1824 #[serde(borrow)]
1925 pub verifier_did: std::option::Option<jacquard_common::types::string::Did<'a>>,
···2127 #[serde(borrow)]
2228 pub viewer: std::option::Option<jacquard_common::types::value::Data<'a>>,
2329}
3030+2431#[jacquard_derive::lexicon]
2532#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2633#[serde(rename_all = "camelCase")]
···2936 #[serde(borrow)]
3037 pub url: std::option::Option<jacquard_common::types::string::Uri<'a>>,
3138}
3939+3240#[jacquard_derive::lexicon]
3341#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
3442#[serde(rename_all = "camelCase")]
···3644 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3745 #[serde(borrow)]
3846 pub role: std::option::Option<jacquard_common::CowStr<'a>>,
3939-}
4747+}
+14-7
crates/jacquard-api/src/tools_ozone/set.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod add_values;
77+pub mod delete_set;
88+pub mod delete_values;
99+pub mod get_values;
1010+pub mod query_sets;
1111+pub mod upsert_set;
1212+113#[jacquard_derive::lexicon]
214#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
315#[serde(rename_all = "camelCase")]
···820 #[serde(borrow)]
921 pub name: jacquard_common::CowStr<'a>,
1022}
2323+1124#[jacquard_derive::lexicon]
1225#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1326#[serde(rename_all = "camelCase")]
···2033 pub name: jacquard_common::CowStr<'a>,
2134 pub set_size: i64,
2235 pub updated_at: jacquard_common::types::string::Datetime,
2323-}
2424-pub mod add_values;
2525-pub mod delete_set;
2626-pub mod delete_values;
2727-pub mod get_values;
2828-pub mod query_sets;
2929-pub mod upsert_set;
3636+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct AddValuesInput<'a> {
1010+ ///Name of the set to add values to
511 #[serde(borrow)]
612 pub name: jacquard_common::CowStr<'a>,
1313+ ///Array of string values to add to the set
714 #[serde(borrow)]
815 pub values: Vec<jacquard_common::CowStr<'a>>,
99-}
1616+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···611 #[serde(borrow)]
712 pub value: crate::tools_ozone::set::Set<'a>,
813}
1414+915#[jacquard_derive::lexicon]
1016#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1117#[serde(rename_all = "camelCase")]
···1319 #[serde(flatten)]
1420 #[serde(borrow)]
1521 pub value: crate::tools_ozone::set::SetView<'a>,
1616-}
2222+}
+10-4
crates/jacquard-api/src/tools_ozone/setting.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod list_options;
77+pub mod remove_options;
88+pub mod upsert_option;
99+110#[jacquard_derive::lexicon]
211#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
312#[serde(rename_all = "camelCase")]
···2433 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>,
2534 #[serde(borrow)]
2635 pub value: jacquard_common::types::value::Data<'a>,
2727-}
2828-pub mod list_options;
2929-pub mod remove_options;
3030-pub mod upsert_option;
3636+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
···1520 #[serde(borrow)]
1621 pub value: jacquard_common::types::value::Data<'a>,
1722}
2323+1824#[jacquard_derive::lexicon]
1925#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2026#[serde(rename_all = "camelCase")]
2127pub struct UpsertOptionOutput<'a> {
2228 #[serde(borrow)]
2329 pub option: crate::tools_ozone::setting::Option<'a>,
2424-}
3030+}
+10-4
crates/jacquard-api/src/tools_ozone/signature.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod find_correlation;
77+pub mod find_related_accounts;
88+pub mod search_accounts;
99+110#[jacquard_derive::lexicon]
211#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
312#[serde(rename_all = "camelCase")]
···615 pub property: jacquard_common::CowStr<'a>,
716 #[serde(borrow)]
817 pub value: jacquard_common::CowStr<'a>,
99-}
1010-pub mod find_correlation;
1111-pub mod find_related_accounts;
1212-pub mod search_accounts;
1818+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
38pub struct SearchAccountsParams<'a> {
···914 #[serde(borrow)]
1015 pub values: Vec<jacquard_common::CowStr<'a>>,
1116}
1717+1218#[jacquard_derive::lexicon]
1319#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1420#[serde(rename_all = "camelCase")]
···1824 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1925 #[serde(borrow)]
2026 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
2121-}
2727+}
+11-5
crates/jacquard-api/src/tools_ozone/team.rs
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod add_member;
77+pub mod delete_member;
88+pub mod list_members;
99+pub mod update_member;
1010+111#[jacquard_derive::lexicon]
212#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
313#[serde(rename_all = "camelCase")]
···1828 pub role: jacquard_common::CowStr<'a>,
1929 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2030 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>,
2121-}
2222-pub mod add_member;
2323-pub mod delete_member;
2424-pub mod list_members;
2525-pub mod update_member;
3131+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+66+pub mod grant_verifications;
77+pub mod list_verifications;
88+pub mod revoke_verifications;
99+110///Verification data for the associated subject.
211#[jacquard_derive::lexicon]
312#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
413#[serde(rename_all = "camelCase")]
514pub struct VerificationView<'a> {
1515+ ///Timestamp when the verification was created.
616 pub created_at: jacquard_common::types::string::Datetime,
1717+ ///Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying.
718 #[serde(borrow)]
819 pub display_name: jacquard_common::CowStr<'a>,
2020+ ///Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying.
921 #[serde(borrow)]
1022 pub handle: jacquard_common::types::string::Handle<'a>,
2323+ ///The user who issued this verification.
1124 #[serde(borrow)]
1225 pub issuer: jacquard_common::types::string::Did<'a>,
1326 #[serde(skip_serializing_if = "std::option::Option::is_none")]
···1629 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1730 #[serde(borrow)]
1831 pub issuer_repo: std::option::Option<VerificationViewRecordIssuerRepo<'a>>,
3232+ ///Describes the reason for revocation, also indicating that the verification is no longer valid.
1933 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2034 #[serde(borrow)]
2135 pub revoke_reason: std::option::Option<jacquard_common::CowStr<'a>>,
3636+ ///Timestamp when the verification was revoked.
2237 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2338 pub revoked_at: std::option::Option<jacquard_common::types::string::Datetime>,
3939+ ///The user who revoked this verification.
2440 #[serde(skip_serializing_if = "std::option::Option::is_none")]
2541 #[serde(borrow)]
2642 pub revoked_by: std::option::Option<jacquard_common::types::string::Did<'a>>,
4343+ ///The subject of the verification.
2744 #[serde(borrow)]
2845 pub subject: jacquard_common::types::string::Did<'a>,
2946 #[serde(skip_serializing_if = "std::option::Option::is_none")]
···3249 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3350 #[serde(borrow)]
3451 pub subject_repo: std::option::Option<VerificationViewRecordSubjectRepo<'a>>,
5252+ ///The AT-URI of the verification record.
3553 #[serde(borrow)]
3654 pub uri: jacquard_common::types::string::AtUri<'a>,
3755}
5656+3857#[jacquard_derive::open_union]
3958#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
4059#[serde(tag = "$type")]
···5069 #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")]
5170 DefsRepoViewNotFound(Box<crate::tools_ozone::moderation::RepoViewNotFound<'a>>),
5271}
7272+5373#[jacquard_derive::open_union]
5474#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
5575#[serde(tag = "$type")]
···6484 DefsRepoViewDetail(Box<crate::tools_ozone::moderation::RepoViewDetail<'a>>),
6585 #[serde(rename = "tools.ozone.moderation.defs#repoViewNotFound")]
6686 DefsRepoViewNotFound(Box<crate::tools_ozone::moderation::RepoViewNotFound<'a>>),
6767-}
6868-pub mod grant_verifications;
6969-pub mod list_verifications;
7070-pub mod revoke_verifications;
8787+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16///Error object for failed verifications.
27#[jacquard_derive::lexicon]
38#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
49#[serde(rename_all = "camelCase")]
510pub struct GrantError<'a> {
1111+ ///Error message describing the reason for failure.
612 #[serde(borrow)]
713 pub error: jacquard_common::CowStr<'a>,
1414+ ///The did of the subject being verified
815 #[serde(borrow)]
916 pub subject: jacquard_common::types::string::Did<'a>,
1017}
1818+1119#[jacquard_derive::lexicon]
1220#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1321#[serde(rename_all = "camelCase")]
1422pub struct GrantVerificationsInput<'a> {
2323+ ///Array of verification requests to process
1524 #[serde(borrow)]
1625 pub verifications: Vec<jacquard_common::types::value::Data<'a>>,
1726}
2727+1828#[jacquard_derive::lexicon]
1929#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2030#[serde(rename_all = "camelCase")]
···2434 #[serde(borrow)]
2535 pub verifications: Vec<crate::tools_ozone::verification::VerificationView<'a>>,
2636}
3737+2738#[jacquard_derive::lexicon]
2839#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2940#[serde(rename_all = "camelCase")]
3041pub struct VerificationInput<'a> {
4242+ ///Timestamp for verification record. Defaults to current time when not specified.
3143 #[serde(skip_serializing_if = "std::option::Option::is_none")]
3244 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
4545+ ///Display name of the subject the verification applies to at the moment of verifying.
3346 #[serde(borrow)]
3447 pub display_name: jacquard_common::CowStr<'a>,
4848+ ///Handle of the subject the verification applies to at the moment of verifying.
3549 #[serde(borrow)]
3650 pub handle: jacquard_common::types::string::Handle<'a>,
5151+ ///The did of the subject being verified
3752 #[serde(borrow)]
3853 pub subject: jacquard_common::types::string::Did<'a>,
3939-}
5454+}
···11+// @generated by jacquard-lexicon. DO NOT EDIT.
22+//
33+// This file was automatically generated from Lexicon schemas.
44+// Any manual changes will be overwritten on the next regeneration.
55+16#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
49pub struct RevokeVerificationsInput<'a> {
1010+ ///Reason for revoking the verification. This is optional and can be omitted if not needed.
511 #[serde(skip_serializing_if = "std::option::Option::is_none")]
612 #[serde(borrow)]
713 pub revoke_reason: std::option::Option<jacquard_common::CowStr<'a>>,
1414+ ///Array of verification record uris to revoke
815 #[serde(borrow)]
916 pub uris: Vec<jacquard_common::types::string::AtUri<'a>>,
1017}
1818+1119#[jacquard_derive::lexicon]
1220#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
1321#[serde(rename_all = "camelCase")]
1422pub struct RevokeVerificationsOutput<'a> {
2323+ ///List of verification uris that couldn't be revoked, including failure reasons
1524 #[serde(borrow)]
1625 pub failed_revocations: Vec<jacquard_common::types::value::Data<'a>>,
2626+ ///List of verification uris successfully revoked
1727 #[serde(borrow)]
1828 pub revoked_verifications: Vec<jacquard_common::types::string::AtUri<'a>>,
1929}
3030+2031///Error object for failed revocations
2132#[jacquard_derive::lexicon]
2233#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
2334#[serde(rename_all = "camelCase")]
2435pub struct RevokeError<'a> {
3636+ ///Description of the error that occurred during revocation.
2537 #[serde(borrow)]
2638 pub error: jacquard_common::CowStr<'a>,
3939+ ///The AT-URI of the verification record that failed to revoke.
2740 #[serde(borrow)]
2841 pub uri: jacquard_common::types::string::AtUri<'a>,
2929-}
4242+}