nominal-api 0.634.0__py3-none-any.whl → 0.636.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nominal-api might be problematic. Click here for more details.

nominal_api/_impl.py CHANGED
@@ -33429,6 +33429,7 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
33429
33429
  _frequency: Optional["scout_compute_api_FrequencyDomain"] = None
33430
33430
  _histogram: Optional["scout_compute_api_Histogram"] = None
33431
33431
  _geo: Optional["scout_compute_api_SummarizeGeo"] = None
33432
+ _curve: Optional["scout_compute_api_CurveFit"] = None
33432
33433
 
33433
33434
  @builtins.classmethod
33434
33435
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -33440,7 +33441,8 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
33440
33441
  'cartesian3d': ConjureFieldDefinition('cartesian3d', scout_compute_api_SummarizeCartesian3d),
33441
33442
  'frequency': ConjureFieldDefinition('frequency', scout_compute_api_FrequencyDomain),
33442
33443
  'histogram': ConjureFieldDefinition('histogram', scout_compute_api_Histogram),
33443
- 'geo': ConjureFieldDefinition('geo', scout_compute_api_SummarizeGeo)
33444
+ 'geo': ConjureFieldDefinition('geo', scout_compute_api_SummarizeGeo),
33445
+ 'curve': ConjureFieldDefinition('curve', scout_compute_api_CurveFit)
33444
33446
  }
33445
33447
 
33446
33448
  def __init__(
@@ -33453,10 +33455,11 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
33453
33455
  frequency: Optional["scout_compute_api_FrequencyDomain"] = None,
33454
33456
  histogram: Optional["scout_compute_api_Histogram"] = None,
33455
33457
  geo: Optional["scout_compute_api_SummarizeGeo"] = None,
33458
+ curve: Optional["scout_compute_api_CurveFit"] = None,
33456
33459
  type_of_union: Optional[str] = None
33457
33460
  ) -> None:
33458
33461
  if type_of_union is None:
33459
- if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (histogram is not None) + (geo is not None) != 1:
33462
+ if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (histogram is not None) + (geo is not None) + (curve is not None) != 1:
33460
33463
  raise ValueError('a union must contain a single member')
33461
33464
 
33462
33465
  if ranges is not None:
@@ -33483,6 +33486,9 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
33483
33486
  if geo is not None:
33484
33487
  self._geo = geo
33485
33488
  self._type = 'geo'
33489
+ if curve is not None:
33490
+ self._curve = curve
33491
+ self._type = 'curve'
33486
33492
 
33487
33493
  elif type_of_union == 'ranges':
33488
33494
  if ranges is None:
@@ -33524,6 +33530,11 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
33524
33530
  raise ValueError('a union value must not be None')
33525
33531
  self._geo = geo
33526
33532
  self._type = 'geo'
33533
+ elif type_of_union == 'curve':
33534
+ if curve is None:
33535
+ raise ValueError('a union value must not be None')
33536
+ self._curve = curve
33537
+ self._type = 'curve'
33527
33538
 
33528
33539
  @builtins.property
33529
33540
  def ranges(self) -> Optional["scout_compute_api_SummarizeRanges"]:
@@ -33557,6 +33568,10 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
33557
33568
  def geo(self) -> Optional["scout_compute_api_SummarizeGeo"]:
33558
33569
  return self._geo
33559
33570
 
33571
+ @builtins.property
33572
+ def curve(self) -> Optional["scout_compute_api_CurveFit"]:
33573
+ return self._curve
33574
+
33560
33575
  def accept(self, visitor) -> Any:
33561
33576
  if not isinstance(visitor, scout_compute_api_ComputableNodeVisitor):
33562
33577
  raise ValueError('{} is not an instance of scout_compute_api_ComputableNodeVisitor'.format(visitor.__class__.__name__))
@@ -33576,6 +33591,8 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
33576
33591
  return visitor._histogram(self.histogram)
33577
33592
  if self._type == 'geo' and self.geo is not None:
33578
33593
  return visitor._geo(self.geo)
33594
+ if self._type == 'curve' and self.curve is not None:
33595
+ return visitor._curve(self.curve)
33579
33596
 
33580
33597
 
33581
33598
  scout_compute_api_ComputableNode.__name__ = "ComputableNode"
@@ -33617,6 +33634,10 @@ class scout_compute_api_ComputableNodeVisitor:
33617
33634
  def _geo(self, geo: "scout_compute_api_SummarizeGeo") -> Any:
33618
33635
  pass
33619
33636
 
33637
+ @abstractmethod
33638
+ def _curve(self, curve: "scout_compute_api_CurveFit") -> Any:
33639
+ pass
33640
+
33620
33641
 
33621
33642
  scout_compute_api_ComputableNodeVisitor.__name__ = "ComputableNodeVisitor"
33622
33643
  scout_compute_api_ComputableNodeVisitor.__qualname__ = "ComputableNodeVisitor"
@@ -33864,6 +33885,7 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
33864
33885
  _frequency_domain: Optional["scout_compute_api_FrequencyDomainPlot"] = None
33865
33886
  _numeric_histogram: Optional["scout_compute_api_NumericHistogramPlot"] = None
33866
33887
  _enum_histogram: Optional["scout_compute_api_EnumHistogramPlot"] = None
33888
+ _curve_fit: Optional["scout_compute_api_CurveFitResult"] = None
33867
33889
 
33868
33890
  @builtins.classmethod
33869
33891
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -33885,7 +33907,8 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
33885
33907
  'range_value': ConjureFieldDefinition('rangeValue', OptionalTypeWrapper[scout_compute_api_Range]),
33886
33908
  'frequency_domain': ConjureFieldDefinition('frequencyDomain', scout_compute_api_FrequencyDomainPlot),
33887
33909
  'numeric_histogram': ConjureFieldDefinition('numericHistogram', scout_compute_api_NumericHistogramPlot),
33888
- 'enum_histogram': ConjureFieldDefinition('enumHistogram', scout_compute_api_EnumHistogramPlot)
33910
+ 'enum_histogram': ConjureFieldDefinition('enumHistogram', scout_compute_api_EnumHistogramPlot),
33911
+ 'curve_fit': ConjureFieldDefinition('curveFit', scout_compute_api_CurveFitResult)
33889
33912
  }
33890
33913
 
33891
33914
  def __init__(
@@ -33908,10 +33931,11 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
33908
33931
  frequency_domain: Optional["scout_compute_api_FrequencyDomainPlot"] = None,
33909
33932
  numeric_histogram: Optional["scout_compute_api_NumericHistogramPlot"] = None,
33910
33933
  enum_histogram: Optional["scout_compute_api_EnumHistogramPlot"] = None,
33934
+ curve_fit: Optional["scout_compute_api_CurveFitResult"] = None,
33911
33935
  type_of_union: Optional[str] = None
33912
33936
  ) -> None:
33913
33937
  if type_of_union is None:
33914
- if (numeric is not None) + (bucketed_numeric is not None) + (range is not None) + (ranges_summary is not None) + (enum is not None) + (paged_log is not None) + (bucketed_enum is not None) + (cartesian is not None) + (bucketed_cartesian is not None) + (bucketed_cartesian3d is not None) + (bucketed_geo is not None) + (enum_point is not None) + (numeric_point is not None) + (log_point is not None) + (range_value is not None) + (frequency_domain is not None) + (numeric_histogram is not None) + (enum_histogram is not None) != 1:
33938
+ if (numeric is not None) + (bucketed_numeric is not None) + (range is not None) + (ranges_summary is not None) + (enum is not None) + (paged_log is not None) + (bucketed_enum is not None) + (cartesian is not None) + (bucketed_cartesian is not None) + (bucketed_cartesian3d is not None) + (bucketed_geo is not None) + (enum_point is not None) + (numeric_point is not None) + (log_point is not None) + (range_value is not None) + (frequency_domain is not None) + (numeric_histogram is not None) + (enum_histogram is not None) + (curve_fit is not None) != 1:
33915
33939
  raise ValueError('a union must contain a single member')
33916
33940
 
33917
33941
  if numeric is not None:
@@ -33968,6 +33992,9 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
33968
33992
  if enum_histogram is not None:
33969
33993
  self._enum_histogram = enum_histogram
33970
33994
  self._type = 'enumHistogram'
33995
+ if curve_fit is not None:
33996
+ self._curve_fit = curve_fit
33997
+ self._type = 'curveFit'
33971
33998
 
33972
33999
  elif type_of_union == 'numeric':
33973
34000
  if numeric is None:
@@ -34059,6 +34086,11 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
34059
34086
  raise ValueError('a union value must not be None')
34060
34087
  self._enum_histogram = enum_histogram
34061
34088
  self._type = 'enumHistogram'
34089
+ elif type_of_union == 'curveFit':
34090
+ if curve_fit is None:
34091
+ raise ValueError('a union value must not be None')
34092
+ self._curve_fit = curve_fit
34093
+ self._type = 'curveFit'
34062
34094
 
34063
34095
  @builtins.property
34064
34096
  def numeric(self) -> Optional["scout_compute_api_NumericPlot"]:
@@ -34132,6 +34164,10 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
34132
34164
  def enum_histogram(self) -> Optional["scout_compute_api_EnumHistogramPlot"]:
34133
34165
  return self._enum_histogram
34134
34166
 
34167
+ @builtins.property
34168
+ def curve_fit(self) -> Optional["scout_compute_api_CurveFitResult"]:
34169
+ return self._curve_fit
34170
+
34135
34171
  def accept(self, visitor) -> Any:
34136
34172
  if not isinstance(visitor, scout_compute_api_ComputeNodeResponseVisitor):
34137
34173
  raise ValueError('{} is not an instance of scout_compute_api_ComputeNodeResponseVisitor'.format(visitor.__class__.__name__))
@@ -34171,6 +34207,8 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
34171
34207
  return visitor._numeric_histogram(self.numeric_histogram)
34172
34208
  if self._type == 'enumHistogram' and self.enum_histogram is not None:
34173
34209
  return visitor._enum_histogram(self.enum_histogram)
34210
+ if self._type == 'curveFit' and self.curve_fit is not None:
34211
+ return visitor._curve_fit(self.curve_fit)
34174
34212
 
34175
34213
 
34176
34214
  scout_compute_api_ComputeNodeResponse.__name__ = "ComputeNodeResponse"
@@ -34252,6 +34290,10 @@ class scout_compute_api_ComputeNodeResponseVisitor:
34252
34290
  def _enum_histogram(self, enum_histogram: "scout_compute_api_EnumHistogramPlot") -> Any:
34253
34291
  pass
34254
34292
 
34293
+ @abstractmethod
34294
+ def _curve_fit(self, curve_fit: "scout_compute_api_CurveFitResult") -> Any:
34295
+ pass
34296
+
34255
34297
 
34256
34298
  scout_compute_api_ComputeNodeResponseVisitor.__name__ = "ComputeNodeResponseVisitor"
34257
34299
  scout_compute_api_ComputeNodeResponseVisitor.__qualname__ = "ComputeNodeResponseVisitor"
@@ -34850,6 +34892,408 @@ scout_compute_api_CumulativeSumSeries.__qualname__ = "CumulativeSumSeries"
34850
34892
  scout_compute_api_CumulativeSumSeries.__module__ = "nominal_api.scout_compute_api"
34851
34893
 
34852
34894
 
