1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: network.slices.slice.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 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 /// When the slice was created
39 pub created_at: jacquard_common::types::string::Datetime,
40 /// Primary domain namespace for this slice (e.g. social.grain)
41 #[serde(borrow)]
42 #[builder(into)]
43 pub domain: jacquard_common::CowStr<'a>,
44 /// Name of the slice
45 #[serde(borrow)]
46 #[builder(into)]
47 pub name: jacquard_common::CowStr<'a>,
48}
49
50/// Typed wrapper for GetRecord response with this collection's record type.
51#[derive(
52 serde::Serialize,
53 serde::Deserialize,
54 Debug,
55 Clone,
56 PartialEq,
57 Eq,
58 jacquard_derive::IntoStatic
59)]
60#[serde(rename_all = "camelCase")]
61pub struct SliceGetRecordOutput<'a> {
62 #[serde(skip_serializing_if = "std::option::Option::is_none")]
63 #[serde(borrow)]
64 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
65 #[serde(borrow)]
66 pub uri: jacquard_common::types::string::AtUri<'a>,
67 #[serde(borrow)]
68 pub value: Slice<'a>,
69}
70
71/// Marker type for deserializing records from this collection.
72pub struct SliceRecord;
73impl jacquard_common::xrpc::XrpcResp for SliceRecord {
74 const NSID: &'static str = "network.slices.slice";
75 const ENCODING: &'static str = "application/json";
76 type Output<'de> = SliceGetRecordOutput<'de>;
77 type Err<'de> = jacquard_common::types::collection::RecordError<'de>;
78}
79
80impl jacquard_common::types::collection::Collection for Slice<'_> {
81 const NSID: &'static str = "network.slices.slice";
82 type Record = SliceRecord;
83}
84
85impl From<SliceGetRecordOutput<'_>> for Slice<'_> {
86 fn from(output: SliceGetRecordOutput<'_>) -> Self {
87 use jacquard_common::IntoStatic;
88 output.value.into_static()
89 }
90}
91
92#[jacquard_derive::lexicon]
93#[derive(
94 serde::Serialize,
95 serde::Deserialize,
96 Debug,
97 Clone,
98 PartialEq,
99 Eq,
100 jacquard_derive::IntoStatic,
101 bon::Builder
102)]
103#[serde(rename_all = "camelCase")]
104pub struct SliceView<'a> {
105 #[serde(borrow)]
106 pub cid: jacquard_common::types::string::Cid<'a>,
107 pub created_at: jacquard_common::types::string::Datetime,
108 /// Profile of the slice creator
109 #[serde(borrow)]
110 pub creator: crate::network_slices::actor::ProfileViewBasic<'a>,
111 /// Primary domain namespace for this slice (e.g. social.grain)
112 #[serde(borrow)]
113 #[builder(into)]
114 pub domain: jacquard_common::CowStr<'a>,
115 /// Total number of unique indexed actors in this slice
116 #[serde(skip_serializing_if = "std::option::Option::is_none")]
117 #[builder(into)]
118 pub indexed_actor_count: Option<i64>,
119 /// Number of collections with indexed records
120 #[serde(skip_serializing_if = "std::option::Option::is_none")]
121 #[builder(into)]
122 pub indexed_collection_count: Option<i64>,
123 /// Total number of indexed records in this slice
124 #[serde(skip_serializing_if = "std::option::Option::is_none")]
125 #[builder(into)]
126 pub indexed_record_count: Option<i64>,
127 /// Display name of the slice
128 #[serde(borrow)]
129 #[builder(into)]
130 pub name: jacquard_common::CowStr<'a>,
131 /// Recent activity sparkline data points for the last 24 hours
132 #[serde(skip_serializing_if = "std::option::Option::is_none")]
133 #[builder(into)]
134 #[serde(borrow)]
135 pub sparkline: Option<Vec<crate::network_slices::slice::SparklinePoint<'a>>>,
136 #[serde(borrow)]
137 pub uri: jacquard_common::types::string::AtUri<'a>,
138 /// Total number of waitlist invites for this slice
139 #[serde(skip_serializing_if = "std::option::Option::is_none")]
140 #[builder(into)]
141 pub waitlist_invite_count: Option<i64>,
142 /// Total number of waitlist requests for this slice
143 #[serde(skip_serializing_if = "std::option::Option::is_none")]
144 #[builder(into)]
145 pub waitlist_request_count: Option<i64>,
146}
147
148#[jacquard_derive::lexicon]
149#[derive(
150 serde::Serialize,
151 serde::Deserialize,
152 Debug,
153 Clone,
154 PartialEq,
155 Eq,
156 jacquard_derive::IntoStatic,
157 bon::Builder
158)]
159#[serde(rename_all = "camelCase")]
160pub struct SparklinePoint<'a> {
161 pub count: i64,
162 pub timestamp: jacquard_common::types::string::Datetime,
163}