jacquard_api/network_slices/waitlist/
request.rs1#[jacquard_derive::lexicon]
10#[derive(
11 serde::Serialize,
12 serde::Deserialize,
13 Debug,
14 Clone,
15 PartialEq,
16 Eq,
17 jacquard_derive::IntoStatic,
18 bon::Builder
19)]
20#[serde(rename_all = "camelCase")]
21pub struct Request<'a> {
22 pub created_at: jacquard_common::types::string::Datetime,
24 #[serde(borrow)]
26 pub slice: jacquard_common::types::string::AtUri<'a>,
27}
28
29impl<'a> Request<'a> {
30 pub fn uri(
31 uri: impl Into<jacquard_common::CowStr<'a>>,
32 ) -> Result<
33 jacquard_common::types::uri::RecordUri<'a, RequestRecord>,
34 jacquard_common::types::uri::UriError,
35 > {
36 jacquard_common::types::uri::RecordUri::try_from_uri(
37 jacquard_common::types::string::AtUri::new_cow(uri.into())?,
38 )
39 }
40}
41
42#[derive(
44 serde::Serialize,
45 serde::Deserialize,
46 Debug,
47 Clone,
48 PartialEq,
49 Eq,
50 jacquard_derive::IntoStatic
51)]
52#[serde(rename_all = "camelCase")]
53pub struct RequestGetRecordOutput<'a> {
54 #[serde(skip_serializing_if = "std::option::Option::is_none")]
55 #[serde(borrow)]
56 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
57 #[serde(borrow)]
58 pub uri: jacquard_common::types::string::AtUri<'a>,
59 #[serde(borrow)]
60 pub value: Request<'a>,
61}
62
63impl From<RequestGetRecordOutput<'_>> for Request<'_> {
64 fn from(output: RequestGetRecordOutput<'_>) -> Self {
65 use jacquard_common::IntoStatic;
66 output.value.into_static()
67 }
68}
69
70impl jacquard_common::types::collection::Collection for Request<'_> {
71 const NSID: &'static str = "network.slices.waitlist.request";
72 type Record = RequestRecord;
73}
74
75#[derive(Debug, serde::Serialize, serde::Deserialize)]
77pub struct RequestRecord;
78impl jacquard_common::xrpc::XrpcResp for RequestRecord {
79 const NSID: &'static str = "network.slices.waitlist.request";
80 const ENCODING: &'static str = "application/json";
81 type Output<'de> = RequestGetRecordOutput<'de>;
82 type Err<'de> = jacquard_common::types::collection::RecordError<'de>;
83}
84
85impl jacquard_common::types::collection::Collection for RequestRecord {
86 const NSID: &'static str = "network.slices.waitlist.request";
87 type Record = RequestRecord;
88}