34895
+ class scout_compute_api_CurveFit(ConjureBeanType):
34896
+
34897
+ @builtins.classmethod
34898
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
34899
+ return {
34900
+ 'curve_fit_plot_type': ConjureFieldDefinition('curveFitPlotType', scout_compute_api_CurveFitPlotType),
34901
+ 'curve_fit_details': ConjureFieldDefinition('curveFitDetails', scout_compute_api_CurveFitDetails),
34902
+ 'curve_fit_options': ConjureFieldDefinition('curveFitOptions', scout_compute_api_CurveFitOptions)
34903
+ }
34904
+
34905
+ __slots__: List[str] = ['_curve_fit_plot_type', '_curve_fit_details', '_curve_fit_options']
34906
+
34907
+ def __init__(self, curve_fit_details: "scout_compute_api_CurveFitDetails", curve_fit_options: "scout_compute_api_CurveFitOptions", curve_fit_plot_type: "scout_compute_api_CurveFitPlotType") -> None:
34908
+ self._curve_fit_plot_type = curve_fit_plot_type
34909
+ self._curve_fit_details = curve_fit_details
34910
+ self._curve_fit_options = curve_fit_options
34911
+
34912
+ @builtins.property
34913
+ def curve_fit_plot_type(self) -> "scout_compute_api_CurveFitPlotType":
34914
+ return self._curve_fit_plot_type
34915
+
34916
+ @builtins.property
34917
+ def curve_fit_details(self) -> "scout_compute_api_CurveFitDetails":
34918
+ return self._curve_fit_details
34919
+
34920
+ @builtins.property
34921
+ def curve_fit_options(self) -> "scout_compute_api_CurveFitOptions":
34922
+ return self._curve_fit_options
34923
+
34924
+
34925
+ scout_compute_api_CurveFit.__name__ = "CurveFit"
34926
+ scout_compute_api_CurveFit.__qualname__ = "CurveFit"
34927
+ scout_compute_api_CurveFit.__module__ = "nominal_api.scout_compute_api"
34928
+
34929
+
34930
+ class scout_compute_api_CurveFitDetails(ConjureUnionType):
34931
+ _exponential: Optional["scout_compute_api_ExponentialCurve"] = None
34932
+ _logarithmic: Optional["scout_compute_api_LogarithmicCurve"] = None
34933
+ _polynomial: Optional["scout_compute_api_PolynomialCurve"] = None
34934
+ _power: Optional["scout_compute_api_PowerCurve"] = None
34935
+
34936
+ @builtins.classmethod
34937
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
34938
+ return {
34939
+ 'exponential': ConjureFieldDefinition('exponential', scout_compute_api_ExponentialCurve),
34940
+ 'logarithmic': ConjureFieldDefinition('logarithmic', scout_compute_api_LogarithmicCurve),
34941
+ 'polynomial': ConjureFieldDefinition('polynomial', scout_compute_api_PolynomialCurve),
34942
+ 'power': ConjureFieldDefinition('power', scout_compute_api_PowerCurve)
34943
+ }
34944
+
34945
+ def __init__(
34946
+ self,
34947
+ exponential: Optional["scout_compute_api_ExponentialCurve"] = None,
34948
+ logarithmic: Optional["scout_compute_api_LogarithmicCurve"] = None,
34949
+ polynomial: Optional["scout_compute_api_PolynomialCurve"] = None,
34950
+ power: Optional["scout_compute_api_PowerCurve"] = None,
34951
+ type_of_union: Optional[str] = None
34952
+ ) -> None:
34953
+ if type_of_union is None:
34954
+ if (exponential is not None) + (logarithmic is not None) + (polynomial is not None) + (power is not None) != 1:
34955
+ raise ValueError('a union must contain a single member')
34956
+
34957
+ if exponential is not None:
34958
+ self._exponential = exponential
34959
+ self._type = 'exponential'
34960
+ if logarithmic is not None:
34961
+ self._logarithmic = logarithmic
34962
+ self._type = 'logarithmic'
34963
+ if polynomial is not None:
34964
+ self._polynomial = polynomial
34965
+ self._type = 'polynomial'
34966
+ if power is not None:
34967
+ self._power = power
34968
+ self._type = 'power'
34969
+
34970
+ elif type_of_union == 'exponential':
34971
+ if exponential is None:
34972
+ raise ValueError('a union value must not be None')
34973
+ self._exponential = exponential
34974
+ self._type = 'exponential'
34975
+ elif type_of_union == 'logarithmic':
34976
+ if logarithmic is None:
34977
+ raise ValueError('a union value must not be None')
34978
+ self._logarithmic = logarithmic
34979
+ self._type = 'logarithmic'
34980
+ elif type_of_union == 'polynomial':
34981
+ if polynomial is None:
34982
+ raise ValueError('a union value must not be None')
34983
+ self._polynomial = polynomial
34984
+ self._type = 'polynomial'
34985
+ elif type_of_union == 'power':
34986
+ if power is None:
34987
+ raise ValueError('a union value must not be None')
34988
+ self._power = power
34989
+ self._type = 'power'
34990
+
34991
+ @builtins.property
34992
+ def exponential(self) -> Optional["scout_compute_api_ExponentialCurve"]:
34993
+ return self._exponential
34994
+
34995
+ @builtins.property
34996
+ def logarithmic(self) -> Optional["scout_compute_api_LogarithmicCurve"]:
34997
+ return self._logarithmic
34998
+
34999
+ @builtins.property
35000
+ def polynomial(self) -> Optional["scout_compute_api_PolynomialCurve"]:
35001
+ return self._polynomial
35002
+
35003
+ @builtins.property
35004
+ def power(self) -> Optional["scout_compute_api_PowerCurve"]:
35005
+ return self._power
35006
+
35007
+ def accept(self, visitor) -> Any:
35008
+ if not isinstance(visitor, scout_compute_api_CurveFitDetailsVisitor):
35009
+ raise ValueError('{} is not an instance of scout_compute_api_CurveFitDetailsVisitor'.format(visitor.__class__.__name__))
35010
+ if self._type == 'exponential' and self.exponential is not None:
35011
+ return visitor._exponential(self.exponential)
35012
+ if self._type == 'logarithmic' and self.logarithmic is not None:
35013
+ return visitor._logarithmic(self.logarithmic)
35014
+ if self._type == 'polynomial' and self.polynomial is not None:
35015
+ return visitor._polynomial(self.polynomial)
35016
+ if self._type == 'power' and self.power is not None:
35017
+ return visitor._power(self.power)
35018
+
35019
+
35020
+ scout_compute_api_CurveFitDetails.__name__ = "CurveFitDetails"
35021
+ scout_compute_api_CurveFitDetails.__qualname__ = "CurveFitDetails"
35022
+ scout_compute_api_CurveFitDetails.__module__ = "nominal_api.scout_compute_api"
35023
+
35024
+
35025
+ class scout_compute_api_CurveFitDetailsVisitor:
35026
+
35027
+ @abstractmethod
35028
+ def _exponential(self, exponential: "scout_compute_api_ExponentialCurve") -> Any:
35029
+ pass
35030
+
35031
+ @abstractmethod
35032
+ def _logarithmic(self, logarithmic: "scout_compute_api_LogarithmicCurve") -> Any:
35033
+ pass
35034
+
35035
+ @abstractmethod
35036
+ def _polynomial(self, polynomial: "scout_compute_api_PolynomialCurve") -> Any:
35037
+ pass
35038
+
35039
+ @abstractmethod
35040
+ def _power(self, power: "scout_compute_api_PowerCurve") -> Any:
35041
+ pass
35042
+
35043
+
35044
+ scout_compute_api_CurveFitDetailsVisitor.__name__ = "CurveFitDetailsVisitor"
35045
+ scout_compute_api_CurveFitDetailsVisitor.__qualname__ = "CurveFitDetailsVisitor"
35046
+ scout_compute_api_CurveFitDetailsVisitor.__module__ = "nominal_api.scout_compute_api"
35047
+
35048
+
35049
+ class scout_compute_api_CurveFitOptions(ConjureBeanType):
35050
+
35051
+ @builtins.classmethod
35052
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
35053
+ return {
35054
+ }
35055
+
35056
+ __slots__: List[str] = []
35057
+
35058
+
35059
+
35060
+ scout_compute_api_CurveFitOptions.__name__ = "CurveFitOptions"
35061
+ scout_compute_api_CurveFitOptions.__qualname__ = "CurveFitOptions"
35062
+ scout_compute_api_CurveFitOptions.__module__ = "nominal_api.scout_compute_api"
35063
+
35064
+
35065
+ class scout_compute_api_CurveFitPlotType(ConjureUnionType):
35066
+ _time_series: Optional["scout_compute_api_TimeSeriesCurveFit"] = None
35067
+ _scatter: Optional["scout_compute_api_ScatterCurveFit"] = None
35068
+
35069
+ @builtins.classmethod
35070
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
35071
+ return {
35072
+ 'time_series': ConjureFieldDefinition('timeSeries', scout_compute_api_TimeSeriesCurveFit),
35073
+ 'scatter': ConjureFieldDefinition('scatter', scout_compute_api_ScatterCurveFit)
35074
+ }
35075
+
35076
+ def __init__(
35077
+ self,
35078
+ time_series: Optional["scout_compute_api_TimeSeriesCurveFit"] = None,
35079
+ scatter: Optional["scout_compute_api_ScatterCurveFit"] = None,
35080
+ type_of_union: Optional[str] = None
35081
+ ) -> None:
35082
+ if type_of_union is None:
35083
+ if (time_series is not None) + (scatter is not None) != 1:
35084
+ raise ValueError('a union must contain a single member')
35085
+
35086
+ if time_series is not None:
35087
+ self._time_series = time_series
35088
+ self._type = 'timeSeries'
35089
+ if scatter is not None:
35090
+ self._scatter = scatter
35091
+ self._type = 'scatter'
35092
+
35093
+ elif type_of_union == 'timeSeries':
35094
+ if time_series is None:
35095
+ raise ValueError('a union value must not be None')
35096
+ self._time_series = time_series
35097
+ self._type = 'timeSeries'
35098
+ elif type_of_union == 'scatter':
35099
+ if scatter is None:
35100
+ raise ValueError('a union value must not be None')
35101
+ self._scatter = scatter
35102
+ self._type = 'scatter'
35103
+
35104
+ @builtins.property
35105
+ def time_series(self) -> Optional["scout_compute_api_TimeSeriesCurveFit"]:
35106
+ return self._time_series
35107
+
35108
+ @builtins.property
35109
+ def scatter(self) -> Optional["scout_compute_api_ScatterCurveFit"]:
35110
+ return self._scatter
35111
+
35112
+ def accept(self, visitor) -> Any:
35113
+ if not isinstance(visitor, scout_compute_api_CurveFitPlotTypeVisitor):
35114
+ raise ValueError('{} is not an instance of scout_compute_api_CurveFitPlotTypeVisitor'.format(visitor.__class__.__name__))
35115
+ if self._type == 'timeSeries' and self.time_series is not None:
35116
+ return visitor._time_series(self.time_series)
35117
+ if self._type == 'scatter' and self.scatter is not None:
35118
+ return visitor._scatter(self.scatter)
35119
+
35120
+
35121
+ scout_compute_api_CurveFitPlotType.__name__ = "CurveFitPlotType"
35122
+ scout_compute_api_CurveFitPlotType.__qualname__ = "CurveFitPlotType"
35123
+ scout_compute_api_CurveFitPlotType.__module__ = "nominal_api.scout_compute_api"
35124
+
35125
+
35126
+ class scout_compute_api_CurveFitPlotTypeVisitor:
35127
+
35128
+ @abstractmethod
35129
+ def _time_series(self, time_series: "scout_compute_api_TimeSeriesCurveFit") -> Any:
35130
+ pass
35131
+
35132
+ @abstractmethod
35133
+ def _scatter(self, scatter: "scout_compute_api_ScatterCurveFit") -> Any:
35134
+ pass
35135
+
35136
+
35137
+ scout_compute_api_CurveFitPlotTypeVisitor.__name__ = "CurveFitPlotTypeVisitor"
35138
+ scout_compute_api_CurveFitPlotTypeVisitor.__qualname__ = "CurveFitPlotTypeVisitor"
35139
+ scout_compute_api_CurveFitPlotTypeVisitor.__module__ = "nominal_api.scout_compute_api"
35140
+
35141
+
35142
+ class scout_compute_api_CurveFitResult(ConjureBeanType):
35143
+
35144
+ @builtins.classmethod
35145
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
35146
+ return {
35147
+ 'r2': ConjureFieldDefinition('r2', float),
35148
+ 'curve_result_details': ConjureFieldDefinition('curveResultDetails', scout_compute_api_CurveResultDetails)
35149
+ }
35150
+
35151
+ __slots__: List[str] = ['_r2', '_curve_result_details']
35152
+
35153
+ def __init__(self, curve_result_details: "scout_compute_api_CurveResultDetails", r2: float) -> None:
35154
+ self._r2 = r2
35155
+ self._curve_result_details = curve_result_details
35156
+
35157
+ @builtins.property
35158
+ def r2(self) -> float:
35159
+ """
35160
+ R^2 (coefficient of determination) for the fit curve, a normalized measure of how well the curve fits the data.
35161
+ Usually ranges from 0 to 1, with higher indicating better fit (points closer to fit line).
35162
+ """
35163
+ return self._r2
35164
+
35165
+ @builtins.property
35166
+ def curve_result_details(self) -> "scout_compute_api_CurveResultDetails":
35167
+ """
35168
+ Description of the fit curve.
35169
+ """
35170
+ return self._curve_result_details
35171
+
35172
+
35173
+ scout_compute_api_CurveFitResult.__name__ = "CurveFitResult"
35174
+ scout_compute_api_CurveFitResult.__qualname__ = "CurveFitResult"
35175
+ scout_compute_api_CurveFitResult.__module__ = "nominal_api.scout_compute_api"
35176
+
35177
+
35178
+ class scout_compute_api_CurveResultDetails(ConjureUnionType):
35179
+ _exponential: Optional["scout_compute_api_ExponentialResultDetails"] = None
35180
+ _logarithmic: Optional["scout_compute_api_LogarithmicResultDetails"] = None
35181
+ _polynomial: Optional["scout_compute_api_PolynomialResultDetails"] = None
35182
+ _power: Optional["scout_compute_api_PowerResultDetails"] = None
35183
+
35184
+ @builtins.classmethod
35185
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
35186
+ return {
35187
+ 'exponential': ConjureFieldDefinition('exponential', scout_compute_api_ExponentialResultDetails),
35188
+ 'logarithmic': ConjureFieldDefinition('logarithmic', scout_compute_api_LogarithmicResultDetails),
35189
+ 'polynomial': ConjureFieldDefinition('polynomial', scout_compute_api_PolynomialResultDetails),
35190
+ 'power': ConjureFieldDefinition('power', scout_compute_api_PowerResultDetails)
35191
+ }
35192
+
35193
+ def __init__(
35194
+ self,
35195
+ exponential: Optional["scout_compute_api_ExponentialResultDetails"] = None,
35196
+ logarithmic: Optional["scout_compute_api_LogarithmicResultDetails"] = None,
35197
+ polynomial: Optional["scout_compute_api_PolynomialResultDetails"] = None,
35198
+ power: Optional["scout_compute_api_PowerResultDetails"] = None,
35199
+ type_of_union: Optional[str] = None
35200
+ ) -> None:
35201
+ if type_of_union is None:
35202
+ if (exponential is not None) + (logarithmic is not None) + (polynomial is not None) + (power is not None) != 1:
35203
+ raise ValueError('a union must contain a single member')
35204
+
35205
+ if exponential is not None:
35206
+ self._exponential = exponential
35207
+ self._type = 'exponential'
35208
+ if logarithmic is not None:
35209
+ self._logarithmic = logarithmic
35210
+ self._type = 'logarithmic'
35211
+ if polynomial is not None:
35212
+ self._polynomial = polynomial
35213
+ self._type = 'polynomial'
35214
+ if power is not None:
35215
+ self._power = power
35216
+ self._type = 'power'
35217
+
35218
+ elif type_of_union == 'exponential':
35219
+ if exponential is None:
35220
+ raise ValueError('a union value must not be None')
35221
+ self._exponential = exponential
35222
+ self._type = 'exponential'
35223
+ elif type_of_union == 'logarithmic':
35224
+ if logarithmic is None:
35225
+ raise ValueError('a union value must not be None')
35226
+ self._logarithmic = logarithmic
35227
+ self._type = 'logarithmic'
35228
+ elif type_of_union == 'polynomial':
35229
+ if polynomial is None:
35230
+ raise ValueError('a union value must not be None')
35231
+ self._polynomial = polynomial
35232
+ self._type = 'polynomial'
35233
+ elif type_of_union == 'power':
35234
+ if power is None:
35235
+ raise ValueError('a union value must not be None')
35236
+ self._power = power
35237
+ self._type = 'power'
35238
+
35239
+ @builtins.property
35240
+ def exponential(self) -> Optional["scout_compute_api_ExponentialResultDetails"]:
35241
+ return self._exponential
35242
+
35243
+ @builtins.property
35244
+ def logarithmic(self) -> Optional["scout_compute_api_LogarithmicResultDetails"]:
35245
+ return self._logarithmic
35246
+
35247
+ @builtins.property
35248
+ def polynomial(self) -> Optional["scout_compute_api_PolynomialResultDetails"]:
35249
+ return self._polynomial
35250
+
35251
+ @builtins.property
35252
+ def power(self) -> Optional["scout_compute_api_PowerResultDetails"]:
35253
+ return self._power
35254
+
35255
+ def accept(self, visitor) -> Any:
35256
+ if not isinstance(visitor, scout_compute_api_CurveResultDetailsVisitor):
35257
+ raise ValueError('{} is not an instance of scout_compute_api_CurveResultDetailsVisitor'.format(visitor.__class__.__name__))
35258
+ if self._type == 'exponential' and self.exponential is not None:
35259
+ return visitor._exponential(self.exponential)
35260
+ if self._type == 'logarithmic' and self.logarithmic is not None:
35261
+ return visitor._logarithmic(self.logarithmic)
35262
+ if self._type == 'polynomial' and self.polynomial is not None:
35263
+ return visitor._polynomial(self.polynomial)
35264
+ if self._type == 'power' and self.power is not None:
35265
+ return visitor._power(self.power)
35266
+
35267
+
35268
+ scout_compute_api_CurveResultDetails.__name__ = "CurveResultDetails"
35269
+ scout_compute_api_CurveResultDetails.__qualname__ = "CurveResultDetails"
35270
+ scout_compute_api_CurveResultDetails.__module__ = "nominal_api.scout_compute_api"
35271
+
35272
+
35273
+ class scout_compute_api_CurveResultDetailsVisitor:
35274
+
35275
+ @abstractmethod
35276
+ def _exponential(self, exponential: "scout_compute_api_ExponentialResultDetails") -> Any:
35277
+ pass
35278
+
35279
+ @abstractmethod
35280
+ def _logarithmic(self, logarithmic: "scout_compute_api_LogarithmicResultDetails") -> Any:
35281
+ pass
35282
+
35283
+ @abstractmethod
35284
+ def _polynomial(self, polynomial: "scout_compute_api_PolynomialResultDetails") -> Any:
35285
+ pass
35286
+
35287
+ @abstractmethod
35288
+ def _power(self, power: "scout_compute_api_PowerResultDetails") -> Any:
35289
+ pass
35290
+
35291
+
35292
+ scout_compute_api_CurveResultDetailsVisitor.__name__ = "CurveResultDetailsVisitor"
35293
+ scout_compute_api_CurveResultDetailsVisitor.__qualname__ = "CurveResultDetailsVisitor"
35294
+ scout_compute_api_CurveResultDetailsVisitor.__module__ = "nominal_api.scout_compute_api"
35295
+
35296
+
34853
35297
  class scout_compute_api_DataSourceChannel(ConjureBeanType):
