cognite/api/
data_modeling.rs

1pub(crate) mod containers;
2pub(crate) mod data_models;
3pub(crate) mod instances;
4// pub(crate) mod resource;
5pub(crate) mod records;
6pub(crate) mod spaces;
7pub(crate) mod streams;
8pub(crate) mod views;
9
10use std::sync::Arc;
11
12use records::RecordsResource;
13use streams::StreamsResource;
14
15use crate::api::data_modeling::{instances::Instances, views::ViewsResource};
16use crate::ApiClient;
17
18use self::containers::ContainersResource;
19use self::data_models::DataModelsResource;
20use self::spaces::SpacesResource;
21
22#[derive(Clone)]
23/// API resource for data modeling.
24pub struct Models {
25    /// Data model instances (nodes and edges)
26    pub instances: Instances,
27    /// Data modeling views.
28    pub views: ViewsResource,
29    /// Data modeling spaces.
30    pub spaces: SpacesResource,
31    /// Data models.
32    pub data_models: DataModelsResource,
33    /// Data modeling containers.
34    pub containers: ContainersResource,
35    /// Data modeling streams.
36    pub streams: StreamsResource,
37    /// Data modeling stream records.
38    pub records: RecordsResource,
39}
40
41impl Models {
42    pub(crate) fn new(api_client: Arc<ApiClient>) -> Self {
43        Models {
44            instances: Instances::new(api_client.clone()),
45            views: ViewsResource::new(api_client.clone()),
46            spaces: SpacesResource::new(api_client.clone()),
47            data_models: DataModelsResource::new(api_client.clone()),
48            containers: ContainersResource::new(api_client.clone()),
49            streams: StreamsResource::new(Arc::new(api_client.clone_with_api_version("beta"))),
50            records: RecordsResource::new(Arc::new(api_client.clone_with_api_version("beta"))),
51        }
52    }
53}