cognite/dto/data_modeling/
spaces.rs1use serde::{Deserialize, Serialize};
2use serde_with::skip_serializing_none;
3
4use crate::{to_query, IntoParams, LimitCursorQuery, SetCursor};
5#[skip_serializing_none]
6#[derive(Serialize, Deserialize, Clone, Debug, Default)]
7#[serde(rename_all = "camelCase")]
8pub struct SpaceCreate {
10 pub space: String,
14 pub description: Option<String>,
16 pub name: Option<String>,
18}
19
20#[skip_serializing_none]
21#[derive(Serialize, Deserialize, Clone, Debug, Default)]
22#[serde(rename_all = "camelCase")]
23pub struct Space {
25 pub space: String,
27 pub description: Option<String>,
29 pub name: Option<String>,
31 pub created_time: i64,
33 pub last_updated_time: i64,
35 pub is_global: bool,
37}
38
39#[derive(Default, Clone, Debug)]
40pub struct SpaceQuery {
42 pub limit: Option<i32>,
44 pub cursor: Option<String>,
46 pub include_global: Option<bool>,
48}
49
50impl IntoParams for SpaceQuery {
51 fn into_params(self) -> Vec<(String, String)> {
52 let mut params = Vec::new();
53 to_query("limit", &self.limit, &mut params);
54 to_query("cursor", &self.cursor, &mut params);
55 to_query("includeGlobal", &self.include_global, &mut params);
56 params
57 }
58}
59
60impl SetCursor for SpaceQuery {
61 fn set_cursor(&mut self, cursor: Option<String>) {
62 self.cursor = cursor;
63 }
64}
65
66impl From<LimitCursorQuery> for SpaceQuery {
67 fn from(q: LimitCursorQuery) -> Self {
68 Self {
69 limit: q.limit,
70 cursor: q.cursor,
71 include_global: None,
72 }
73 }
74}