34854
35298
 
34855
35299
  @builtins.classmethod
@@ -35609,6 +36053,7 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
35609
36053
  _time_shift: Optional["scout_compute_api_EnumTimeShiftSeries"] = None
35610
36054
  _union: Optional["scout_compute_api_EnumUnionSeries"] = None
35611
36055
  _filter_transformation: Optional["scout_compute_api_EnumFilterTransformationSeries"] = None
36056
+ _value_map: Optional["scout_compute_api_ValueMapSeries"] = None
35612
36057
 
35613
36058
  @builtins.classmethod
35614
36059
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -35621,7 +36066,8 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
35621
36066
  'time_range_filter': ConjureFieldDefinition('timeRangeFilter', scout_compute_api_EnumTimeRangeFilterSeries),
35622
36067
  'time_shift': ConjureFieldDefinition('timeShift', scout_compute_api_EnumTimeShiftSeries),
35623
36068
  'union': ConjureFieldDefinition('union', scout_compute_api_EnumUnionSeries),
35624
- 'filter_transformation': ConjureFieldDefinition('filterTransformation', scout_compute_api_EnumFilterTransformationSeries)
36069
+ 'filter_transformation': ConjureFieldDefinition('filterTransformation', scout_compute_api_EnumFilterTransformationSeries),
36070
+ 'value_map': ConjureFieldDefinition('valueMap', scout_compute_api_ValueMapSeries)
35625
36071
  }
35626
36072
 
35627
36073
  def __init__(
@@ -35635,10 +36081,11 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
35635
36081
  time_shift: Optional["scout_compute_api_EnumTimeShiftSeries"] = None,
35636
36082
  union: Optional["scout_compute_api_EnumUnionSeries"] = None,
35637
36083
  filter_transformation: Optional["scout_compute_api_EnumFilterTransformationSeries"] = None,
36084
+ value_map: Optional["scout_compute_api_ValueMapSeries"] = None,
35638
36085
  type_of_union: Optional[str] = None
35639
36086
  ) -> None:
35640
36087
  if type_of_union is None:
35641
- if (aggregate is not None) + (function is not None) + (raw is not None) + (channel is not None) + (resample is not None) + (time_range_filter is not None) + (time_shift is not None) + (union is not None) + (filter_transformation is not None) != 1:
36088
+ if (aggregate is not None) + (function is not None) + (raw is not None) + (channel is not None) + (resample is not None) + (time_range_filter is not None) + (time_shift is not None) + (union is not None) + (filter_transformation is not None) + (value_map is not None) != 1:
35642
36089
  raise ValueError('a union must contain a single member')
35643
36090
 
35644
36091
  if aggregate is not None:
@@ -35668,6 +36115,9 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
35668
36115
  if filter_transformation is not None:
35669
36116
  self._filter_transformation = filter_transformation
35670
36117
  self._type = 'filterTransformation'
36118
+ if value_map is not None:
36119
+ self._value_map = value_map
36120
+ self._type = 'valueMap'
35671
36121
 
35672
36122
  elif type_of_union == 'aggregate':
35673
36123
  if aggregate is None:
@@ -35714,6 +36164,11 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
35714
36164
  raise ValueError('a union value must not be None')
35715
36165
  self._filter_transformation = filter_transformation
35716
36166
  self._type = 'filterTransformation'
36167
+ elif type_of_union == 'valueMap':
36168
+ if value_map is None:
36169
+ raise ValueError('a union value must not be None')
36170
+ self._value_map = value_map
36171
+ self._type = 'valueMap'
35717
36172
 
35718
36173
  @builtins.property
35719
36174
  def aggregate(self) -> Optional["scout_compute_api_AggregateEnumSeries"]:
@@ -35751,6 +36206,10 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
35751
36206
  def filter_transformation(self) -> Optional["scout_compute_api_EnumFilterTransformationSeries"]:
35752
36207
  return self._filter_transformation
35753
36208
 
36209
+ @builtins.property
36210
+ def value_map(self) -> Optional["scout_compute_api_ValueMapSeries"]:
36211
+ return self._value_map
36212
+
35754
36213
  def accept(self, visitor) -> Any:
35755
36214
  if not isinstance(visitor, scout_compute_api_EnumSeriesVisitor):
35756
36215
  raise ValueError('{} is not an instance of scout_compute_api_EnumSeriesVisitor'.format(visitor.__class__.__name__))
@@ -35772,6 +36231,8 @@ class scout_compute_api_EnumSeries(ConjureUnionType):
35772
36231
  return visitor._union(self.union)
35773
36232
  if self._type == 'filterTransformation' and self.filter_transformation is not None:
35774
36233
  return visitor._filter_transformation(self.filter_transformation)
36234
+ if self._type == 'valueMap' and self.value_map is not None:
36235
+ return visitor._value_map(self.value_map)
35775
36236
 
35776
36237
 
35777
36238
  scout_compute_api_EnumSeries.__name__ = "EnumSeries"
@@ -35817,6 +36278,10 @@ class scout_compute_api_EnumSeriesVisitor:
35817
36278
  def _filter_transformation(self, filter_transformation: "scout_compute_api_EnumFilterTransformationSeries") -> Any:
35818
36279
  pass
35819
36280
 
36281
+ @abstractmethod
36282
+ def _value_map(self, value_map: "scout_compute_api_ValueMapSeries") -> Any:
36283
+ pass
36284
+
35820
36285
 
35821
36286
  scout_compute_api_EnumSeriesVisitor.__name__ = "EnumSeriesVisitor"
35822
36287
  scout_compute_api_EnumSeriesVisitor.__qualname__ = "EnumSeriesVisitor"
@@ -36100,6 +36565,64 @@ scout_compute_api_ExcludeNegativeValues.__qualname__ = "ExcludeNegativeValues"
36100
36565
  scout_compute_api_ExcludeNegativeValues.__module__ = "nominal_api.scout_compute_api"
36101
36566
 
36102
36567
 
36568
+ class scout_compute_api_ExponentialCurve(ConjureBeanType):
36569
+
36570
+ @builtins.classmethod
36571
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
36572
+ return {
36573
+ 'intercept': ConjureFieldDefinition('intercept', OptionalTypeWrapper[scout_compute_api_DoubleConstant])
36574
+ }
36575
+
36576
+ __slots__: List[str] = ['_intercept']
36577
+
36578
+ def __init__(self, intercept: Optional["scout_compute_api_DoubleConstant"] = None) -> None:
36579
+ self._intercept = intercept
36580
+
36581
+ @builtins.property
36582
+ def intercept(self) -> Optional["scout_compute_api_DoubleConstant"]:
36583
+ """
36584
+ The y-value at the point x (or t) = 0. If omitted, the y-intercept will also be fit to the data.
36585
+ """
36586
+ return self._intercept
36587
+
36588
+
36589
+ scout_compute_api_ExponentialCurve.__name__ = "ExponentialCurve"
36590
+ scout_compute_api_ExponentialCurve.__qualname__ = "ExponentialCurve"
36591
+ scout_compute_api_ExponentialCurve.__module__ = "nominal_api.scout_compute_api"
36592
+
36593
+
36594
+ class scout_compute_api_ExponentialResultDetails(ConjureBeanType):
36595
+ """
36596
+ y = a * e^(b * x)
36597
+ """
36598
+
36599
+ @builtins.classmethod
36600
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
36601
+ return {
36602
+ 'a': ConjureFieldDefinition('a', float),
36603
+ 'b': ConjureFieldDefinition('b', float)
36604
+ }
36605
+
36606
+ __slots__: List[str] = ['_a', '_b']
36607
+
36608
+ def __init__(self, a: float, b: float) -> None:
36609
+ self._a = a
36610
+ self._b = b
36611
+
36612
+ @builtins.property
36613
+ def a(self) -> float:
36614
+ return self._a
36615
+
36616
+ @builtins.property
36617
+ def b(self) -> float:
36618
+ return self._b
36619
+
36620
+
36621
+ scout_compute_api_ExponentialResultDetails.__name__ = "ExponentialResultDetails"
36622
+ scout_compute_api_ExponentialResultDetails.__qualname__ = "ExponentialResultDetails"
36623
+ scout_compute_api_ExponentialResultDetails.__module__ = "nominal_api.scout_compute_api"
36624
+
36625
+
36103
36626
  class scout_compute_api_Fft(ConjureBeanType):
