Skip to main content

nominal_api/conjure/objects/storage/datasource/api/
nominal_data_source.rs

1/// A logical grouping of series.
2#[derive(
3    Debug,
4    Clone,
5    conjure_object::serde::Serialize,
6    conjure_object::serde::Deserialize,
7    PartialEq,
8    Eq,
9    PartialOrd,
10    Ord,
11    Hash
12)]
13#[serde(crate = "conjure_object::serde")]
14#[conjure_object::private::staged_builder::staged_builder]
15#[builder(crate = conjure_object::private::staged_builder, update, inline)]
16pub struct NominalDataSource {
17    #[serde(rename = "rid")]
18    rid: super::super::super::super::api::rids::NominalDataSourceRid,
19    #[serde(rename = "id")]
20    id: super::NominalDataSourceId,
21    #[builder(default, into)]
22    #[serde(rename = "description", skip_serializing_if = "Option::is_none", default)]
23    description: Option<String>,
24    #[builder(default, into)]
25    #[serde(
26        rename = "dataLastWrittenAt",
27        skip_serializing_if = "Option::is_none",
28        default
29    )]
30    data_last_written_at: Option<conjure_object::DateTime<conjure_object::Utc>>,
31    #[serde(rename = "granularity")]
32    granularity: super::super::super::super::api::Granularity,
33    #[builder(default, into)]
34    #[serde(
35        rename = "inMemoryStreamingEnabled",
36        skip_serializing_if = "Option::is_none",
37        default
38    )]
39    in_memory_streaming_enabled: Option<bool>,
40}
41impl NominalDataSource {
42    /// Constructs a new instance of the type.
43    #[inline]
44    pub fn new(
45        rid: super::super::super::super::api::rids::NominalDataSourceRid,
46        id: super::NominalDataSourceId,
47        granularity: super::super::super::super::api::Granularity,
48    ) -> Self {
49        Self::builder().rid(rid).id(id).granularity(granularity).build()
50    }
51    #[inline]
52    pub fn rid(&self) -> &super::super::super::super::api::rids::NominalDataSourceRid {
53        &self.rid
54    }
55    #[inline]
56    pub fn id(&self) -> &super::NominalDataSourceId {
57        &self.id
58    }
59    #[inline]
60    pub fn description(&self) -> Option<&str> {
61        self.description.as_ref().map(|o| &**o)
62    }
63    /// Returns the approximate timestamp at which data was written to the data source.
64    /// Will be accurate to within 1 minute.
65    #[inline]
66    pub fn data_last_written_at(
67        &self,
68    ) -> Option<conjure_object::DateTime<conjure_object::Utc>> {
69        self.data_last_written_at.as_ref().map(|o| *o)
70    }
71    #[inline]
72    pub fn granularity(&self) -> &super::super::super::super::api::Granularity {
73        &self.granularity
74    }
75    #[inline]
76    pub fn in_memory_streaming_enabled(&self) -> Option<bool> {
77        self.in_memory_streaming_enabled.as_ref().map(|o| *o)
78    }
79}