Skip to main content

nominal_api/conjure/objects/scout/run/api/
run_data_source.rs

1/// For read requests, we want to require all fields
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 RunDataSource {
17    #[builder(custom(type = super::DataSource, convert = Box::new))]
18    #[serde(rename = "dataSource")]
19    data_source: Box<super::DataSource>,
20    #[builder(custom(type = super::Duration, convert = Box::new))]
21    #[serde(rename = "offset")]
22    offset: Box<super::Duration>,
23    #[serde(rename = "refName")]
24    ref_name: super::super::super::api::DataSourceRefName,
25    #[serde(rename = "timestampType")]
26    timestamp_type: super::WeakTimestampType,
27    #[builder(
28        default,
29        map(
30            key(type = super::super::super::super::api::TagName),
31            value(type = super::super::super::super::api::TagValue)
32        )
33    )]
34    #[serde(
35        rename = "seriesTags",
36        skip_serializing_if = "std::collections::BTreeMap::is_empty",
37        default
38    )]
39    series_tags: std::collections::BTreeMap<
40        super::super::super::super::api::TagName,
41        super::super::super::super::api::TagValue,
42    >,
43}
44impl RunDataSource {
45    #[inline]
46    pub fn data_source(&self) -> &super::DataSource {
47        &*self.data_source
48    }
49    /// This offset is used for small time-sync corrections. Notably, it is
50    /// not the offset to move a relative data source to the start of the run.
51    #[inline]
52    pub fn offset(&self) -> &super::Duration {
53        &*self.offset
54    }
55    /// Included for convenience, duplicated from the key of the map
56    #[inline]
57    pub fn ref_name(&self) -> &super::super::super::api::DataSourceRefName {
58        &self.ref_name
59    }
60    #[inline]
61    pub fn timestamp_type(&self) -> &super::WeakTimestampType {
62        &self.timestamp_type
63    }
64    /// Used to resolve logical series for this data source.
65    #[inline]
66    pub fn series_tags(
67        &self,
68    ) -> &std::collections::BTreeMap<
69        super::super::super::super::api::TagName,
70        super::super::super::super::api::TagValue,
71    > {
72        &self.series_tags
73    }
74}