36104
36627
  """
36105
36628
  Returns the single sided amplitude spectrum of the input series.
@@ -37545,6 +38068,54 @@ scout_compute_api_LogValue.__qualname__ = "LogValue"
37545
38068
  scout_compute_api_LogValue.__module__ = "nominal_api.scout_compute_api"
37546
38069
 
37547
38070
 
38071
+ class scout_compute_api_LogarithmicCurve(ConjureBeanType):
38072
+
38073
+ @builtins.classmethod
38074
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
38075
+ return {
38076
+ }
38077
+
38078
+ __slots__: List[str] = []
38079
+
38080
+
38081
+
38082
+ scout_compute_api_LogarithmicCurve.__name__ = "LogarithmicCurve"
38083
+ scout_compute_api_LogarithmicCurve.__qualname__ = "LogarithmicCurve"
38084
+ scout_compute_api_LogarithmicCurve.__module__ = "nominal_api.scout_compute_api"
38085
+
38086
+
38087
+ class scout_compute_api_LogarithmicResultDetails(ConjureBeanType):
38088
+ """
38089
+ y = a * ln(x) + b
38090
+ """
38091
+
38092
+ @builtins.classmethod
38093
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
38094
+ return {
38095
+ 'a': ConjureFieldDefinition('a', float),
38096
+ 'b': ConjureFieldDefinition('b', float)
38097
+ }
38098
+
38099
+ __slots__: List[str] = ['_a', '_b']
38100
+
38101
+ def __init__(self, a: float, b: float) -> None:
38102
+ self._a = a
38103
+ self._b = b
38104
+
38105
+ @builtins.property
38106
+ def a(self) -> float:
38107
+ return self._a
38108
+
38109
+ @builtins.property
38110
+ def b(self) -> float:
38111
+ return self._b
38112
+
38113
+
38114
+ scout_compute_api_LogarithmicResultDetails.__name__ = "LogarithmicResultDetails"
38115
+ scout_compute_api_LogarithmicResultDetails.__qualname__ = "LogarithmicResultDetails"
38116
+ scout_compute_api_LogarithmicResultDetails.__module__ = "nominal_api.scout_compute_api"
38117
+
38118
+
37548
38119
  class scout_compute_api_LowPassConfiguration(ConjureBeanType):
37549
38120
 
37550
38121
  @builtins.classmethod
@@ -39973,6 +40544,115 @@ scout_compute_api_Point3d.__qualname__ = "Point3d"
39973
40544
  scout_compute_api_Point3d.__module__ = "nominal_api.scout_compute_api"
39974
40545
 
39975
40546
 
40547
+ class scout_compute_api_PolynomialCurve(ConjureBeanType):
40548
+
40549
+ @builtins.classmethod
40550
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40551
+ return {
40552
+ 'degree': ConjureFieldDefinition('degree', scout_compute_api_IntegerConstant),
40553
+ 'intercept': ConjureFieldDefinition('intercept', OptionalTypeWrapper[scout_compute_api_DoubleConstant])
40554
+ }
40555
+
40556
+ __slots__: List[str] = ['_degree', '_intercept']
40557
+
40558
+ def __init__(self, degree: "scout_compute_api_IntegerConstant", intercept: Optional["scout_compute_api_DoubleConstant"] = None) -> None:
40559
+ self._degree = degree
40560
+ self._intercept = intercept
40561
+
40562
+ @builtins.property
40563
+ def degree(self) -> "scout_compute_api_IntegerConstant":
40564
+ """
40565
+ The highest allowable degree of the fit polynomial.
40566
+ """
40567
+ return self._degree
40568
+
40569
+ @builtins.property
40570
+ def intercept(self) -> Optional["scout_compute_api_DoubleConstant"]:
40571
+ """
40572
+ The y-value at the point x (or t) = 0. If omitted, the y-intercept will also be fit to the data.
40573
+ """
40574
+ return self._intercept
40575
+
40576
+
40577
+ scout_compute_api_PolynomialCurve.__name__ = "PolynomialCurve"
40578
+ scout_compute_api_PolynomialCurve.__qualname__ = "PolynomialCurve"
40579
+ scout_compute_api_PolynomialCurve.__module__ = "nominal_api.scout_compute_api"
40580
+
40581
+
40582
+ class scout_compute_api_PolynomialResultDetails(ConjureBeanType):
40583
+ """
40584
+ y = sum( a_i * x^i ) for i in 0...len(a)
40585
+ """
40586
+
40587
+ @builtins.classmethod
40588
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40589
+ return {
40590
+ 'a': ConjureFieldDefinition('a', List[float])
40591
+ }
40592
+
40593
+ __slots__: List[str] = ['_a']
40594
+
40595
+ def __init__(self, a: List[float]) -> None:
40596
+ self._a = a
40597
+
40598
+ @builtins.property
40599
+ def a(self) -> List[float]:
40600
+ return self._a
40601
+
40602
+
40603
+ scout_compute_api_PolynomialResultDetails.__name__ = "PolynomialResultDetails"
40604
+ scout_compute_api_PolynomialResultDetails.__qualname__ = "PolynomialResultDetails"
40605
+ scout_compute_api_PolynomialResultDetails.__module__ = "nominal_api.scout_compute_api"
40606
+
40607
+
40608
+ class scout_compute_api_PowerCurve(ConjureBeanType):
40609
+
40610
+ @builtins.classmethod
40611
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40612
+ return {
40613
+ }
40614
+
40615
+ __slots__: List[str] = []
40616
+
40617
+
40618
+
40619
+ scout_compute_api_PowerCurve.__name__ = "PowerCurve"
40620
+ scout_compute_api_PowerCurve.__qualname__ = "PowerCurve"
40621
+ scout_compute_api_PowerCurve.__module__ = "nominal_api.scout_compute_api"
40622
+
40623
+
40624
+ class scout_compute_api_PowerResultDetails(ConjureBeanType):
40625
+ """
40626
+ y = a * x^b
40627
+ """
40628
+
40629
+ @builtins.classmethod
40630
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40631
+ return {
40632
+ 'a': ConjureFieldDefinition('a', float),
40633
+ 'b': ConjureFieldDefinition('b', float)
40634
+ }
40635
+
40636
+ __slots__: List[str] = ['_a', '_b']
40637
+
40638
+ def __init__(self, a: float, b: float) -> None:
40639
+ self._a = a
40640
+ self._b = b
40641
+
40642
+ @builtins.property
40643
+ def a(self) -> float:
40644
+ return self._a
40645
+
40646
+ @builtins.property
40647
+ def b(self) -> float:
40648
+ return self._b
40649
+
40650
+
40651
+ scout_compute_api_PowerResultDetails.__name__ = "PowerResultDetails"
40652
+ scout_compute_api_PowerResultDetails.__qualname__ = "PowerResultDetails"
40653
+ scout_compute_api_PowerResultDetails.__module__ = "nominal_api.scout_compute_api"
40654
+
40655
+
39976
40656
  class scout_compute_api_ProductSeries(ConjureBeanType):
39977
40657
  """
39978
40658
  For every timestamp specified in the input series, outputs a value that is the product for that timestamp
@@ -40217,18 +40897,62 @@ class scout_compute_api_RangeAggregationOperationVisitor:
40217
40897
  def _max(self, max: "scout_compute_api_Maximum") -> Any:
40218
40898
  pass
40219
40899
 
40220
- @abstractmethod
40221
- def _standard_deviation(self, standard_deviation: "scout_compute_api_StandardDeviation") -> Any:
40222
- pass
40900
+ @abstractmethod
40901
+ def _standard_deviation(self, standard_deviation: "scout_compute_api_StandardDeviation") -> Any:
40902
+ pass
40903
+
40904
+ @abstractmethod
40905
+ def _all(self, all: "api_Empty") -> Any:
40906
+ pass
40907
+
40908
+
40909
+ scout_compute_api_RangeAggregationOperationVisitor.__name__ = "RangeAggregationOperationVisitor"
40910
+ scout_compute_api_RangeAggregationOperationVisitor.__qualname__ = "RangeAggregationOperationVisitor"
40911
+ scout_compute_api_RangeAggregationOperationVisitor.__module__ = "nominal_api.scout_compute_api"
40912
+
40913
+
40914
+ class scout_compute_api_RangeMap(ConjureBeanType):
40915
+
40916
+ @builtins.classmethod
40917
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40918
+ return {
40919
+ 'start': ConjureFieldDefinition('start', OptionalTypeWrapper[scout_compute_api_DoubleConstant]),
40920
+ 'end': ConjureFieldDefinition('end', OptionalTypeWrapper[scout_compute_api_DoubleConstant]),
40921
+ 'output': ConjureFieldDefinition('output', scout_compute_api_StringConstant)
40922
+ }
40923
+
40924
+ __slots__: List[str] = ['_start', '_end', '_output']
40925
+
40926
+ def __init__(self, output: "scout_compute_api_StringConstant", end: Optional["scout_compute_api_DoubleConstant"] = None, start: Optional["scout_compute_api_DoubleConstant"] = None) -> None:
40927
+ self._start = start
40928
+ self._end = end
40929
+ self._output = output
40930
+
40931
+ @builtins.property
40932
+ def start(self) -> Optional["scout_compute_api_DoubleConstant"]:
40933
+ """
40934
+ Inclusive start value. If not specified, the start is the prior range's end value, or negative infinity.
40935
+ """
40936
+ return self._start
40937
+
40938
+ @builtins.property
40939
+ def end(self) -> Optional["scout_compute_api_DoubleConstant"]:
40940
+ """
40941
+ Exclusive end value. If not specified, the end value is the next range's start value, or positive infinity.
40942
+ """
40943
+ return self._end
40223
40944
 
40224
- @abstractmethod
40225
- def _all(self, all: "api_Empty") -> Any:
40226
- pass
40945
+ @builtins.property
40946
+ def output(self) -> "scout_compute_api_StringConstant":
40947
+ """
40948
+ The value to map to if the input value is within the range.
40949
+ """
40950
+ return self._output
40227
40951
 
40228
40952
 
40229
- scout_compute_api_RangeAggregationOperationVisitor.__name__ = "RangeAggregationOperationVisitor"
40230
- scout_compute_api_RangeAggregationOperationVisitor.__qualname__ = "RangeAggregationOperationVisitor"
40231
- scout_compute_api_RangeAggregationOperationVisitor.__module__ = "nominal_api.scout_compute_api"
40953
+ scout_compute_api_RangeMap.__name__ = "RangeMap"
40954
+ scout_compute_api_RangeMap.__qualname__ = "RangeMap"
40955
+ scout_compute_api_RangeMap.__module__ = "nominal_api.scout_compute_api"
40232
40956
 
40233
40957
 
40234
40958
  class scout_compute_api_RangeSeries(ConjureUnionType):
@@ -41272,6 +41996,10 @@ scout_compute_api_ScaleSeries.__module__ = "nominal_api.scout_compute_api"
41272
41996
 
41273
41997
 
41274
41998
  class scout_compute_api_Scatter(ConjureBeanType):
41999
+ """
42000
+ A scatter plot comprised of the values from one input series on the x-axis
42001
+ and values from another input series on the y-axis, for all points within a requested time range.
42002
+ """
41275
42003
 
41276
42004
  @builtins.classmethod
41277
42005
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -41341,6 +42069,98 @@ scout_compute_api_Scatter3d.__qualname__ = "Scatter3d"
41341
42069
  scout_compute_api_Scatter3d.__module__ = "nominal_api.scout_compute_api"
41342
42070
 
41343
42071
 
