Skip to main content

nominal_api_conjure/conjure/objects/ingest/api/
streaming_session.rs

1/// Public view of a streaming ingest session.
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 StreamingSession {
17    #[serde(rename = "sessionRid")]
18    session_rid: super::StreamingSessionRid,
19    #[serde(rename = "datasetRid")]
20    dataset_rid: super::super::super::api::rids::DatasetRid,
21    #[serde(rename = "status")]
22    status: super::StreamingSessionStatus,
23    #[builder(
24        default,
25        custom(
26            type = impl
27            Into<Option<super::StreamingSessionSource>>,
28            convert = |v|v.into().map(Box::new)
29        )
30    )]
31    #[serde(rename = "source", skip_serializing_if = "Option::is_none", default)]
32    source: Option<Box<super::StreamingSessionSource>>,
33    #[builder(
34        default,
35        custom(
36            type = impl
37            Into<Option<super::super::super::api::Range>>,
38            convert = |v|v.into().map(Box::new)
39        )
40    )]
41    #[serde(rename = "bounds", skip_serializing_if = "Option::is_none", default)]
42    bounds: Option<Box<super::super::super::api::Range>>,
43    #[serde(rename = "pointsCount")]
44    points_count: conjure_object::SafeLong,
45    #[builder(custom(type = super::super::super::api::Timestamp, convert = Box::new))]
46    #[serde(rename = "createdAt")]
47    created_at: Box<super::super::super::api::Timestamp>,
48    #[builder(custom(type = super::super::super::api::Timestamp, convert = Box::new))]
49    #[serde(rename = "lastSeenAt")]
50    last_seen_at: Box<super::super::super::api::Timestamp>,
51    #[builder(
52        default,
53        custom(
54            type = impl
55            Into<Option<super::super::super::api::Timestamp>>,
56            convert = |v|v.into().map(Box::new)
57        )
58    )]
59    #[serde(rename = "closedAt", skip_serializing_if = "Option::is_none", default)]
60    closed_at: Option<Box<super::super::super::api::Timestamp>>,
61}
62impl StreamingSession {
63    #[inline]
64    pub fn session_rid(&self) -> &super::StreamingSessionRid {
65        &self.session_rid
66    }
67    #[inline]
68    pub fn dataset_rid(&self) -> &super::super::super::api::rids::DatasetRid {
69        &self.dataset_rid
70    }
71    #[inline]
72    pub fn status(&self) -> &super::StreamingSessionStatus {
73        &self.status
74    }
75    #[inline]
76    pub fn source(&self) -> Option<&super::StreamingSessionSource> {
77        self.source.as_ref().map(|o| &**o)
78    }
79    #[inline]
80    pub fn bounds(&self) -> Option<&super::super::super::api::Range> {
81        self.bounds.as_ref().map(|o| &**o)
82    }
83    #[inline]
84    pub fn points_count(&self) -> conjure_object::SafeLong {
85        self.points_count
86    }
87    #[inline]
88    pub fn created_at(&self) -> &super::super::super::api::Timestamp {
89        &*self.created_at
90    }
91    /// Time of the most recent heartbeat for this session.
92    #[inline]
93    pub fn last_seen_at(&self) -> &super::super::super::api::Timestamp {
94        &*self.last_seen_at
95    }
96    /// Time the session was completed. Absent while the session is in progress.
97    #[inline]
98    pub fn closed_at(&self) -> Option<&super::super::super::api::Timestamp> {
99        self.closed_at.as_ref().map(|o| &**o)
100    }
101}