jacquard_api/network_slices/
slice.rs1pub mod clear_slice_records;
9pub mod create_o_auth_client;
10pub mod delete_o_auth_client;
11pub mod get_actors;
12pub mod get_jetstream_logs;
13pub mod get_jetstream_status;
14pub mod get_job_logs;
15pub mod get_job_status;
16pub mod get_o_auth_clients;
17pub mod get_slice_records;
18pub mod get_sparklines;
19pub mod get_sync_summary;
20pub mod start_sync;
21pub mod stats;
22pub mod sync_user_collections;
23pub mod update_o_auth_client;
24
25#[jacquard_derive::lexicon]
26#[derive(
27 serde::Serialize,
28 serde::Deserialize,
29 Debug,
30 Clone,
31 PartialEq,
32 Eq,
33 jacquard_derive::IntoStatic,
34 bon::Builder
35)]
36#[serde(rename_all = "camelCase")]
37pub struct Slice<'a> {
38 pub created_at: jacquard_common::types::string::Datetime,
40 #[serde(borrow)]
42 #[builder(into)]
43 pub domain: jacquard_common::CowStr<'a>,
44 #[serde(borrow)]
46 #[builder(into)]
47 pub name: jacquard_common::CowStr<'a>,
48}
49
50impl<'a> Slice<'a> {
51 pub fn uri(
52 uri: impl Into<jacquard_common::CowStr<'a>>,
53 ) -> Result<
54 jacquard_common::types::uri::RecordUri<'a, SliceRecord>,
55 jacquard_common::types::uri::UriError,
56 > {
57 jacquard_common::types::uri::RecordUri::try_from_uri(
58 jacquard_common::types::string::AtUri::new_cow(uri.into())?,
59 )
60 }
61}
62
63#[derive(
65 serde::Serialize,
66 serde::Deserialize,
67 Debug,
68 Clone,
69 PartialEq,
70 Eq,
71 jacquard_derive::IntoStatic
72)]
73#[serde(rename_all = "camelCase")]
74pub struct SliceGetRecordOutput<'a> {
75 #[serde(skip_serializing_if = "std::option::Option::is_none")]
76 #[serde(borrow)]
77 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
78 #[serde(borrow)]
79 pub uri: jacquard_common::types::string::AtUri<'a>,
80 #[serde(borrow)]
81 pub value: Slice<'a>,
82}
83
84impl From<SliceGetRecordOutput<'_>> for Slice<'_> {
85 fn from(output: SliceGetRecordOutput<'_>) -> Self {
86 use jacquard_common::IntoStatic;
87 output.value.into_static()
88 }
89}
90
91impl jacquard_common::types::collection::Collection for Slice<'_> {
92 const NSID: &'static str = "network.slices.slice";
93 type Record = SliceRecord;
94}
95
96#[derive(Debug, serde::Serialize, serde::Deserialize)]
98pub struct SliceRecord;
99impl jacquard_common::xrpc::XrpcResp for SliceRecord {
100 const NSID: &'static str = "network.slices.slice";
101 const ENCODING: &'static str = "application/json";
102 type Output<'de> = SliceGetRecordOutput<'de>;
103 type Err<'de> = jacquard_common::types::collection::RecordError<'de>;
104}
105
106impl jacquard_common::types::collection::Collection for SliceRecord {
107 const NSID: &'static str = "network.slices.slice";
108 type Record = SliceRecord;
109}
110
111#[jacquard_derive::lexicon]
112#[derive(
113 serde::Serialize,
114 serde::Deserialize,
115 Debug,
116 Clone,
117 PartialEq,
118 Eq,
119 jacquard_derive::IntoStatic,
120 bon::Builder
121)]
122#[serde(rename_all = "camelCase")]
123pub struct SliceView<'a> {
124 #[serde(borrow)]
125 pub cid: jacquard_common::types::string::Cid<'a>,
126 pub created_at: jacquard_common::types::string::Datetime,
127 #[serde(borrow)]
129 pub creator: crate::network_slices::actor::ProfileViewBasic<'a>,
130 #[serde(borrow)]
132 #[builder(into)]
133 pub domain: jacquard_common::CowStr<'a>,
134 #[serde(skip_serializing_if = "std::option::Option::is_none")]
136 #[builder(into)]
137 pub indexed_actor_count: Option<i64>,
138 #[serde(skip_serializing_if = "std::option::Option::is_none")]
140 #[builder(into)]
141 pub indexed_collection_count: Option<i64>,
142 #[serde(skip_serializing_if = "std::option::Option::is_none")]
144 #[builder(into)]
145 pub indexed_record_count: Option<i64>,
146 #[serde(borrow)]
148 #[builder(into)]
149 pub name: jacquard_common::CowStr<'a>,
150 #[serde(skip_serializing_if = "std::option::Option::is_none")]
152 #[builder(into)]
153 #[serde(borrow)]
154 pub sparkline: Option<Vec<crate::network_slices::slice::SparklinePoint<'a>>>,
155 #[serde(borrow)]
156 pub uri: jacquard_common::types::string::AtUri<'a>,
157 #[serde(skip_serializing_if = "std::option::Option::is_none")]
159 #[builder(into)]
160 pub waitlist_invite_count: Option<i64>,
161 #[serde(skip_serializing_if = "std::option::Option::is_none")]
163 #[builder(into)]
164 pub waitlist_request_count: Option<i64>,
165}
166
167#[jacquard_derive::lexicon]
168#[derive(
169 serde::Serialize,
170 serde::Deserialize,
171 Debug,
172 Clone,
173 PartialEq,
174 Eq,
175 jacquard_derive::IntoStatic,
176 bon::Builder
177)]
178#[serde(rename_all = "camelCase")]
179pub struct SparklinePoint<'a> {
180 pub count: i64,
181 pub timestamp: jacquard_common::types::string::Datetime,
182}