42072
+ class scout_compute_api_ScatterCurveFit(ConjureBeanType):
42073
+ """
42074
+ Fits a curve to the scatter between two series.
42075
+ """
42076
+
42077
+ @builtins.classmethod
42078
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
42079
+ return {
42080
+ 'scatter': ConjureFieldDefinition('scatter', scout_compute_api_Scatter),
42081
+ 'options': ConjureFieldDefinition('options', scout_compute_api_ScatterFitOptions)
42082
+ }
42083
+
42084
+ __slots__: List[str] = ['_scatter', '_options']
42085
+
42086
+ def __init__(self, options: "scout_compute_api_ScatterFitOptions", scatter: "scout_compute_api_Scatter") -> None:
42087
+ self._scatter = scatter
42088
+ self._options = options
42089
+
42090
+ @builtins.property
42091
+ def scatter(self) -> "scout_compute_api_Scatter":
42092
+ """
42093
+ The x and y series to fit to.
42094
+ """
42095
+ return self._scatter
42096
+
42097
+ @builtins.property
42098
+ def options(self) -> "scout_compute_api_ScatterFitOptions":
42099
+ return self._options
42100
+
42101
+
42102
+ scout_compute_api_ScatterCurveFit.__name__ = "ScatterCurveFit"
42103
+ scout_compute_api_ScatterCurveFit.__qualname__ = "ScatterCurveFit"
42104
+ scout_compute_api_ScatterCurveFit.__module__ = "nominal_api.scout_compute_api"
42105
+
42106
+
42107
+ class scout_compute_api_ScatterFitOptions(ConjureBeanType):
42108
+
42109
+ @builtins.classmethod
42110
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
42111
+ return {
42112
+ 'min_x': ConjureFieldDefinition('minX', OptionalTypeWrapper[scout_compute_api_DoubleConstant]),
42113
+ 'max_x': ConjureFieldDefinition('maxX', OptionalTypeWrapper[scout_compute_api_DoubleConstant]),
42114
+ 'min_y': ConjureFieldDefinition('minY', OptionalTypeWrapper[scout_compute_api_DoubleConstant]),
42115
+ 'max_y': ConjureFieldDefinition('maxY', OptionalTypeWrapper[scout_compute_api_DoubleConstant])
42116
+ }
42117
+
42118
+ __slots__: List[str] = ['_min_x', '_max_x', '_min_y', '_max_y']
42119
+
42120
+ def __init__(self, max_x: Optional["scout_compute_api_DoubleConstant"] = None, max_y: Optional["scout_compute_api_DoubleConstant"] = None, min_x: Optional["scout_compute_api_DoubleConstant"] = None, min_y: Optional["scout_compute_api_DoubleConstant"] = None) -> None:
42121
+ self._min_x = min_x
42122
+ self._max_x = max_x
42123
+ self._min_y = min_y
42124
+ self._max_y = max_y
42125
+
42126
+ @builtins.property
42127
+ def min_x(self) -> Optional["scout_compute_api_DoubleConstant"]:
42128
+ """
42129
+ Inclusive lower bound on the x values to fit to. If omitted, does not set a bound
42130
+ (equivalent to setting this to the minimum x value among all points in the time range).
42131
+ """
42132
+ return self._min_x
42133
+
42134
+ @builtins.property
42135
+ def max_x(self) -> Optional["scout_compute_api_DoubleConstant"]:
42136
+ """
42137
+ Inclusive upper bound on the x values to fit to. If omitted, does not set a bound
42138
+ (equivalent to setting this to the maximum x value among all points in the time range).
42139
+ """
42140
+ return self._max_x
42141
+
42142
+ @builtins.property
42143
+ def min_y(self) -> Optional["scout_compute_api_DoubleConstant"]:
42144
+ """
42145
+ Inclusive lower bound on the y values to fit to. If omitted, does not set a bound
42146
+ (equivalent to setting this to the minimum y value among all points in the time range).
42147
+ """
42148
+ return self._min_y
42149
+
42150
+ @builtins.property
42151
+ def max_y(self) -> Optional["scout_compute_api_DoubleConstant"]:
42152
+ """
42153
+ Inclusive upper bound on the y values to fit to. If omitted, does not set a bound
42154
+ (equivalent to setting this to the maximum y value among all points in the time range).
42155
+ """
42156
+ return self._max_y
42157
+
42158
+
42159
+ scout_compute_api_ScatterFitOptions.__name__ = "ScatterFitOptions"
42160
+ scout_compute_api_ScatterFitOptions.__qualname__ = "ScatterFitOptions"
42161
+ scout_compute_api_ScatterFitOptions.__module__ = "nominal_api.scout_compute_api"
42162
+
42163
+
41344
42164
  class scout_compute_api_ScatterSummarizationStrategy(ConjureUnionType):
41345
42165
  _spatial: Optional["scout_compute_api_SpatialDecimateStrategy"] = None
41346
42166
 
@@ -42810,6 +43630,68 @@ scout_compute_api_TimeDifferenceSeries.__qualname__ = "TimeDifferenceSeries"
42810
43630
  scout_compute_api_TimeDifferenceSeries.__module__ = "nominal_api.scout_compute_api"
42811
43631
 
42812
43632
 
43633
+ class scout_compute_api_TimeSeriesCurveFit(ConjureBeanType):
43634
+ """
43635
+ Fits a curve to a series vs its timestamps.
43636
+ """
43637
+
43638
+ @builtins.classmethod
43639
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
43640
+ return {
43641
+ 'series': ConjureFieldDefinition('series', scout_compute_api_NumericSeries),
43642
+ 'options': ConjureFieldDefinition('options', scout_compute_api_TimeSeriesFitOptions)
43643
+ }
43644
+
43645
+ __slots__: List[str] = ['_series', '_options']
43646
+
43647
+ def __init__(self, options: "scout_compute_api_TimeSeriesFitOptions", series: "scout_compute_api_NumericSeries") -> None:
43648
+ self._series = series
43649
+ self._options = options
43650
+
43651
+ @builtins.property
43652
+ def series(self) -> "scout_compute_api_NumericSeries":
43653
+ """
43654
+ The series to fit. Timestamps will be used as x values and data as y values. The leftmost (earliest)
43655
+ timestamp will be used as the value of 0, and all other timestamps will be relative to that.
43656
+ """
43657
+ return self._series
43658
+
43659
+ @builtins.property
43660
+ def options(self) -> "scout_compute_api_TimeSeriesFitOptions":
43661
+ return self._options
43662
+
43663
+
43664
+ scout_compute_api_TimeSeriesCurveFit.__name__ = "TimeSeriesCurveFit"
43665
+ scout_compute_api_TimeSeriesCurveFit.__qualname__ = "TimeSeriesCurveFit"
43666
+ scout_compute_api_TimeSeriesCurveFit.__module__ = "nominal_api.scout_compute_api"
43667
+
43668
+
43669
+ class scout_compute_api_TimeSeriesFitOptions(ConjureBeanType):
43670
+
43671
+ @builtins.classmethod
43672
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
43673
+ return {
43674
+ 'time_unit': ConjureFieldDefinition('timeUnit', OptionalTypeWrapper[api_TimeUnit])
43675
+ }
43676
+
43677
+ __slots__: List[str] = ['_time_unit']
43678
+
43679
+ def __init__(self, time_unit: Optional["api_TimeUnit"] = None) -> None:
43680
+ self._time_unit = time_unit
43681
+
43682
+ @builtins.property
43683
+ def time_unit(self) -> Optional["api_TimeUnit"]:
43684
+ """
43685
+ Time unit used for the timestamps to fit against. Defaults to seconds if not specified.
43686
+ """
43687
+ return self._time_unit
43688
+
43689
+
43690
+ scout_compute_api_TimeSeriesFitOptions.__name__ = "TimeSeriesFitOptions"
43691
+ scout_compute_api_TimeSeriesFitOptions.__qualname__ = "TimeSeriesFitOptions"
43692
+ scout_compute_api_TimeSeriesFitOptions.__module__ = "nominal_api.scout_compute_api"
43693
+
43694
+
42813
43695
  class scout_compute_api_TimestampAndId(ConjureBeanType):
42814
43696
 
42815
43697
  @builtins.classmethod
@@ -43313,6 +44195,55 @@ scout_compute_api_ValueDifferenceSeries.__qualname__ = "ValueDifferenceSeries"
43313
44195
  scout_compute_api_ValueDifferenceSeries.__module__ = "nominal_api.scout_compute_api"
43314
44196
 
43315
44197
 
44198
+ class scout_compute_api_ValueMapSeries(ConjureBeanType):
44199
+ """
44200
+ Maps a continuous numeric series to a discrete enum series using the specified value ranges.
44201
+ """
44202
+
44203
+ @builtins.classmethod
44204
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
44205
+ return {
44206
+ 'input': ConjureFieldDefinition('input', scout_compute_api_NumericSeries),
44207
+ 'mapping': ConjureFieldDefinition('mapping', List[scout_compute_api_RangeMap]),
44208
+ 'fallback': ConjureFieldDefinition('fallback', OptionalTypeWrapper[scout_compute_api_StringConstant])
44209
+ }
44210
+
44211
+ __slots__: List[str] = ['_input', '_mapping', '_fallback']
44212
+
44213
+ def __init__(self, input: "scout_compute_api_NumericSeries", mapping: List["scout_compute_api_RangeMap"], fallback: Optional["scout_compute_api_StringConstant"] = None) -> None:
44214
+ self._input = input
44215
+ self._mapping = mapping
44216
+ self._fallback = fallback
44217
+
44218
+ @builtins.property
44219
+ def input(self) -> "scout_compute_api_NumericSeries":
44220
+ """
44221
+ The input series to map to an enumerated series
44222
+ """
44223
+ return self._input
44224
+
44225
+ @builtins.property
44226
+ def mapping(self) -> List["scout_compute_api_RangeMap"]:
44227
+ """
44228
+ The output of the first capturing range will be used. Ranges are start inclusive, end exclusive, must not overlap,
44229
+ and increasing from lowest to highest. Ranges can be open ended to the edge of the next or prior range.
44230
+ The first range can be open ended to negative infinity, and the last range can be open ended to positive infinity.
44231
+ """
44232
+ return self._mapping
44233
+
44234
+ @builtins.property
44235
+ def fallback(self) -> Optional["scout_compute_api_StringConstant"]:
44236
+ """
44237
+ The fallback value if not captured by any range. If not specified, points will be filtered.
44238
+ """
44239
+ return self._fallback
44240
+
44241
+
44242
+ scout_compute_api_ValueMapSeries.__name__ = "ValueMapSeries"
44243
+ scout_compute_api_ValueMapSeries.__qualname__ = "ValueMapSeries"
44244
+ scout_compute_api_ValueMapSeries.__module__ = "nominal_api.scout_compute_api"
44245
+
44246
+
43316
44247
  class scout_compute_api_VariableValue(ConjureUnionType):
43317
44248
  _double: Optional[float] = None
43318
44249
  _compute_node: Optional["scout_compute_api_ComputeNodeWithContext"] = None
@@ -47010,33 +47941,280 @@ scout_compute_resolved_api_ClickHouseSeriesResolutionDetails.__qualname__ = "Cli
47010
47941
  scout_compute_resolved_api_ClickHouseSeriesResolutionDetails.__module__ = "nominal_api.scout_compute_resolved_api"
47011
47942
 
47012
47943
 
