1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.graph.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 block;
9pub mod follow;
10pub mod get_actor_starter_packs;
11pub mod get_blocks;
12pub mod get_followers;
13pub mod get_follows;
14pub mod get_known_followers;
15pub mod get_list;
16pub mod get_list_blocks;
17pub mod get_list_mutes;
18pub mod get_lists;
19pub mod get_lists_with_membership;
20pub mod get_mutes;
21pub mod get_relationships;
22pub mod get_starter_pack;
23pub mod get_starter_packs;
24pub mod get_starter_packs_with_membership;
25pub mod get_suggested_follows_by_actor;
26pub mod list;
27pub mod listblock;
28pub mod listitem;
29pub mod mute_actor;
30pub mod mute_actor_list;
31pub mod mute_thread;
32pub mod search_starter_packs;
33pub mod starterpack;
34pub mod unmute_actor;
35pub mod unmute_actor_list;
36pub mod unmute_thread;
37pub mod verification;
38
39/// A list of actors used for curation purposes such as list feeds or interaction gating.
40#[derive(
41 serde::Serialize,
42 serde::Deserialize,
43 Debug,
44 Clone,
45 PartialEq,
46 Eq,
47 Hash,
48 jacquard_derive::IntoStatic
49)]
50pub struct Curatelist;
51impl std::fmt::Display for Curatelist {
52 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
53 write!(f, "curatelist")
54 }
55}
56
57#[jacquard_derive::lexicon]
58#[derive(
59 serde::Serialize,
60 serde::Deserialize,
61 Debug,
62 Clone,
63 PartialEq,
64 Eq,
65 jacquard_derive::IntoStatic,
66 bon::Builder
67)]
68#[serde(rename_all = "camelCase")]
69pub struct ListItemView<'a> {
70 #[serde(borrow)]
71 pub subject: crate::app_bsky::actor::ProfileView<'a>,
72 #[serde(borrow)]
73 pub uri: jacquard_common::types::string::AtUri<'a>,
74}
75
76#[derive(Debug, Clone, PartialEq, Eq, Hash)]
77pub enum ListPurpose<'a> {
78 AppBskyGraphDefsModlist,
79 AppBskyGraphDefsCuratelist,
80 AppBskyGraphDefsReferencelist,
81 Other(jacquard_common::CowStr<'a>),
82}
83
84impl<'a> ListPurpose<'a> {
85 pub fn as_str(&self) -> &str {
86 match self {
87 Self::AppBskyGraphDefsModlist => "app.bsky.graph.defs#modlist",
88 Self::AppBskyGraphDefsCuratelist => "app.bsky.graph.defs#curatelist",
89 Self::AppBskyGraphDefsReferencelist => "app.bsky.graph.defs#referencelist",
90 Self::Other(s) => s.as_ref(),
91 }
92 }
93}
94
95impl<'a> From<&'a str> for ListPurpose<'a> {
96 fn from(s: &'a str) -> Self {
97 match s {
98 "app.bsky.graph.defs#modlist" => Self::AppBskyGraphDefsModlist,
99 "app.bsky.graph.defs#curatelist" => Self::AppBskyGraphDefsCuratelist,
100 "app.bsky.graph.defs#referencelist" => Self::AppBskyGraphDefsReferencelist,
101 _ => Self::Other(jacquard_common::CowStr::from(s)),
102 }
103 }
104}
105
106impl<'a> From<String> for ListPurpose<'a> {
107 fn from(s: String) -> Self {
108 match s.as_str() {
109 "app.bsky.graph.defs#modlist" => Self::AppBskyGraphDefsModlist,
110 "app.bsky.graph.defs#curatelist" => Self::AppBskyGraphDefsCuratelist,
111 "app.bsky.graph.defs#referencelist" => Self::AppBskyGraphDefsReferencelist,
112 _ => Self::Other(jacquard_common::CowStr::from(s)),
113 }
114 }
115}
116
117impl<'a> AsRef<str> for ListPurpose<'a> {
118 fn as_ref(&self) -> &str {
119 self.as_str()
120 }
121}
122
123impl<'a> serde::Serialize for ListPurpose<'a> {
124 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
125 where
126 S: serde::Serializer,
127 {
128 serializer.serialize_str(self.as_str())
129 }
130}
131
132impl<'de, 'a> serde::Deserialize<'de> for ListPurpose<'a>
133where
134 'de: 'a,
135{
136 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
137 where
138 D: serde::Deserializer<'de>,
139 {
140 let s = <&'de str>::deserialize(deserializer)?;
141 Ok(Self::from(s))
142 }
143}
144
145impl jacquard_common::IntoStatic for ListPurpose<'_> {
146 type Output = ListPurpose<'static>;
147 fn into_static(self) -> Self::Output {
148 match self {
149 ListPurpose::AppBskyGraphDefsModlist => ListPurpose::AppBskyGraphDefsModlist,
150 ListPurpose::AppBskyGraphDefsCuratelist => {
151 ListPurpose::AppBskyGraphDefsCuratelist
152 }
153 ListPurpose::AppBskyGraphDefsReferencelist => {
154 ListPurpose::AppBskyGraphDefsReferencelist
155 }
156 ListPurpose::Other(v) => ListPurpose::Other(v.into_static()),
157 }
158 }
159}
160
161#[jacquard_derive::lexicon]
162#[derive(
163 serde::Serialize,
164 serde::Deserialize,
165 Debug,
166 Clone,
167 PartialEq,
168 Eq,
169 jacquard_derive::IntoStatic,
170 bon::Builder
171)]
172#[serde(rename_all = "camelCase")]
173pub struct ListView<'a> {
174 #[serde(skip_serializing_if = "std::option::Option::is_none")]
175 #[builder(into)]
176 #[serde(borrow)]
177 pub avatar: Option<jacquard_common::types::string::Uri<'a>>,
178 #[serde(borrow)]
179 pub cid: jacquard_common::types::string::Cid<'a>,
180 #[serde(borrow)]
181 pub creator: crate::app_bsky::actor::ProfileView<'a>,
182 #[serde(skip_serializing_if = "std::option::Option::is_none")]
183 #[builder(into)]
184 #[serde(borrow)]
185 pub description: Option<jacquard_common::CowStr<'a>>,
186 #[serde(skip_serializing_if = "std::option::Option::is_none")]
187 #[builder(into)]
188 #[serde(borrow)]
189 pub description_facets: Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>,
190 pub indexed_at: jacquard_common::types::string::Datetime,
191 #[serde(skip_serializing_if = "std::option::Option::is_none")]
192 #[builder(into)]
193 #[serde(borrow)]
194 pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
195 #[serde(skip_serializing_if = "std::option::Option::is_none")]
196 #[builder(into)]
197 pub list_item_count: Option<i64>,
198 #[serde(borrow)]
199 #[builder(into)]
200 pub name: jacquard_common::CowStr<'a>,
201 #[serde(borrow)]
202 pub purpose: crate::app_bsky::graph::ListPurpose<'a>,
203 #[serde(borrow)]
204 pub uri: jacquard_common::types::string::AtUri<'a>,
205 #[serde(skip_serializing_if = "std::option::Option::is_none")]
206 #[builder(into)]
207 #[serde(borrow)]
208 pub viewer: Option<crate::app_bsky::graph::ListViewerState<'a>>,
209}
210
211#[jacquard_derive::lexicon]
212#[derive(
213 serde::Serialize,
214 serde::Deserialize,
215 Debug,
216 Clone,
217 PartialEq,
218 Eq,
219 jacquard_derive::IntoStatic,
220 bon::Builder
221)]
222#[serde(rename_all = "camelCase")]
223pub struct ListViewBasic<'a> {
224 #[serde(skip_serializing_if = "std::option::Option::is_none")]
225 #[builder(into)]
226 #[serde(borrow)]
227 pub avatar: Option<jacquard_common::types::string::Uri<'a>>,
228 #[serde(borrow)]
229 pub cid: jacquard_common::types::string::Cid<'a>,
230 #[serde(skip_serializing_if = "std::option::Option::is_none")]
231 #[builder(into)]
232 pub indexed_at: Option<jacquard_common::types::string::Datetime>,
233 #[serde(skip_serializing_if = "std::option::Option::is_none")]
234 #[builder(into)]
235 #[serde(borrow)]
236 pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
237 #[serde(skip_serializing_if = "std::option::Option::is_none")]
238 #[builder(into)]
239 pub list_item_count: Option<i64>,
240 #[serde(borrow)]
241 #[builder(into)]
242 pub name: jacquard_common::CowStr<'a>,
243 #[serde(borrow)]
244 pub purpose: crate::app_bsky::graph::ListPurpose<'a>,
245 #[serde(borrow)]
246 pub uri: jacquard_common::types::string::AtUri<'a>,
247 #[serde(skip_serializing_if = "std::option::Option::is_none")]
248 #[builder(into)]
249 #[serde(borrow)]
250 pub viewer: Option<crate::app_bsky::graph::ListViewerState<'a>>,
251}
252
253#[jacquard_derive::lexicon]
254#[derive(
255 serde::Serialize,
256 serde::Deserialize,
257 Debug,
258 Clone,
259 PartialEq,
260 Eq,
261 jacquard_derive::IntoStatic,
262 Default
263)]
264#[serde(rename_all = "camelCase")]
265pub struct ListViewerState<'a> {
266 #[serde(skip_serializing_if = "std::option::Option::is_none")]
267 #[serde(borrow)]
268 pub blocked: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
269 #[serde(skip_serializing_if = "std::option::Option::is_none")]
270 pub muted: std::option::Option<bool>,
271}
272
273/// A list of actors to apply an aggregate moderation action (mute/block) on.
274#[derive(
275 serde::Serialize,
276 serde::Deserialize,
277 Debug,
278 Clone,
279 PartialEq,
280 Eq,
281 Hash,
282 jacquard_derive::IntoStatic
283)]
284pub struct Modlist;
285impl std::fmt::Display for Modlist {
286 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
287 write!(f, "modlist")
288 }
289}
290
291/// indicates that a handle or DID could not be resolved
292#[jacquard_derive::lexicon]
293#[derive(
294 serde::Serialize,
295 serde::Deserialize,
296 Debug,
297 Clone,
298 PartialEq,
299 Eq,
300 jacquard_derive::IntoStatic,
301 bon::Builder
302)]
303#[serde(rename_all = "camelCase")]
304pub struct NotFoundActor<'a> {
305 #[serde(borrow)]
306 pub actor: jacquard_common::types::ident::AtIdentifier<'a>,
307 pub not_found: bool,
308}
309
310/// A list of actors used for only for reference purposes such as within a starter pack.
311#[derive(
312 serde::Serialize,
313 serde::Deserialize,
314 Debug,
315 Clone,
316 PartialEq,
317 Eq,
318 Hash,
319 jacquard_derive::IntoStatic
320)]
321pub struct Referencelist;
322impl std::fmt::Display for Referencelist {
323 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
324 write!(f, "referencelist")
325 }
326}
327
328/// lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)
329#[jacquard_derive::lexicon]
330#[derive(
331 serde::Serialize,
332 serde::Deserialize,
333 Debug,
334 Clone,
335 PartialEq,
336 Eq,
337 jacquard_derive::IntoStatic,
338 bon::Builder
339)]
340#[serde(rename_all = "camelCase")]
341pub struct Relationship<'a> {
342 #[serde(borrow)]
343 pub did: jacquard_common::types::string::Did<'a>,
344 /// if the actor is followed by this DID, contains the AT-URI of the follow record
345 #[serde(skip_serializing_if = "std::option::Option::is_none")]
346 #[builder(into)]
347 #[serde(borrow)]
348 pub followed_by: Option<jacquard_common::types::string::AtUri<'a>>,
349 /// if the actor follows this DID, this is the AT-URI of the follow record
350 #[serde(skip_serializing_if = "std::option::Option::is_none")]
351 #[builder(into)]
352 #[serde(borrow)]
353 pub following: Option<jacquard_common::types::string::AtUri<'a>>,
354}
355
356#[jacquard_derive::lexicon]
357#[derive(
358 serde::Serialize,
359 serde::Deserialize,
360 Debug,
361 Clone,
362 PartialEq,
363 Eq,
364 jacquard_derive::IntoStatic,
365 bon::Builder
366)]
367#[serde(rename_all = "camelCase")]
368pub struct StarterPackView<'a> {
369 #[serde(borrow)]
370 pub cid: jacquard_common::types::string::Cid<'a>,
371 #[serde(borrow)]
372 pub creator: crate::app_bsky::actor::ProfileViewBasic<'a>,
373 #[serde(skip_serializing_if = "std::option::Option::is_none")]
374 #[builder(into)]
375 #[serde(borrow)]
376 pub feeds: Option<Vec<crate::app_bsky::feed::GeneratorView<'a>>>,
377 pub indexed_at: jacquard_common::types::string::Datetime,
378 #[serde(skip_serializing_if = "std::option::Option::is_none")]
379 #[builder(into)]
380 pub joined_all_time_count: Option<i64>,
381 #[serde(skip_serializing_if = "std::option::Option::is_none")]
382 #[builder(into)]
383 pub joined_week_count: Option<i64>,
384 #[serde(skip_serializing_if = "std::option::Option::is_none")]
385 #[builder(into)]
386 #[serde(borrow)]
387 pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
388 #[serde(skip_serializing_if = "std::option::Option::is_none")]
389 #[builder(into)]
390 #[serde(borrow)]
391 pub list: Option<crate::app_bsky::graph::ListViewBasic<'a>>,
392 #[serde(skip_serializing_if = "std::option::Option::is_none")]
393 #[builder(into)]
394 #[serde(borrow)]
395 pub list_items_sample: Option<Vec<crate::app_bsky::graph::ListItemView<'a>>>,
396 #[serde(borrow)]
397 pub record: jacquard_common::types::value::Data<'a>,
398 #[serde(borrow)]
399 pub uri: jacquard_common::types::string::AtUri<'a>,
400}
401
402#[jacquard_derive::lexicon]
403#[derive(
404 serde::Serialize,
405 serde::Deserialize,
406 Debug,
407 Clone,
408 PartialEq,
409 Eq,
410 jacquard_derive::IntoStatic,
411 bon::Builder
412)]
413#[serde(rename_all = "camelCase")]
414pub struct StarterPackViewBasic<'a> {
415 #[serde(borrow)]
416 pub cid: jacquard_common::types::string::Cid<'a>,
417 #[serde(borrow)]
418 pub creator: crate::app_bsky::actor::ProfileViewBasic<'a>,
419 pub indexed_at: jacquard_common::types::string::Datetime,
420 #[serde(skip_serializing_if = "std::option::Option::is_none")]
421 #[builder(into)]
422 pub joined_all_time_count: Option<i64>,
423 #[serde(skip_serializing_if = "std::option::Option::is_none")]
424 #[builder(into)]
425 pub joined_week_count: Option<i64>,
426 #[serde(skip_serializing_if = "std::option::Option::is_none")]
427 #[builder(into)]
428 #[serde(borrow)]
429 pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>,
430 #[serde(skip_serializing_if = "std::option::Option::is_none")]
431 #[builder(into)]
432 pub list_item_count: Option<i64>,
433 #[serde(borrow)]
434 pub record: jacquard_common::types::value::Data<'a>,
435 #[serde(borrow)]
436 pub uri: jacquard_common::types::string::AtUri<'a>,
437}