nominal_api/conjure/objects/scout/compute/api/
aggregate_numeric_series.rs1#[derive(
6 Debug,
7 Clone,
8 conjure_object::serde::Serialize,
9 conjure_object::serde::Deserialize,
10 conjure_object::private::DeriveWith
11)]
12#[serde(crate = "conjure_object::serde")]
13#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
14#[conjure_object::private::staged_builder::staged_builder]
15#[builder(crate = conjure_object::private::staged_builder, update, inline)]
16pub struct AggregateNumericSeries {
17 #[builder(custom(type = super::NumericSeries, convert = Box::new))]
18 #[serde(rename = "input")]
19 input: Box<super::NumericSeries>,
20 #[serde(rename = "function")]
21 function: super::NumericAggregationFunction,
22 #[builder(default, set(item(type = super::StringConstant)))]
23 #[serde(
24 rename = "groupByTags",
25 skip_serializing_if = "std::collections::BTreeSet::is_empty",
26 default
27 )]
28 group_by_tags: std::collections::BTreeSet<super::StringConstant>,
29 #[builder(default, into)]
30 #[serde(
31 rename = "aggregateByAllGroupings",
32 skip_serializing_if = "Option::is_none",
33 default
34 )]
35 aggregate_by_all_groupings: Option<bool>,
36 #[builder(
37 default,
38 custom(
39 type = impl
40 Into<Option<super::InterpolationConfiguration>>,
41 convert = |v|v.into().map(Box::new)
42 )
43 )]
44 #[serde(
45 rename = "interpolationConfiguration",
46 skip_serializing_if = "Option::is_none",
47 default
48 )]
49 interpolation_configuration: Option<Box<super::InterpolationConfiguration>>,
50}
51impl AggregateNumericSeries {
52 #[inline]
54 pub fn new(
55 input: super::NumericSeries,
56 function: super::NumericAggregationFunction,
57 ) -> Self {
58 Self::builder().input(input).function(function).build()
59 }
60 #[inline]
61 pub fn input(&self) -> &super::NumericSeries {
62 &*self.input
63 }
64 #[inline]
65 pub fn function(&self) -> &super::NumericAggregationFunction {
66 &self.function
67 }
68 #[inline]
73 pub fn group_by_tags(&self) -> &std::collections::BTreeSet<super::StringConstant> {
74 &self.group_by_tags
75 }
76 #[inline]
81 pub fn aggregate_by_all_groupings(&self) -> Option<bool> {
82 self.aggregate_by_all_groupings.as_ref().map(|o| *o)
83 }
84 #[inline]
87 pub fn interpolation_configuration(
88 &self,
89 ) -> Option<&super::InterpolationConfiguration> {
90 self.interpolation_configuration.as_ref().map(|o| &**o)
91 }
92}