47013
- class scout_compute_resolved_api_CumulativeSumSeriesNode(ConjureBeanType):
47944
+ class scout_compute_resolved_api_CumulativeSumSeriesNode(ConjureBeanType):
47945
+
47946
+ @builtins.classmethod
47947
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
47948
+ return {
47949
+ 'input': ConjureFieldDefinition('input', scout_compute_resolved_api_NumericSeriesNode),
47950
+ 'start_timestamp': ConjureFieldDefinition('startTimestamp', api_Timestamp)
47951
+ }
47952
+
47953
+ __slots__: List[str] = ['_input', '_start_timestamp']
47954
+
47955
+ def __init__(self, input: "scout_compute_resolved_api_NumericSeriesNode", start_timestamp: "api_Timestamp") -> None:
47956
+ self._input = input
47957
+ self._start_timestamp = start_timestamp
47958
+
47959
+ @builtins.property
47960
+ def input(self) -> "scout_compute_resolved_api_NumericSeriesNode":
47961
+ return self._input
47962
+
47963
+ @builtins.property
47964
+ def start_timestamp(self) -> "api_Timestamp":
47965
+ return self._start_timestamp
47966
+
47967
+
47968
+ scout_compute_resolved_api_CumulativeSumSeriesNode.__name__ = "CumulativeSumSeriesNode"
47969
+ scout_compute_resolved_api_CumulativeSumSeriesNode.__qualname__ = "CumulativeSumSeriesNode"
47970
+ scout_compute_resolved_api_CumulativeSumSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
47971
+
47972
+
47973
+ class scout_compute_resolved_api_CurveFitDetails(ConjureUnionType):
47974
+ _exponential: Optional["scout_compute_resolved_api_ExponentialCurve"] = None
47975
+ _logarithmic: Optional["scout_compute_resolved_api_LogarithmicCurve"] = None
47976
+ _polynomial: Optional["scout_compute_resolved_api_PolynomialCurve"] = None
47977
+ _power: Optional["scout_compute_resolved_api_PowerCurve"] = None
47978
+
47979
+ @builtins.classmethod
47980
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
47981
+ return {
47982
+ 'exponential': ConjureFieldDefinition('exponential', scout_compute_resolved_api_ExponentialCurve),
47983
+ 'logarithmic': ConjureFieldDefinition('logarithmic', scout_compute_resolved_api_LogarithmicCurve),
47984
+ 'polynomial': ConjureFieldDefinition('polynomial', scout_compute_resolved_api_PolynomialCurve),
47985
+ 'power': ConjureFieldDefinition('power', scout_compute_resolved_api_PowerCurve)
47986
+ }
47987
+
47988
+ def __init__(
47989
+ self,
47990
+ exponential: Optional["scout_compute_resolved_api_ExponentialCurve"] = None,
47991
+ logarithmic: Optional["scout_compute_resolved_api_LogarithmicCurve"] = None,
47992
+ polynomial: Optional["scout_compute_resolved_api_PolynomialCurve"] = None,
47993
+ power: Optional["scout_compute_resolved_api_PowerCurve"] = None,
47994
+ type_of_union: Optional[str] = None
47995
+ ) -> None:
47996
+ if type_of_union is None:
47997
+ if (exponential is not None) + (logarithmic is not None) + (polynomial is not None) + (power is not None) != 1:
47998
+ raise ValueError('a union must contain a single member')
47999
+
48000
+ if exponential is not None:
48001
+ self._exponential = exponential
48002
+ self._type = 'exponential'
48003
+ if logarithmic is not None:
48004
+ self._logarithmic = logarithmic
48005
+ self._type = 'logarithmic'
48006
+ if polynomial is not None:
48007
+ self._polynomial = polynomial
48008
+ self._type = 'polynomial'
48009
+ if power is not None:
48010
+ self._power = power
48011
+ self._type = 'power'
48012
+
48013
+ elif type_of_union == 'exponential':
48014
+ if exponential is None:
48015
+ raise ValueError('a union value must not be None')
48016
+ self._exponential = exponential
48017
+ self._type = 'exponential'
48018
+ elif type_of_union == 'logarithmic':
48019
+ if logarithmic is None:
48020
+ raise ValueError('a union value must not be None')
48021
+ self._logarithmic = logarithmic
48022
+ self._type = 'logarithmic'
48023
+ elif type_of_union == 'polynomial':
48024
+ if polynomial is None:
48025
+ raise ValueError('a union value must not be None')
48026
+ self._polynomial = polynomial
48027
+ self._type = 'polynomial'
48028
+ elif type_of_union == 'power':
48029
+ if power is None:
48030
+ raise ValueError('a union value must not be None')
48031
+ self._power = power
48032
+ self._type = 'power'
48033
+
48034
+ @builtins.property
48035
+ def exponential(self) -> Optional["scout_compute_resolved_api_ExponentialCurve"]:
48036
+ return self._exponential
48037
+
48038
+ @builtins.property
48039
+ def logarithmic(self) -> Optional["scout_compute_resolved_api_LogarithmicCurve"]:
48040
+ return self._logarithmic
48041
+
48042
+ @builtins.property
48043
+ def polynomial(self) -> Optional["scout_compute_resolved_api_PolynomialCurve"]:
48044
+ return self._polynomial
48045
+
48046
+ @builtins.property
48047
+ def power(self) -> Optional["scout_compute_resolved_api_PowerCurve"]:
48048
+ return self._power
48049
+
48050
+ def accept(self, visitor) -> Any:
48051
+ if not isinstance(visitor, scout_compute_resolved_api_CurveFitDetailsVisitor):
48052
+ raise ValueError('{} is not an instance of scout_compute_resolved_api_CurveFitDetailsVisitor'.format(visitor.__class__.__name__))
48053
+ if self._type == 'exponential' and self.exponential is not None:
48054
+ return visitor._exponential(self.exponential)
48055
+ if self._type == 'logarithmic' and self.logarithmic is not None:
48056
+ return visitor._logarithmic(self.logarithmic)
48057
+ if self._type == 'polynomial' and self.polynomial is not None:
48058
+ return visitor._polynomial(self.polynomial)
48059
+ if self._type == 'power' and self.power is not None:
48060
+ return visitor._power(self.power)
48061
+
48062
+
48063
+ scout_compute_resolved_api_CurveFitDetails.__name__ = "CurveFitDetails"
48064
+ scout_compute_resolved_api_CurveFitDetails.__qualname__ = "CurveFitDetails"
48065
+ scout_compute_resolved_api_CurveFitDetails.__module__ = "nominal_api.scout_compute_resolved_api"
48066
+
48067
+
48068
+ class scout_compute_resolved_api_CurveFitDetailsVisitor:
48069
+
48070
+ @abstractmethod
48071
+ def _exponential(self, exponential: "scout_compute_resolved_api_ExponentialCurve") -> Any:
48072
+ pass
48073
+
48074
+ @abstractmethod
48075
+ def _logarithmic(self, logarithmic: "scout_compute_resolved_api_LogarithmicCurve") -> Any:
48076
+ pass
48077
+
48078
+ @abstractmethod
48079
+ def _polynomial(self, polynomial: "scout_compute_resolved_api_PolynomialCurve") -> Any:
48080
+ pass
48081
+
48082
+ @abstractmethod
48083
+ def _power(self, power: "scout_compute_resolved_api_PowerCurve") -> Any:
48084
+ pass
48085
+
48086
+
48087
+ scout_compute_resolved_api_CurveFitDetailsVisitor.__name__ = "CurveFitDetailsVisitor"
48088
+ scout_compute_resolved_api_CurveFitDetailsVisitor.__qualname__ = "CurveFitDetailsVisitor"
48089
+ scout_compute_resolved_api_CurveFitDetailsVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
48090
+
48091
+
48092
+ class scout_compute_resolved_api_CurveFitNode(ConjureBeanType):
48093
+
48094
+ @builtins.classmethod
48095
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
48096
+ return {
48097
+ 'curve_fit_plot_type': ConjureFieldDefinition('curveFitPlotType', scout_compute_resolved_api_CurveFitPlotTypeNode),
48098
+ 'curve_fit_details': ConjureFieldDefinition('curveFitDetails', scout_compute_resolved_api_CurveFitDetails),
48099
+ 'curve_fit_options': ConjureFieldDefinition('curveFitOptions', scout_compute_resolved_api_CurveFitOptions)
48100
+ }
48101
+
48102
+ __slots__: List[str] = ['_curve_fit_plot_type', '_curve_fit_details', '_curve_fit_options']
48103
+
48104
+ def __init__(self, curve_fit_details: "scout_compute_resolved_api_CurveFitDetails", curve_fit_options: "scout_compute_resolved_api_CurveFitOptions", curve_fit_plot_type: "scout_compute_resolved_api_CurveFitPlotTypeNode") -> None:
48105
+ self._curve_fit_plot_type = curve_fit_plot_type
48106
+ self._curve_fit_details = curve_fit_details
48107
+ self._curve_fit_options = curve_fit_options
48108
+
48109
+ @builtins.property
48110
+ def curve_fit_plot_type(self) -> "scout_compute_resolved_api_CurveFitPlotTypeNode":
48111
+ return self._curve_fit_plot_type
48112
+
48113
+ @builtins.property
48114
+ def curve_fit_details(self) -> "scout_compute_resolved_api_CurveFitDetails":
48115
+ return self._curve_fit_details
48116
+
48117
+ @builtins.property
48118
+ def curve_fit_options(self) -> "scout_compute_resolved_api_CurveFitOptions":
48119
+ return self._curve_fit_options
48120
+
48121
+
48122
+ scout_compute_resolved_api_CurveFitNode.__name__ = "CurveFitNode"
48123
+ scout_compute_resolved_api_CurveFitNode.__qualname__ = "CurveFitNode"
48124
+ scout_compute_resolved_api_CurveFitNode.__module__ = "nominal_api.scout_compute_resolved_api"
48125
+
48126
+
48127
+ class scout_compute_resolved_api_CurveFitOptions(ConjureBeanType):
48128
+
48129
+ @builtins.classmethod
48130
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
48131
+ return {
48132
+ }
48133
+
48134
+ __slots__: List[str] = []
48135
+
48136
+
48137
+
48138
+ scout_compute_resolved_api_CurveFitOptions.__name__ = "CurveFitOptions"
48139
+ scout_compute_resolved_api_CurveFitOptions.__qualname__ = "CurveFitOptions"
48140
+ scout_compute_resolved_api_CurveFitOptions.__module__ = "nominal_api.scout_compute_resolved_api"
48141
+
48142
+
48143
+ class scout_compute_resolved_api_CurveFitPlotTypeNode(ConjureUnionType):
48144
+ _time_series: Optional["scout_compute_resolved_api_TimeSeriesCurveFitNode"] = None
48145
+ _scatter: Optional["scout_compute_resolved_api_ScatterCurveFitNode"] = None
47014
48146
 
47015
48147
  @builtins.classmethod
47016
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
48148
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
47017
48149
  return {
47018
- 'input': ConjureFieldDefinition('input', scout_compute_resolved_api_NumericSeriesNode),
47019
- 'start_timestamp': ConjureFieldDefinition('startTimestamp', api_Timestamp)
48150
+ 'time_series': ConjureFieldDefinition('timeSeries', scout_compute_resolved_api_TimeSeriesCurveFitNode),
48151
+ 'scatter': ConjureFieldDefinition('scatter', scout_compute_resolved_api_ScatterCurveFitNode)
47020
48152
  }
47021
48153
 
47022
- __slots__: List[str] = ['_input', '_start_timestamp']
48154
+ def __init__(
48155
+ self,
48156
+ time_series: Optional["scout_compute_resolved_api_TimeSeriesCurveFitNode"] = None,
48157
+ scatter: Optional["scout_compute_resolved_api_ScatterCurveFitNode"] = None,
48158
+ type_of_union: Optional[str] = None
48159
+ ) -> None:
48160
+ if type_of_union is None:
48161
+ if (time_series is not None) + (scatter is not None) != 1:
48162
+ raise ValueError('a union must contain a single member')
47023
48163
 
47024
- def __init__(self, input: "scout_compute_resolved_api_NumericSeriesNode", start_timestamp: "api_Timestamp") -> None:
47025
- self._input = input
47026
- self._start_timestamp = start_timestamp
48164
+ if time_series is not None:
48165
+ self._time_series = time_series
48166
+ self._type = 'timeSeries'
48167
+ if scatter is not None:
48168
+ self._scatter = scatter
48169
+ self._type = 'scatter'
48170
+
48171
+ elif type_of_union == 'timeSeries':
48172
+ if time_series is None:
48173
+ raise ValueError('a union value must not be None')
48174
+ self._time_series = time_series
48175
+ self._type = 'timeSeries'
48176
+ elif type_of_union == 'scatter':
48177
+ if scatter is None:
48178
+ raise ValueError('a union value must not be None')
48179
+ self._scatter = scatter
48180
+ self._type = 'scatter'
47027
48181
 
47028
48182
  @builtins.property
47029
- def input(self) -> "scout_compute_resolved_api_NumericSeriesNode":
47030
- return self._input
48183
+ def time_series(self) -> Optional["scout_compute_resolved_api_TimeSeriesCurveFitNode"]:
48184
+ return self._time_series
47031
48185
 
47032
48186
  @builtins.property
47033
- def start_timestamp(self) -> "api_Timestamp":
47034
- return self._start_timestamp
48187
+ def scatter(self) -> Optional["scout_compute_resolved_api_ScatterCurveFitNode"]:
48188
+ return self._scatter
48189
+
48190
+ def accept(self, visitor) -> Any:
48191
+ if not isinstance(visitor, scout_compute_resolved_api_CurveFitPlotTypeNodeVisitor):
48192
+ raise ValueError('{} is not an instance of scout_compute_resolved_api_CurveFitPlotTypeNodeVisitor'.format(visitor.__class__.__name__))
48193
+ if self._type == 'timeSeries' and self.time_series is not None:
48194
+ return visitor._time_series(self.time_series)
48195
+ if self._type == 'scatter' and self.scatter is not None:
48196
+ return visitor._scatter(self.scatter)
47035
48197
 
47036
48198
 
47037
- scout_compute_resolved_api_CumulativeSumSeriesNode.__name__ = "CumulativeSumSeriesNode"
47038
- scout_compute_resolved_api_CumulativeSumSeriesNode.__qualname__ = "CumulativeSumSeriesNode"
47039
- scout_compute_resolved_api_CumulativeSumSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
48199
+ scout_compute_resolved_api_CurveFitPlotTypeNode.__name__ = "CurveFitPlotTypeNode"
48200
+ scout_compute_resolved_api_CurveFitPlotTypeNode.__qualname__ = "CurveFitPlotTypeNode"
48201
+ scout_compute_resolved_api_CurveFitPlotTypeNode.__module__ = "nominal_api.scout_compute_resolved_api"
48202
+
48203
+
48204
+ class scout_compute_resolved_api_CurveFitPlotTypeNodeVisitor:
48205
+
48206
+ @abstractmethod
48207
+ def _time_series(self, time_series: "scout_compute_resolved_api_TimeSeriesCurveFitNode") -> Any:
48208
+ pass
48209
+
48210
+ @abstractmethod
48211
+ def _scatter(self, scatter: "scout_compute_resolved_api_ScatterCurveFitNode") -> Any:
48212
+ pass
48213
+
48214
+
48215
+ scout_compute_resolved_api_CurveFitPlotTypeNodeVisitor.__name__ = "CurveFitPlotTypeNodeVisitor"
48216
+ scout_compute_resolved_api_CurveFitPlotTypeNodeVisitor.__qualname__ = "CurveFitPlotTypeNodeVisitor"
48217
+ scout_compute_resolved_api_CurveFitPlotTypeNodeVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
47040
48218
 
47041
48219
 
47042
48220
  class scout_compute_resolved_api_DerivativeSeriesNode(ConjureBeanType):
@@ -47271,6 +48449,7 @@ class scout_compute_resolved_api_EnumSeriesNode(ConjureUnionType):
47271
48449
  _union: Optional["scout_compute_resolved_api_EnumUnionSeriesNode"] = None
47272
48450
  _aggregate: Optional["scout_compute_resolved_api_AggregateEnumSeriesNode"] = None
47273
48451
  _filter_transformation: Optional["scout_compute_resolved_api_EnumFilterTransformationSeriesNode"] = None
48452
+ _value_map: Optional["scout_compute_resolved_api_ValueMapSeriesNode"] = None
47274
48453
 
47275
48454
  @builtins.classmethod
47276
48455
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -47281,7 +48460,8 @@ class scout_compute_resolved_api_EnumSeriesNode(ConjureUnionType):
47281
48460
  'time_shift': ConjureFieldDefinition('timeShift', scout_compute_resolved_api_EnumTimeShiftSeriesNode),
