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, BosStr, DefaultStr, FromStaticStr};
14use jacquard_common::deps::smol_str::SmolStr;
15use jacquard_common::types::string::{Did, Nsid};
16use jacquard_common::types::value::Data;
17use jacquard_derive::IntoStatic;
18use serde::{Serialize, Deserialize};
19
20#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
21#[serde(rename_all = "camelCase", bound(deserialize = "S: Deserialize<'de> + BosStr"))]
22pub struct StartSync<S: BosStr = DefaultStr> {
23 #[serde(skip_serializing_if = "Option::is_none")]
25 pub collections: Option<Vec<Nsid<S>>>,
26 #[serde(skip_serializing_if = "Option::is_none")]
28 pub external_collections: Option<Vec<Nsid<S>>>,
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub limit_per_repo: Option<i64>,
32 #[serde(skip_serializing_if = "Option::is_none")]
34 pub repos: Option<Vec<Did<S>>>,
35 #[serde(skip_serializing_if = "Option::is_none")]
37 #[serde(default = "_default_start_sync_skip_validation")]
38 pub skip_validation: Option<bool>,
39 pub slice: S,
41 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
42 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
43}
44
45
46#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
47#[serde(rename_all = "camelCase", bound(deserialize = "S: Deserialize<'de> + BosStr"))]
48pub struct StartSyncOutput<S: BosStr = DefaultStr> {
49 pub job_id: S,
51 pub message: S,
53 #[serde(flatten, default, skip_serializing_if = "Option::is_none")]
54 pub extra_data: Option<BTreeMap<SmolStr, Data<S>>>,
55}
56
57pub 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<S: BosStr> = StartSyncOutput<S>;
65 type Err = jacquard_common::xrpc::GenericError;
66}
67
68impl<S: BosStr> jacquard_common::xrpc::XrpcRequest for StartSync<S> {
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;
80impl jacquard_common::xrpc::XrpcEndpoint for StartSyncRequest {
81 const PATH: &'static str = "/xrpc/network.slices.slice.startSync";
82 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
83 "application/json",
84 );
85 type Request<S: BosStr> = StartSync<S>;
86 type Response = StartSyncResponse;
87}
88
89fn _default_start_sync_skip_validation() -> Option<bool> {
90 Some(false)
91}