1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.feed.defs
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8pub mod describe_feed_generator;
9pub mod generator;
10pub mod get_actor_feeds;
11pub mod get_actor_likes;
12pub mod get_author_feed;
13pub mod get_feed;
14pub mod get_feed_generator;
15pub mod get_feed_generators;
16pub mod get_feed_skeleton;
17pub mod get_likes;
18pub mod get_list_feed;
19pub mod get_post_thread;
20pub mod get_posts;
21pub mod get_quotes;
22pub mod get_reposted_by;
23pub mod get_suggested_feeds;
24pub mod get_timeline;
25pub mod like;
26pub mod post;
27pub mod postgate;
28pub mod repost;
29pub mod search_posts;
30pub mod send_interactions;
31pub mod threadgate;
32
33#[jacquard_derive::lexicon]
34#[derive(
35 serde::Serialize,
36 serde::Deserialize,
37 Debug,
38 Clone,
39 PartialEq,
40 Eq,
41 jacquard_derive::IntoStatic
42)]
43#[serde(rename_all = "camelCase")]
44pub struct BlockedAuthor<'a> {
45 #[serde(borrow)]
46 pub did: jacquard_common::types::string::Did<'a>,
47 #[serde(skip_serializing_if = "std::option::Option::is_none")]
48 #[serde(borrow)]
49 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
50}
51
52#[jacquard_derive::lexicon]
53#[derive(
54 serde::Serialize,
55 serde::Deserialize,
56 Debug,
57 Clone,
58 PartialEq,
59 Eq,
60 jacquard_derive::IntoStatic
61)]
62#[serde(rename_all = "camelCase")]
63pub struct BlockedPost<'a> {
64 #[serde(borrow)]
65 pub author: crate::app_bsky::feed::BlockedAuthor<'a>,
66 pub blocked: bool,
67 #[serde(borrow)]
68 pub uri: jacquard_common::types::string::AtUri<'a>,
69}
70
71#[jacquard_derive::lexicon]
72#[derive(
73 serde::Serialize,
74 serde::Deserialize,
75 Debug,
76 Clone,
77 PartialEq,
78 Eq,
79 jacquard_derive::IntoStatic
80)]
81#[serde(rename_all = "camelCase")]
82pub struct FeedViewPost<'a> {
83 ///Context provided by feed generator that may be passed back alongside interactions.
84 #[serde(skip_serializing_if = "std::option::Option::is_none")]
85 #[serde(borrow)]
86 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>,
87 #[serde(borrow)]
88 pub post: crate::app_bsky::feed::PostView<'a>,
89 #[serde(skip_serializing_if = "std::option::Option::is_none")]
90 #[serde(borrow)]
91 pub reason: std::option::Option<FeedViewPostRecordReason<'a>>,
92 #[serde(skip_serializing_if = "std::option::Option::is_none")]
93 #[serde(borrow)]
94 pub reply: std::option::Option<crate::app_bsky::feed::ReplyRef<'a>>,
95 ///Unique identifier per request that may be passed back alongside interactions.
96 #[serde(skip_serializing_if = "std::option::Option::is_none")]
97 #[serde(borrow)]
98 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>,
99}
100
101#[jacquard_derive::open_union]
102#[derive(
103 serde::Serialize,
104 serde::Deserialize,
105 Debug,
106 Clone,
107 PartialEq,
108 Eq,
109 jacquard_derive::IntoStatic
110)]
111#[serde(tag = "$type")]
112#[serde(bound(deserialize = "'de: 'a"))]
113pub enum FeedViewPostRecordReason<'a> {}
114#[jacquard_derive::lexicon]
115#[derive(
116 serde::Serialize,
117 serde::Deserialize,
118 Debug,
119 Clone,
120 PartialEq,
121 Eq,
122 jacquard_derive::IntoStatic
123)]
124#[serde(rename_all = "camelCase")]
125pub struct GeneratorView<'a> {
126 #[serde(skip_serializing_if = "std::option::Option::is_none")]
127 pub accepts_interactions: std::option::Option<bool>,
128 #[serde(skip_serializing_if = "std::option::Option::is_none")]
129 #[serde(borrow)]
130 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
131 #[serde(borrow)]
132 pub cid: jacquard_common::types::string::Cid<'a>,
133 #[serde(skip_serializing_if = "std::option::Option::is_none")]
134 #[serde(borrow)]
135 pub content_mode: std::option::Option<jacquard_common::CowStr<'a>>,
136 #[serde(borrow)]
137 pub creator: crate::app_bsky::actor::ProfileView<'a>,
138 #[serde(skip_serializing_if = "std::option::Option::is_none")]
139 #[serde(borrow)]
140 pub description: std::option::Option<jacquard_common::CowStr<'a>>,
141 #[serde(skip_serializing_if = "std::option::Option::is_none")]
142 #[serde(borrow)]
143 pub description_facets: std::option::Option<
144 Vec<crate::app_bsky::richtext::facet::Facet<'a>>,
145 >,
146 #[serde(borrow)]
147 pub did: jacquard_common::types::string::Did<'a>,
148 #[serde(borrow)]
149 pub display_name: jacquard_common::CowStr<'a>,
150 pub indexed_at: jacquard_common::types::string::Datetime,
151 #[serde(skip_serializing_if = "std::option::Option::is_none")]
152 #[serde(borrow)]
153 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
154 #[serde(skip_serializing_if = "std::option::Option::is_none")]
155 pub like_count: std::option::Option<i64>,
156 #[serde(borrow)]
157 pub uri: jacquard_common::types::string::AtUri<'a>,
158 #[serde(skip_serializing_if = "std::option::Option::is_none")]
159 #[serde(borrow)]
160 pub viewer: std::option::Option<crate::app_bsky::feed::GeneratorViewerState<'a>>,
161}
162
163#[jacquard_derive::lexicon]
164#[derive(
165 serde::Serialize,
166 serde::Deserialize,
167 Debug,
168 Clone,
169 PartialEq,
170 Eq,
171 jacquard_derive::IntoStatic
172)]
173#[serde(rename_all = "camelCase")]
174pub struct GeneratorViewerState<'a> {
175 #[serde(skip_serializing_if = "std::option::Option::is_none")]
176 #[serde(borrow)]
177 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
178}
179
180#[jacquard_derive::lexicon]
181#[derive(
182 serde::Serialize,
183 serde::Deserialize,
184 Debug,
185 Clone,
186 PartialEq,
187 Eq,
188 jacquard_derive::IntoStatic
189)]
190#[serde(rename_all = "camelCase")]
191pub struct Interaction<'a> {
192 #[serde(skip_serializing_if = "std::option::Option::is_none")]
193 #[serde(borrow)]
194 pub event: std::option::Option<jacquard_common::CowStr<'a>>,
195 ///Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton.
196 #[serde(skip_serializing_if = "std::option::Option::is_none")]
197 #[serde(borrow)]
198 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>,
199 #[serde(skip_serializing_if = "std::option::Option::is_none")]
200 #[serde(borrow)]
201 pub item: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
202 ///Unique identifier per request that may be passed back alongside interactions.
203 #[serde(skip_serializing_if = "std::option::Option::is_none")]
204 #[serde(borrow)]
205 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>,
206}
207
208#[jacquard_derive::lexicon]
209#[derive(
210 serde::Serialize,
211 serde::Deserialize,
212 Debug,
213 Clone,
214 PartialEq,
215 Eq,
216 jacquard_derive::IntoStatic
217)]
218#[serde(rename_all = "camelCase")]
219pub struct NotFoundPost<'a> {
220 pub not_found: bool,
221 #[serde(borrow)]
222 pub uri: jacquard_common::types::string::AtUri<'a>,
223}
224
225#[jacquard_derive::lexicon]
226#[derive(
227 serde::Serialize,
228 serde::Deserialize,
229 Debug,
230 Clone,
231 PartialEq,
232 Eq,
233 jacquard_derive::IntoStatic
234)]
235#[serde(rename_all = "camelCase")]
236pub struct PostView<'a> {
237 #[serde(borrow)]
238 pub author: crate::app_bsky::actor::ProfileViewBasic<'a>,
239 #[serde(skip_serializing_if = "std::option::Option::is_none")]
240 pub bookmark_count: std::option::Option<i64>,
241 #[serde(borrow)]
242 pub cid: jacquard_common::types::string::Cid<'a>,
243 #[serde(skip_serializing_if = "std::option::Option::is_none")]
244 #[serde(borrow)]
245 pub embed: std::option::Option<PostViewRecordEmbed<'a>>,
246 pub indexed_at: jacquard_common::types::string::Datetime,
247 #[serde(skip_serializing_if = "std::option::Option::is_none")]
248 #[serde(borrow)]
249 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
250 #[serde(skip_serializing_if = "std::option::Option::is_none")]
251 pub like_count: std::option::Option<i64>,
252 #[serde(skip_serializing_if = "std::option::Option::is_none")]
253 pub quote_count: std::option::Option<i64>,
254 #[serde(borrow)]
255 pub record: jacquard_common::types::value::Data<'a>,
256 #[serde(skip_serializing_if = "std::option::Option::is_none")]
257 pub reply_count: std::option::Option<i64>,
258 #[serde(skip_serializing_if = "std::option::Option::is_none")]
259 pub repost_count: std::option::Option<i64>,
260 #[serde(skip_serializing_if = "std::option::Option::is_none")]
261 #[serde(borrow)]
262 pub threadgate: std::option::Option<crate::app_bsky::feed::ThreadgateView<'a>>,
263 #[serde(borrow)]
264 pub uri: jacquard_common::types::string::AtUri<'a>,
265 #[serde(skip_serializing_if = "std::option::Option::is_none")]
266 #[serde(borrow)]
267 pub viewer: std::option::Option<crate::app_bsky::feed::ViewerState<'a>>,
268}
269
270#[jacquard_derive::open_union]
271#[derive(
272 serde::Serialize,
273 serde::Deserialize,
274 Debug,
275 Clone,
276 PartialEq,
277 Eq,
278 jacquard_derive::IntoStatic
279)]
280#[serde(tag = "$type")]
281#[serde(bound(deserialize = "'de: 'a"))]
282pub enum PostViewRecordEmbed<'a> {
283 #[serde(rename = "app.bsky.embed.images#view")]
284 ImagesView(Box<crate::app_bsky::embed::images::View<'a>>),
285 #[serde(rename = "app.bsky.embed.video#view")]
286 VideoView(Box<crate::app_bsky::embed::video::View<'a>>),
287 #[serde(rename = "app.bsky.embed.external#view")]
288 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>),
289 #[serde(rename = "app.bsky.embed.record#view")]
290 RecordView(Box<crate::app_bsky::embed::record::View<'a>>),
291 #[serde(rename = "app.bsky.embed.recordWithMedia#view")]
292 RecordWithMediaView(Box<crate::app_bsky::embed::record_with_media::View<'a>>),
293}
294
295#[jacquard_derive::lexicon]
296#[derive(
297 serde::Serialize,
298 serde::Deserialize,
299 Debug,
300 Clone,
301 PartialEq,
302 Eq,
303 jacquard_derive::IntoStatic
304)]
305#[serde(rename_all = "camelCase")]
306pub struct ReasonPin<'a> {}
307#[jacquard_derive::lexicon]
308#[derive(
309 serde::Serialize,
310 serde::Deserialize,
311 Debug,
312 Clone,
313 PartialEq,
314 Eq,
315 jacquard_derive::IntoStatic
316)]
317#[serde(rename_all = "camelCase")]
318pub struct ReasonRepost<'a> {
319 #[serde(borrow)]
320 pub by: crate::app_bsky::actor::ProfileViewBasic<'a>,
321 #[serde(skip_serializing_if = "std::option::Option::is_none")]
322 #[serde(borrow)]
323 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
324 pub indexed_at: jacquard_common::types::string::Datetime,
325 #[serde(skip_serializing_if = "std::option::Option::is_none")]
326 #[serde(borrow)]
327 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
328}
329
330#[jacquard_derive::lexicon]
331#[derive(
332 serde::Serialize,
333 serde::Deserialize,
334 Debug,
335 Clone,
336 PartialEq,
337 Eq,
338 jacquard_derive::IntoStatic
339)]
340#[serde(rename_all = "camelCase")]
341pub struct ReplyRef<'a> {
342 ///When parent is a reply to another post, this is the author of that post.
343 #[serde(skip_serializing_if = "std::option::Option::is_none")]
344 #[serde(borrow)]
345 pub grandparent_author: std::option::Option<
346 crate::app_bsky::actor::ProfileViewBasic<'a>,
347 >,
348 #[serde(borrow)]
349 pub parent: ReplyRefRecordParent<'a>,
350 #[serde(borrow)]
351 pub root: ReplyRefRecordRoot<'a>,
352}
353
354#[jacquard_derive::open_union]
355#[derive(
356 serde::Serialize,
357 serde::Deserialize,
358 Debug,
359 Clone,
360 PartialEq,
361 Eq,
362 jacquard_derive::IntoStatic
363)]
364#[serde(tag = "$type")]
365#[serde(bound(deserialize = "'de: 'a"))]
366pub enum ReplyRefRecordParent<'a> {}
367#[jacquard_derive::open_union]
368#[derive(
369 serde::Serialize,
370 serde::Deserialize,
371 Debug,
372 Clone,
373 PartialEq,
374 Eq,
375 jacquard_derive::IntoStatic
376)]
377#[serde(tag = "$type")]
378#[serde(bound(deserialize = "'de: 'a"))]
379pub enum ReplyRefRecordRoot<'a> {}
380#[jacquard_derive::lexicon]
381#[derive(
382 serde::Serialize,
383 serde::Deserialize,
384 Debug,
385 Clone,
386 PartialEq,
387 Eq,
388 jacquard_derive::IntoStatic
389)]
390#[serde(rename_all = "camelCase")]
391pub struct SkeletonFeedPost<'a> {
392 ///Context that will be passed through to client and may be passed to feed generator back alongside interactions.
393 #[serde(skip_serializing_if = "std::option::Option::is_none")]
394 #[serde(borrow)]
395 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>,
396 #[serde(borrow)]
397 pub post: jacquard_common::types::string::AtUri<'a>,
398 #[serde(skip_serializing_if = "std::option::Option::is_none")]
399 #[serde(borrow)]
400 pub reason: std::option::Option<SkeletonFeedPostRecordReason<'a>>,
401}
402
403#[jacquard_derive::open_union]
404#[derive(
405 serde::Serialize,
406 serde::Deserialize,
407 Debug,
408 Clone,
409 PartialEq,
410 Eq,
411 jacquard_derive::IntoStatic
412)]
413#[serde(tag = "$type")]
414#[serde(bound(deserialize = "'de: 'a"))]
415pub enum SkeletonFeedPostRecordReason<'a> {}
416#[jacquard_derive::lexicon]
417#[derive(
418 serde::Serialize,
419 serde::Deserialize,
420 Debug,
421 Clone,
422 PartialEq,
423 Eq,
424 jacquard_derive::IntoStatic
425)]
426#[serde(rename_all = "camelCase")]
427pub struct SkeletonReasonPin<'a> {}
428#[jacquard_derive::lexicon]
429#[derive(
430 serde::Serialize,
431 serde::Deserialize,
432 Debug,
433 Clone,
434 PartialEq,
435 Eq,
436 jacquard_derive::IntoStatic
437)]
438#[serde(rename_all = "camelCase")]
439pub struct SkeletonReasonRepost<'a> {
440 #[serde(borrow)]
441 pub repost: jacquard_common::types::string::AtUri<'a>,
442}
443
444///Metadata about this post within the context of the thread it is in.
445#[jacquard_derive::lexicon]
446#[derive(
447 serde::Serialize,
448 serde::Deserialize,
449 Debug,
450 Clone,
451 PartialEq,
452 Eq,
453 jacquard_derive::IntoStatic
454)]
455#[serde(rename_all = "camelCase")]
456pub struct ThreadContext<'a> {
457 #[serde(skip_serializing_if = "std::option::Option::is_none")]
458 #[serde(borrow)]
459 pub root_author_like: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
460}
461
462#[jacquard_derive::lexicon]
463#[derive(
464 serde::Serialize,
465 serde::Deserialize,
466 Debug,
467 Clone,
468 PartialEq,
469 Eq,
470 jacquard_derive::IntoStatic
471)]
472#[serde(rename_all = "camelCase")]
473pub struct ThreadViewPost<'a> {
474 #[serde(skip_serializing_if = "std::option::Option::is_none")]
475 #[serde(borrow)]
476 pub parent: std::option::Option<ThreadViewPostRecordParent<'a>>,
477 #[serde(borrow)]
478 pub post: crate::app_bsky::feed::PostView<'a>,
479 #[serde(skip_serializing_if = "std::option::Option::is_none")]
480 #[serde(borrow)]
481 pub replies: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>,
482 #[serde(skip_serializing_if = "std::option::Option::is_none")]
483 #[serde(borrow)]
484 pub thread_context: std::option::Option<crate::app_bsky::feed::ThreadContext<'a>>,
485}
486
487#[jacquard_derive::open_union]
488#[derive(
489 serde::Serialize,
490 serde::Deserialize,
491 Debug,
492 Clone,
493 PartialEq,
494 Eq,
495 jacquard_derive::IntoStatic
496)]
497#[serde(tag = "$type")]
498#[serde(bound(deserialize = "'de: 'a"))]
499pub enum ThreadViewPostRecordParent<'a> {}
500#[jacquard_derive::lexicon]
501#[derive(
502 serde::Serialize,
503 serde::Deserialize,
504 Debug,
505 Clone,
506 PartialEq,
507 Eq,
508 jacquard_derive::IntoStatic
509)]
510#[serde(rename_all = "camelCase")]
511pub struct ThreadgateView<'a> {
512 #[serde(skip_serializing_if = "std::option::Option::is_none")]
513 #[serde(borrow)]
514 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
515 #[serde(skip_serializing_if = "std::option::Option::is_none")]
516 #[serde(borrow)]
517 pub lists: std::option::Option<Vec<crate::app_bsky::graph::ListViewBasic<'a>>>,
518 #[serde(skip_serializing_if = "std::option::Option::is_none")]
519 #[serde(borrow)]
520 pub record: std::option::Option<jacquard_common::types::value::Data<'a>>,
521 #[serde(skip_serializing_if = "std::option::Option::is_none")]
522 #[serde(borrow)]
523 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
524}
525
526///Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.
527#[jacquard_derive::lexicon]
528#[derive(
529 serde::Serialize,
530 serde::Deserialize,
531 Debug,
532 Clone,
533 PartialEq,
534 Eq,
535 jacquard_derive::IntoStatic
536)]
537#[serde(rename_all = "camelCase")]
538pub struct ViewerState<'a> {
539 #[serde(skip_serializing_if = "std::option::Option::is_none")]
540 pub bookmarked: std::option::Option<bool>,
541 #[serde(skip_serializing_if = "std::option::Option::is_none")]
542 pub embedding_disabled: std::option::Option<bool>,
543 #[serde(skip_serializing_if = "std::option::Option::is_none")]
544 #[serde(borrow)]
545 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
546 #[serde(skip_serializing_if = "std::option::Option::is_none")]
547 pub pinned: std::option::Option<bool>,
548 #[serde(skip_serializing_if = "std::option::Option::is_none")]
549 pub reply_disabled: std::option::Option<bool>,
550 #[serde(skip_serializing_if = "std::option::Option::is_none")]
551 #[serde(borrow)]
552 pub repost: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
553 #[serde(skip_serializing_if = "std::option::Option::is_none")]
554 pub thread_muted: std::option::Option<bool>,
555}