47282
48461
  'union': ConjureFieldDefinition('union', scout_compute_resolved_api_EnumUnionSeriesNode),
47283
48462
  'aggregate': ConjureFieldDefinition('aggregate', scout_compute_resolved_api_AggregateEnumSeriesNode),
47284
- 'filter_transformation': ConjureFieldDefinition('filterTransformation', scout_compute_resolved_api_EnumFilterTransformationSeriesNode)
48463
+ 'filter_transformation': ConjureFieldDefinition('filterTransformation', scout_compute_resolved_api_EnumFilterTransformationSeriesNode),
48464
+ 'value_map': ConjureFieldDefinition('valueMap', scout_compute_resolved_api_ValueMapSeriesNode)
47285
48465
  }
47286
48466
 
47287
48467
  def __init__(
@@ -47293,10 +48473,11 @@ class scout_compute_resolved_api_EnumSeriesNode(ConjureUnionType):
47293
48473
  union: Optional["scout_compute_resolved_api_EnumUnionSeriesNode"] = None,
47294
48474
  aggregate: Optional["scout_compute_resolved_api_AggregateEnumSeriesNode"] = None,
47295
48475
  filter_transformation: Optional["scout_compute_resolved_api_EnumFilterTransformationSeriesNode"] = None,
48476
+ value_map: Optional["scout_compute_resolved_api_ValueMapSeriesNode"] = None,
47296
48477
  type_of_union: Optional[str] = None
47297
48478
  ) -> None:
47298
48479
  if type_of_union is None:
47299
- if (raw is not None) + (resample is not None) + (time_range_filter is not None) + (time_shift is not None) + (union is not None) + (aggregate is not None) + (filter_transformation is not None) != 1:
48480
+ if (raw is not None) + (resample is not None) + (time_range_filter is not None) + (time_shift is not None) + (union is not None) + (aggregate is not None) + (filter_transformation is not None) + (value_map is not None) != 1:
47300
48481
  raise ValueError('a union must contain a single member')
47301
48482
 
47302
48483
  if raw is not None:
@@ -47320,6 +48501,9 @@ class scout_compute_resolved_api_EnumSeriesNode(ConjureUnionType):
47320
48501
  if filter_transformation is not None:
47321
48502
  self._filter_transformation = filter_transformation
47322
48503
  self._type = 'filterTransformation'
48504
+ if value_map is not None:
48505
+ self._value_map = value_map
48506
+ self._type = 'valueMap'
47323
48507
 
47324
48508
  elif type_of_union == 'raw':
47325
48509
  if raw is None:
@@ -47356,6 +48540,11 @@ class scout_compute_resolved_api_EnumSeriesNode(ConjureUnionType):
47356
48540
  raise ValueError('a union value must not be None')
47357
48541
  self._filter_transformation = filter_transformation
47358
48542
  self._type = 'filterTransformation'
48543
+ elif type_of_union == 'valueMap':
48544
+ if value_map is None:
48545
+ raise ValueError('a union value must not be None')
48546
+ self._value_map = value_map
48547
+ self._type = 'valueMap'
47359
48548
 
47360
48549
  @builtins.property
47361
48550
  def raw(self) -> Optional["scout_compute_resolved_api_RawEnumSeriesNode"]:
@@ -47385,6 +48574,10 @@ class scout_compute_resolved_api_EnumSeriesNode(ConjureUnionType):
47385
48574
  def filter_transformation(self) -> Optional["scout_compute_resolved_api_EnumFilterTransformationSeriesNode"]:
47386
48575
  return self._filter_transformation
47387
48576
 
48577
+ @builtins.property
48578
+ def value_map(self) -> Optional["scout_compute_resolved_api_ValueMapSeriesNode"]:
48579
+ return self._value_map
48580
+
47388
48581
  def accept(self, visitor) -> Any:
47389
48582
  if not isinstance(visitor, scout_compute_resolved_api_EnumSeriesNodeVisitor):
47390
48583
  raise ValueError('{} is not an instance of scout_compute_resolved_api_EnumSeriesNodeVisitor'.format(visitor.__class__.__name__))
@@ -47402,6 +48595,8 @@ class scout_compute_resolved_api_EnumSeriesNode(ConjureUnionType):
47402
48595
  return visitor._aggregate(self.aggregate)
47403
48596
  if self._type == 'filterTransformation' and self.filter_transformation is not None:
47404
48597
  return visitor._filter_transformation(self.filter_transformation)
48598
+ if self._type == 'valueMap' and self.value_map is not None:
48599
+ return visitor._value_map(self.value_map)
47405
48600
 
47406
48601
 
47407
48602
  scout_compute_resolved_api_EnumSeriesNode.__name__ = "EnumSeriesNode"
@@ -47439,6 +48634,10 @@ class scout_compute_resolved_api_EnumSeriesNodeVisitor:
47439
48634
  def _filter_transformation(self, filter_transformation: "scout_compute_resolved_api_EnumFilterTransformationSeriesNode") -> Any:
47440
48635
  pass
47441
48636
 
48637
+ @abstractmethod
48638
+ def _value_map(self, value_map: "scout_compute_resolved_api_ValueMapSeriesNode") -> Any:
48639
+ pass
48640
+
47442
48641
 
47443
48642
  scout_compute_resolved_api_EnumSeriesNodeVisitor.__name__ = "EnumSeriesNodeVisitor"
47444
48643
  scout_compute_resolved_api_EnumSeriesNodeVisitor.__qualname__ = "EnumSeriesNodeVisitor"
@@ -47538,6 +48737,29 @@ scout_compute_resolved_api_EnumUnionSeriesNode.__qualname__ = "EnumUnionSeriesNo
47538
48737
  scout_compute_resolved_api_EnumUnionSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
47539
48738
 
47540
48739
 
48740
+ class scout_compute_resolved_api_ExponentialCurve(ConjureBeanType):
48741
+
48742
+ @builtins.classmethod
48743
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
48744
+ return {
48745
+ 'intercept': ConjureFieldDefinition('intercept', OptionalTypeWrapper[float])
48746
+ }
48747
+
48748
+ __slots__: List[str] = ['_intercept']
48749
+
48750
+ def __init__(self, intercept: Optional[float] = None) -> None:
48751
+ self._intercept = intercept
48752
+
48753
+ @builtins.property
48754
+ def intercept(self) -> Optional[float]:
48755
+ return self._intercept
48756
+
48757
+
48758
+ scout_compute_resolved_api_ExponentialCurve.__name__ = "ExponentialCurve"
48759
+ scout_compute_resolved_api_ExponentialCurve.__qualname__ = "ExponentialCurve"
48760
+ scout_compute_resolved_api_ExponentialCurve.__module__ = "nominal_api.scout_compute_resolved_api"
48761
+
48762
+
47541
48763
  class scout_compute_resolved_api_ExtremaRangesNode(ConjureBeanType):
47542
48764
 
47543
48765
  @builtins.classmethod
@@ -48310,6 +49532,22 @@ scout_compute_resolved_api_LogUnionSeriesNode.__qualname__ = "LogUnionSeriesNode
48310
49532
  scout_compute_resolved_api_LogUnionSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
48311
49533
 
48312
49534
 
49535
+ class scout_compute_resolved_api_LogarithmicCurve(ConjureBeanType):
49536
+
49537
+ @builtins.classmethod
49538
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
49539
+ return {
49540
+ }
49541
+
49542
+ __slots__: List[str] = []
49543
+
49544
+
49545
+
49546
+ scout_compute_resolved_api_LogarithmicCurve.__name__ = "LogarithmicCurve"
49547
+ scout_compute_resolved_api_LogarithmicCurve.__qualname__ = "LogarithmicCurve"
49548
+ scout_compute_resolved_api_LogarithmicCurve.__module__ = "nominal_api.scout_compute_resolved_api"
49549
+
49550
+
48313
49551
  class scout_compute_resolved_api_LowPassConfiguration(ConjureBeanType):
48314
49552
 
48315
49553
  @builtins.classmethod
@@ -49532,6 +50770,51 @@ scout_compute_resolved_api_PersistenceWindowConfiguration.__qualname__ = "Persis
49532
50770
  scout_compute_resolved_api_PersistenceWindowConfiguration.__module__ = "nominal_api.scout_compute_resolved_api"
49533
50771
 
49534
50772
 
50773
+ class scout_compute_resolved_api_PolynomialCurve(ConjureBeanType):
50774
+
50775
+ @builtins.classmethod
50776
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50777
+ return {
50778
+ 'degree': ConjureFieldDefinition('degree', int),
50779
+ 'intercept': ConjureFieldDefinition('intercept', OptionalTypeWrapper[float])
50780
+ }
50781
+
50782
+ __slots__: List[str] = ['_degree', '_intercept']
50783
+
50784
+ def __init__(self, degree: int, intercept: Optional[float] = None) -> None:
50785
+ self._degree = degree
50786
+ self._intercept = intercept
50787
+
50788
+ @builtins.property
50789
+ def degree(self) -> int:
50790
+ return self._degree
50791
+
50792
+ @builtins.property
50793
+ def intercept(self) -> Optional[float]:
50794
+ return self._intercept
50795
+
50796
+
50797
+ scout_compute_resolved_api_PolynomialCurve.__name__ = "PolynomialCurve"
50798
+ scout_compute_resolved_api_PolynomialCurve.__qualname__ = "PolynomialCurve"
50799
+ scout_compute_resolved_api_PolynomialCurve.__module__ = "nominal_api.scout_compute_resolved_api"
50800
+
50801
+
50802
+ class scout_compute_resolved_api_PowerCurve(ConjureBeanType):
50803
+
50804
+ @builtins.classmethod
50805
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50806
+ return {
50807
+ }
50808
+
50809
+ __slots__: List[str] = []
50810
+
50811
+
50812
+
50813
+ scout_compute_resolved_api_PowerCurve.__name__ = "PowerCurve"
50814
+ scout_compute_resolved_api_PowerCurve.__qualname__ = "PowerCurve"
50815
+ scout_compute_resolved_api_PowerCurve.__module__ = "nominal_api.scout_compute_resolved_api"
50816
+
50817
+
49535
50818
  class scout_compute_resolved_api_ProductSeriesNode(ConjureBeanType):
49536
50819
 
49537
50820
  @builtins.classmethod
@@ -49561,6 +50844,41 @@ scout_compute_resolved_api_ProductSeriesNode.__qualname__ = "ProductSeriesNode"
49561
50844
  scout_compute_resolved_api_ProductSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
49562
50845
 
49563
50846
 
50847
+ class scout_compute_resolved_api_RangeMap(ConjureBeanType):
50848
+
50849
+ @builtins.classmethod
50850
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50851
+ return {
50852
+ 'start': ConjureFieldDefinition('start', OptionalTypeWrapper[float]),
50853
+ 'end': ConjureFieldDefinition('end', OptionalTypeWrapper[float]),
50854
+ 'output': ConjureFieldDefinition('output', str)
50855
+ }
50856
+
50857
+ __slots__: List[str] = ['_start', '_end', '_output']
50858
+
50859
+ def __init__(self, output: str, end: Optional[float] = None, start: Optional[float] = None) -> None:
50860
+ self._start = start
50861
+ self._end = end
50862
+ self._output = output
50863
+
50864
+ @builtins.property
50865
+ def start(self) -> Optional[float]:
50866
+ return self._start
50867
+
50868
+ @builtins.property
50869
+ def end(self) -> Optional[float]:
50870
+ return self._end
50871
+
50872
+ @builtins.property
50873
+ def output(self) -> str:
50874
+ return self._output
50875
+
50876
+
50877
+ scout_compute_resolved_api_RangeMap.__name__ = "RangeMap"
50878
+ scout_compute_resolved_api_RangeMap.__qualname__ = "RangeMap"
50879
+ scout_compute_resolved_api_RangeMap.__module__ = "nominal_api.scout_compute_resolved_api"
50880
+
50881
+
49564
50882
  class scout_compute_resolved_api_RangesNode(ConjureUnionType):
49565
50883
  _enum_equality: Optional["scout_compute_resolved_api_EnumEqualityRangesNode"] = None
49566
50884
  _enum_filter: Optional["scout_compute_resolved_api_EnumFilterRangesNode"] = None
@@ -50090,6 +51408,7 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
50090
51408
  _frequency: Optional["scout_compute_resolved_api_FrequencyDomainNode"] = None
50091
51409
  _histogram: Optional["scout_compute_resolved_api_HistogramNode"] = None
50092
51410
  _geo: Optional["scout_compute_resolved_api_SummarizeGeoNode"] = None
51411
+ _curve: Optional["scout_compute_resolved_api_CurveFitNode"] = None
50093
51412
 
50094
51413
  @builtins.classmethod
50095
51414
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -50101,7 +51420,8 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
50101
51420
  'cartesian3d': ConjureFieldDefinition('cartesian3d', scout_compute_resolved_api_SummarizeCartesian3dNode),
50102
51421
  'frequency': ConjureFieldDefinition('frequency', scout_compute_resolved_api_FrequencyDomainNode),
50103
51422
  'histogram': ConjureFieldDefinition('histogram', scout_compute_resolved_api_HistogramNode),
