jacquard_api/network_slices/slice/
start_sync.rs1#[allow(unused_imports)]
9use alloc::collections::BTreeMap;
10
11#[allow(unused_imports)]
12use core::marker::PhantomData;
13use jacquard_common::CowStr;
14use jacquard_common::types::string::{Did, Nsid};
15use jacquard_derive::{IntoStatic, lexicon};
16use serde::{Serialize, Deserialize};
17
18#[lexicon]
19#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
20#[serde(rename_all = "camelCase")]
21pub struct StartSync<'a> {
22 #[serde(skip_serializing_if = "Option::is_none")]
24 #[serde(borrow)]
25 pub collections: Option<Vec<Nsid<'a>>>,
26 #[serde(skip_serializing_if = "Option::is_none")]
28 #[serde(borrow)]
29 pub external_collections: Option<Vec<Nsid<'a>>>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub limit_per_repo: Option<i64>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 #[serde(borrow)]
36 pub repos: Option<Vec<Did<'a>>>,
37 #[serde(skip_serializing_if = "Option::is_none")]
39 #[serde(default = "_default_start_sync_skip_validation")]
40 pub skip_validation: Option<bool>,
41 #[serde(borrow)]
43 pub slice: CowStr<'a>,
44}
45
46
47#[lexicon]
48#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
49#[serde(rename_all = "camelCase")]
50pub struct StartSyncOutput<'a> {
51 #[serde(borrow)]
53 pub job_id: CowStr<'a>,
54 #[serde(borrow)]
56 pub message: CowStr<'a>,
57}
58
59pub struct StartSyncResponse;
61impl jacquard_common::xrpc::XrpcResp for StartSyncResponse {
62 const NSID: &'static str = "network.slices.slice.startSync";
63 const ENCODING: &'static str = "application/json";
64 type Output<'de> = StartSyncOutput<'de>;
65 type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
66}
67
68impl<'a> jacquard_common::xrpc::XrpcRequest for StartSync<'a> {
69 const NSID: &'static str = "network.slices.slice.startSync";
70 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
71 "application/json",
72 );
73 type Response = StartSyncResponse;
74}
75
76pub struct StartSyncRequest;
78impl jacquard_common::xrpc::XrpcEndpoint for StartSyncRequest {
79 const PATH: &'static str = "/xrpc/network.slices.slice.startSync";
80 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
81 "application/json",
82 );
83 type Request<'de> = StartSync<'de>;
84 type Response = StartSyncResponse;
85}
86
87fn _default_start_sync_skip_validation() -> Option<bool> {
88 Some(false)
89}