cognite/dto/data_organization/
datasets.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4use serde_with::skip_serializing_none;
5
6use crate::{
7 Identity, IntoPatch, IntoPatchItem, Patch, Range, UpdateMap, UpdateSetNull, UpsertOptions,
8};
9
10#[derive(Serialize, Deserialize, Debug, Default)]
11#[serde(rename_all = "camelCase")]
12pub struct DataSet {
14 pub id: i64,
16 pub created_time: i64,
18 pub last_updated_time: i64,
20 pub external_id: Option<String>,
22 pub name: Option<String>,
24 pub description: Option<String>,
26 pub metadata: Option<HashMap<String, String>>,
30 pub write_protected: bool,
33}
34
35#[skip_serializing_none]
36#[derive(Serialize, Deserialize, Debug, Default)]
37#[serde(rename_all = "camelCase")]
38pub struct AddDataSet {
40 pub external_id: Option<String>,
42 pub name: Option<String>,
44 pub description: Option<String>,
46 pub metadata: Option<HashMap<String, String>>,
50 pub write_protected: bool,
53}
54
55impl From<DataSet> for AddDataSet {
56 fn from(dataset: DataSet) -> Self {
57 AddDataSet {
58 external_id: dataset.external_id,
59 name: dataset.name,
60 description: dataset.description,
61 metadata: dataset.metadata,
62 write_protected: dataset.write_protected,
63 }
64 }
65}
66
67#[skip_serializing_none]
68#[derive(Serialize, Deserialize, Debug, Default, Clone)]
69#[serde(rename_all = "camelCase")]
70pub struct DataSetFilter {
72 pub metadata: Option<HashMap<String, String>>,
74 pub created_time: Option<Range<i64>>,
76 pub last_updated_time: Option<Range<i64>>,
78 pub external_id_prefix: Option<String>,
80 pub write_protected: Option<bool>,
82}
83
84#[derive(Serialize, Deserialize, Debug, Default)]
85#[serde(rename_all = "camelCase")]
86pub struct DataSetsCount {
88 pub count: i64,
90}
91
92#[skip_serializing_none]
93#[derive(Serialize, Deserialize, Debug, Default, Clone)]
94#[serde(rename_all = "camelCase")]
95pub struct PatchDataSet {
97 pub external_id: Option<UpdateSetNull<String>>,
99 pub name: Option<UpdateSetNull<String>>,
101 pub description: Option<UpdateSetNull<String>>,
103 pub metadata: Option<UpdateMap<String, String>>,
107}
108
109impl IntoPatch<Patch<PatchDataSet>> for DataSet {
110 fn patch(self, options: &UpsertOptions) -> Patch<PatchDataSet> {
111 Patch::<PatchDataSet> {
112 id: to_idt!(self),
113 update: PatchDataSet {
114 external_id: None,
115 name: self.name.patch(options),
116 description: self.description.patch(options),
117 metadata: self.metadata.patch(options),
118 },
119 }
120 }
121}
122
123impl IntoPatch<PatchDataSet> for AddDataSet {
124 fn patch(self, options: &UpsertOptions) -> PatchDataSet {
125 PatchDataSet {
126 external_id: None,
127 name: self.name.patch(options),
128 description: self.description.patch(options),
129 metadata: self.metadata.patch(options),
130 }
131 }
132}
133
134impl From<DataSet> for Patch<PatchDataSet> {
135 fn from(data_set: DataSet) -> Patch<PatchDataSet> {
136 IntoPatch::<Patch<PatchDataSet>>::patch(data_set, &Default::default())
137 }
138}