50104
- 'geo': ConjureFieldDefinition('geo', scout_compute_resolved_api_SummarizeGeoNode)
51423
+ 'geo': ConjureFieldDefinition('geo', scout_compute_resolved_api_SummarizeGeoNode),
51424
+ 'curve': ConjureFieldDefinition('curve', scout_compute_resolved_api_CurveFitNode)
50105
51425
  }
50106
51426
 
50107
51427
  def __init__(
@@ -50114,10 +51434,11 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
50114
51434
  frequency: Optional["scout_compute_resolved_api_FrequencyDomainNode"] = None,
50115
51435
  histogram: Optional["scout_compute_resolved_api_HistogramNode"] = None,
50116
51436
  geo: Optional["scout_compute_resolved_api_SummarizeGeoNode"] = None,
51437
+ curve: Optional["scout_compute_resolved_api_CurveFitNode"] = None,
50117
51438
  type_of_union: Optional[str] = None
50118
51439
  ) -> None:
50119
51440
  if type_of_union is None:
50120
- if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (histogram is not None) + (geo is not None) != 1:
51441
+ if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (histogram is not None) + (geo is not None) + (curve is not None) != 1:
50121
51442
  raise ValueError('a union must contain a single member')
50122
51443
 
50123
51444
  if ranges is not None:
@@ -50144,6 +51465,9 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
50144
51465
  if geo is not None:
50145
51466
  self._geo = geo
50146
51467
  self._type = 'geo'
51468
+ if curve is not None:
51469
+ self._curve = curve
51470
+ self._type = 'curve'
50147
51471
 
50148
51472
  elif type_of_union == 'ranges':
50149
51473
  if ranges is None:
@@ -50185,6 +51509,11 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
50185
51509
  raise ValueError('a union value must not be None')
50186
51510
  self._geo = geo
50187
51511
  self._type = 'geo'
51512
+ elif type_of_union == 'curve':
51513
+ if curve is None:
51514
+ raise ValueError('a union value must not be None')
51515
+ self._curve = curve
51516
+ self._type = 'curve'
50188
51517
 
50189
51518
  @builtins.property
50190
51519
  def ranges(self) -> Optional["scout_compute_resolved_api_SummarizeRangesNode"]:
@@ -50218,6 +51547,10 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
50218
51547
  def geo(self) -> Optional["scout_compute_resolved_api_SummarizeGeoNode"]:
50219
51548
  return self._geo
50220
51549
 
51550
+ @builtins.property
51551
+ def curve(self) -> Optional["scout_compute_resolved_api_CurveFitNode"]:
51552
+ return self._curve
51553
+
50221
51554
  def accept(self, visitor) -> Any:
50222
51555
  if not isinstance(visitor, scout_compute_resolved_api_ResolvedNodeVisitor):
50223
51556
  raise ValueError('{} is not an instance of scout_compute_resolved_api_ResolvedNodeVisitor'.format(visitor.__class__.__name__))
@@ -50237,6 +51570,8 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
50237
51570
  return visitor._histogram(self.histogram)
50238
51571
  if self._type == 'geo' and self.geo is not None:
50239
51572
  return visitor._geo(self.geo)
51573
+ if self._type == 'curve' and self.curve is not None:
51574
+ return visitor._curve(self.curve)
50240
51575
 
50241
51576
 
50242
51577
  scout_compute_resolved_api_ResolvedNode.__name__ = "ResolvedNode"
@@ -50278,6 +51613,10 @@ class scout_compute_resolved_api_ResolvedNodeVisitor:
50278
51613
  def _geo(self, geo: "scout_compute_resolved_api_SummarizeGeoNode") -> Any:
50279
51614
  pass
50280
51615
 
51616
+ @abstractmethod
51617
+ def _curve(self, curve: "scout_compute_resolved_api_CurveFitNode") -> Any:
51618
+ pass
51619
+
50281
51620
 
50282
51621
  scout_compute_resolved_api_ResolvedNodeVisitor.__name__ = "ResolvedNodeVisitor"
50283
51622
  scout_compute_resolved_api_ResolvedNodeVisitor.__qualname__ = "ResolvedNodeVisitor"
@@ -50436,6 +51775,76 @@ scout_compute_resolved_api_Scatter3dNode.__qualname__ = "Scatter3dNode"
50436
51775
  scout_compute_resolved_api_Scatter3dNode.__module__ = "nominal_api.scout_compute_resolved_api"
50437
51776
 
50438
51777
 
51778
+ class scout_compute_resolved_api_ScatterCurveFitNode(ConjureBeanType):
51779
+
51780
+ @builtins.classmethod
51781
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
51782
+ return {
51783
+ 'scatter': ConjureFieldDefinition('scatter', scout_compute_resolved_api_ScatterNode),
51784
+ 'options': ConjureFieldDefinition('options', scout_compute_resolved_api_ScatterFitOptions)
51785
+ }
51786
+
51787
+ __slots__: List[str] = ['_scatter', '_options']
51788
+
51789
+ def __init__(self, options: "scout_compute_resolved_api_ScatterFitOptions", scatter: "scout_compute_resolved_api_ScatterNode") -> None:
51790
+ self._scatter = scatter
51791
+ self._options = options
51792
+
51793
+ @builtins.property
51794
+ def scatter(self) -> "scout_compute_resolved_api_ScatterNode":
51795
+ return self._scatter
51796
+
51797
+ @builtins.property
51798
+ def options(self) -> "scout_compute_resolved_api_ScatterFitOptions":
51799
+ return self._options
51800
+
51801
+
51802
+ scout_compute_resolved_api_ScatterCurveFitNode.__name__ = "ScatterCurveFitNode"
51803
+ scout_compute_resolved_api_ScatterCurveFitNode.__qualname__ = "ScatterCurveFitNode"
51804
+ scout_compute_resolved_api_ScatterCurveFitNode.__module__ = "nominal_api.scout_compute_resolved_api"
51805
+
51806
+
51807
+ class scout_compute_resolved_api_ScatterFitOptions(ConjureBeanType):
51808
+
51809
+ @builtins.classmethod
51810
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
51811
+ return {
51812
+ 'min_x': ConjureFieldDefinition('minX', OptionalTypeWrapper[float]),
51813
+ 'max_x': ConjureFieldDefinition('maxX', OptionalTypeWrapper[float]),
51814
+ 'min_y': ConjureFieldDefinition('minY', OptionalTypeWrapper[float]),
51815
+ 'max_y': ConjureFieldDefinition('maxY', OptionalTypeWrapper[float])
51816
+ }
51817
+
51818
+ __slots__: List[str] = ['_min_x', '_max_x', '_min_y', '_max_y']
51819
+
51820
+ def __init__(self, max_x: Optional[float] = None, max_y: Optional[float] = None, min_x: Optional[float] = None, min_y: Optional[float] = None) -> None:
51821
+ self._min_x = min_x
51822
+ self._max_x = max_x
51823
+ self._min_y = min_y
51824
+ self._max_y = max_y
51825
+
51826
+ @builtins.property
51827
+ def min_x(self) -> Optional[float]:
51828
+ return self._min_x
51829
+
51830
+ @builtins.property
51831
+ def max_x(self) -> Optional[float]:
51832
+ return self._max_x
51833
+
51834
+ @builtins.property
51835
+ def min_y(self) -> Optional[float]:
51836
+ return self._min_y
51837
+
51838
+ @builtins.property
51839
+ def max_y(self) -> Optional[float]:
51840
+ return self._max_y
51841
+
51842
+
51843
+ scout_compute_resolved_api_ScatterFitOptions.__name__ = "ScatterFitOptions"
51844
+ scout_compute_resolved_api_ScatterFitOptions.__qualname__ = "ScatterFitOptions"
51845
+ scout_compute_resolved_api_ScatterFitOptions.__module__ = "nominal_api.scout_compute_resolved_api"
51846
+
51847
+
50439
51848
  class scout_compute_resolved_api_ScatterNode(ConjureBeanType):
50440
51849
 
50441
51850
  @builtins.classmethod
@@ -51400,6 +52809,58 @@ scout_compute_resolved_api_TimeDifferenceSeriesNode.__qualname__ = "TimeDifferen
51400
52809
  scout_compute_resolved_api_TimeDifferenceSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
51401
52810
 
51402
52811
 
52812
+ class scout_compute_resolved_api_TimeSeriesCurveFitNode(ConjureBeanType):
52813
+
52814
+ @builtins.classmethod
52815
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
52816
+ return {
52817
+ 'series': ConjureFieldDefinition('series', scout_compute_resolved_api_NumericSeriesNode),
52818
+ 'options': ConjureFieldDefinition('options', scout_compute_resolved_api_TimeSeriesFitOptions)
52819
+ }
52820
+
52821
+ __slots__: List[str] = ['_series', '_options']
52822
+
52823
+ def __init__(self, options: "scout_compute_resolved_api_TimeSeriesFitOptions", series: "scout_compute_resolved_api_NumericSeriesNode") -> None:
52824
+ self._series = series
52825
+ self._options = options
52826
+
52827
+ @builtins.property
52828
+ def series(self) -> "scout_compute_resolved_api_NumericSeriesNode":
52829
+ return self._series
52830
+
52831
+ @builtins.property
52832
+ def options(self) -> "scout_compute_resolved_api_TimeSeriesFitOptions":
52833
+ return self._options
52834
+
52835
+
52836
+ scout_compute_resolved_api_TimeSeriesCurveFitNode.__name__ = "TimeSeriesCurveFitNode"
52837
+ scout_compute_resolved_api_TimeSeriesCurveFitNode.__qualname__ = "TimeSeriesCurveFitNode"
52838
+ scout_compute_resolved_api_TimeSeriesCurveFitNode.__module__ = "nominal_api.scout_compute_resolved_api"
52839
+
52840
+
52841
+ class scout_compute_resolved_api_TimeSeriesFitOptions(ConjureBeanType):
52842
+
52843
+ @builtins.classmethod
52844
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
52845
+ return {
52846
+ 'time_unit': ConjureFieldDefinition('timeUnit', OptionalTypeWrapper[api_TimeUnit])
52847
+ }
52848
+
52849
+ __slots__: List[str] = ['_time_unit']
52850
+
52851
+ def __init__(self, time_unit: Optional["api_TimeUnit"] = None) -> None:
52852
+ self._time_unit = time_unit
52853
+
52854
+ @builtins.property
52855
+ def time_unit(self) -> Optional["api_TimeUnit"]:
52856
+ return self._time_unit
52857
+
52858
+
52859
+ scout_compute_resolved_api_TimeSeriesFitOptions.__name__ = "TimeSeriesFitOptions"
52860
+ scout_compute_resolved_api_TimeSeriesFitOptions.__qualname__ = "TimeSeriesFitOptions"
52861
+ scout_compute_resolved_api_TimeSeriesFitOptions.__module__ = "nominal_api.scout_compute_resolved_api"
52862
+
52863
+
51403
52864
  class scout_compute_resolved_api_UnaryArithmeticSeriesNode(ConjureBeanType):
51404
52865
 
51405
52866
  @builtins.classmethod
@@ -51510,6 +52971,41 @@ scout_compute_resolved_api_ValueDifferenceSeriesNode.__qualname__ = "ValueDiffer
51510
52971
  scout_compute_resolved_api_ValueDifferenceSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
51511
52972
 
51512
52973
 
52974
+ class scout_compute_resolved_api_ValueMapSeriesNode(ConjureBeanType):
52975
+
52976
+ @builtins.classmethod
52977
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
52978
+ return {
52979
+ 'input': ConjureFieldDefinition('input', scout_compute_resolved_api_NumericSeriesNode),
52980
+ 'mapping': ConjureFieldDefinition('mapping', List[scout_compute_resolved_api_RangeMap]),
52981
+ 'fallback': ConjureFieldDefinition('fallback', OptionalTypeWrapper[str])
52982
+ }
52983
+
52984
+ __slots__: List[str] = ['_input', '_mapping', '_fallback']
52985
+
52986
+ def __init__(self, input: "scout_compute_resolved_api_NumericSeriesNode", mapping: List["scout_compute_resolved_api_RangeMap"], fallback: Optional[str] = None) -> None:
52987
+ self._input = input
52988
+ self._mapping = mapping
52989
+ self._fallback = fallback
52990
+
52991
+ @builtins.property
52992
+ def input(self) -> "scout_compute_resolved_api_NumericSeriesNode":
52993
+ return self._input
52994
+
52995
+ @builtins.property
52996
+ def mapping(self) -> List["scout_compute_resolved_api_RangeMap"]:
52997
+ return self._mapping
52998
+
52999
+ @builtins.property
53000
+ def fallback(self) -> Optional[str]:
53001
+ return self._fallback
53002
+
53003
+
53004
+ scout_compute_resolved_api_ValueMapSeriesNode.__name__ = "ValueMapSeriesNode"
53005
+ scout_compute_resolved_api_ValueMapSeriesNode.__qualname__ = "ValueMapSeriesNode"
53006
+ scout_compute_resolved_api_ValueMapSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
53007
+
53008
+
51513
53009
  class scout_compute_resolved_api_Window(ConjureBeanType):
51514
53010
 
51515
53011
  @builtins.classmethod