decthings_api/client/rpc/image/
request.rs

1use serde::Serialize;
2
3#[derive(Debug, Clone, Serialize)]
4#[serde(rename_all = "camelCase")]
5pub struct CreateRepositoryParams<'a> {
6    /// The repository's name.
7    pub name: &'a str,
8    /// A description of the repository.
9    pub description: &'a str,
10    /// If true, all Decthings users can find and use this repository. Defaults to false.
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub public_access: Option<bool>,
13}
14
15#[derive(Debug, Clone, Serialize)]
16#[serde(rename_all = "camelCase")]
17pub struct UpdateRepositoryProperties<'a> {
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub description: Option<&'a str>,
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub public_access: Option<bool>,
22}
23
24#[derive(Debug, Clone, Serialize)]
25#[serde(rename_all = "camelCase")]
26pub struct UpdateRepositoryParams<'a> {
27    /// The repository's id.
28    pub name: &'a str,
29    /// Properties and values to change. Empty fields will not be changed.
30    pub properties: UpdateRepositoryProperties<'a>,
31}
32
33#[derive(Debug, Clone, Serialize)]
34#[serde(rename_all = "camelCase")]
35pub struct DeleteRepositoryParams<'a> {
36    /// The repository's name.
37    pub name: &'a str,
38}
39
40#[derive(Debug, Clone, Serialize)]
41#[serde(rename_all = "camelCase")]
42pub struct GetRepositoriesFilter<'a, S: AsRef<str>> {
43    #[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub owners: Option<&'a [S]>,
46    #[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
47    #[serde(skip_serializing_if = "Option::is_none")]
48    pub names: Option<&'a [S]>,
49    #[serde(skip_serializing_if = "Option::is_none")]
50    pub search_name: Option<&'a str>,
51}
52
53#[derive(Debug, Clone, Serialize)]
54#[serde(rename_all = "camelCase")]
55pub enum SortDirection {
56    Asc,
57    Desc,
58}
59
60#[derive(Debug, Clone, Serialize)]
61#[serde(rename_all = "camelCase")]
62#[serde(bound(serialize = ""))]
63pub struct GetRepositoriesParams<'a, S: AsRef<str>> {
64    /// Number of items from the results to skip. Defaults to 0.
65    #[serde(skip_serializing_if = "Option::is_none")]
66    pub offset: Option<u32>,
67    /// Max number of items to return. Defaults to 20.
68    #[serde(skip_serializing_if = "Option::is_none")]
69    pub limit: Option<u32>,
70    /// If specified, determines which items to retrieve.
71    #[serde(skip_serializing_if = "Option::is_none")]
72    pub filter: Option<GetRepositoriesFilter<'a, S>>,
73    /// Specifies a field in the returned items to sort by. Defaults to "createdAt".
74    #[serde(skip_serializing_if = "Option::is_none")]
75    pub sort: Option<&'a str>,
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub sort_direction: Option<SortDirection>,
78}