nominal-api 0.540.1__py3-none-any.whl → 0.542.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
@@ -10726,105 +10726,6 @@ includes metrics for check and violation review status
10726
10726
  _decoder = ConjureDecoder()
10727
10727
  return _decoder.decode(_response.json(), scout_run_api_SearchRunChannelsResponse, self._return_none_for_unknown_union_types)
10728
10728
 
10729
- def get_events(self, auth_header: str, rid: str, next_page_token: Optional[str] = None) -> "scout_run_api_GetEventsForRunPage":
10730
- """
10731
- Fetches a list of events associated with the run.
10732
-
10733
- Returns a maximum page size of 1000.
10734
- """
10735
-
10736
- _headers: Dict[str, Any] = {
10737
- 'Accept': 'application/json',
10738
- 'Authorization': auth_header,
10739
- }
10740
-
10741
- _params: Dict[str, Any] = {
10742
- 'nextPageToken': next_page_token,
10743
- }
10744
-
10745
- _path_params: Dict[str, Any] = {
10746
- 'rid': rid,
10747
- }
10748
-
10749
- _json: Any = None
10750
-
10751
- _path = '/scout/v1/run/{rid}/events'
10752
- _path = _path.format(**_path_params)
10753
-
10754
- _response: Response = self._request(
10755
- 'GET',
10756
- self._uri + _path,
10757
- params=_params,
10758
- headers=_headers,
10759
- json=_json)
10760
-
10761
- _decoder = ConjureDecoder()
10762
- return _decoder.decode(_response.json(), scout_run_api_GetEventsForRunPage, self._return_none_for_unknown_union_types)
10763
-
10764
- def publish_events(self, auth_header: str, request: "scout_run_api_PublishEventsToRunRequest", rid: str) -> None:
10765
- """
10766
- Adds a set of new events to the run.
10767
- """
10768
-
10769
- _headers: Dict[str, Any] = {
10770
- 'Accept': 'application/json',
10771
- 'Content-Type': 'application/json',
10772
- 'Authorization': auth_header,
10773
- }
10774
-
10775
- _params: Dict[str, Any] = {
10776
- }
10777
-
10778
- _path_params: Dict[str, Any] = {
10779
- 'rid': rid,
10780
- }
10781
-
10782
- _json: Any = ConjureEncoder().default(request)
10783
-
10784
- _path = '/scout/v1/run/{rid}/events'
10785
- _path = _path.format(**_path_params)
10786
-
10787
- _response: Response = self._request(
10788
- 'POST',
10789
- self._uri + _path,
10790
- params=_params,
10791
- headers=_headers,
10792
- json=_json)
10793
-
10794
- return
10795
-
10796
- def delete_events_from_run(self, auth_header: str, request: "scout_run_api_DeleteEventsFromRunRequest", rid: str) -> None:
10797
- """
10798
- Deletes events from the run.
10799
- """
10800
-
10801
- _headers: Dict[str, Any] = {
10802
- 'Accept': 'application/json',
10803
- 'Content-Type': 'application/json',
10804
- 'Authorization': auth_header,
10805
- }
10806
-
10807
- _params: Dict[str, Any] = {
10808
- }
10809
-
10810
- _path_params: Dict[str, Any] = {
10811
- 'rid': rid,
10812
- }
10813
-
10814
- _json: Any = ConjureEncoder().default(request)
10815
-
10816
- _path = '/scout/v1/run/{rid}/delete-events'
10817
- _path = _path.format(**_path_params)
10818
-
10819
- _response: Response = self._request(
10820
- 'POST',
10821
- self._uri + _path,
10822
- params=_params,
10823
- headers=_headers,
10824
- json=_json)
10825
-
10826
- return
10827
-
10828
10729
  def update_run_attachment(self, auth_header: str, request: "scout_run_api_UpdateAttachmentsRequest", rid: str) -> None:
10829
10730
  """
10830
10731
  Updates the attachments associated with a run.
@@ -27603,6 +27504,64 @@ scout_compute_api_Average.__qualname__ = "Average"
27603
27504
  scout_compute_api_Average.__module__ = "nominal_api.scout_compute_api"
27604
27505
 
27605
27506
 
27507
+ class scout_compute_api_BandPassConfiguration(ConjureBeanType):
27508
+
27509
+ @builtins.classmethod
27510
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
27511
+ return {
27512
+ 'low_passband_frequency': ConjureFieldDefinition('lowPassbandFrequency', scout_compute_api_DoubleConstant),
27513
+ 'high_passband_frequency': ConjureFieldDefinition('highPassbandFrequency', scout_compute_api_DoubleConstant)
27514
+ }
27515
+
27516
+ __slots__: List[str] = ['_low_passband_frequency', '_high_passband_frequency']
27517
+
27518
+ def __init__(self, high_passband_frequency: "scout_compute_api_DoubleConstant", low_passband_frequency: "scout_compute_api_DoubleConstant") -> None:
27519
+ self._low_passband_frequency = low_passband_frequency
27520
+ self._high_passband_frequency = high_passband_frequency
27521
+
27522
+ @builtins.property
27523
+ def low_passband_frequency(self) -> "scout_compute_api_DoubleConstant":
27524
+ return self._low_passband_frequency
27525
+
27526
+ @builtins.property
27527
+ def high_passband_frequency(self) -> "scout_compute_api_DoubleConstant":
27528
+ return self._high_passband_frequency
27529
+
27530
+
27531
+ scout_compute_api_BandPassConfiguration.__name__ = "BandPassConfiguration"
27532
+ scout_compute_api_BandPassConfiguration.__qualname__ = "BandPassConfiguration"
27533
+ scout_compute_api_BandPassConfiguration.__module__ = "nominal_api.scout_compute_api"
27534
+
27535
+
27536
+ class scout_compute_api_BandStopConfiguration(ConjureBeanType):
27537
+
27538
+ @builtins.classmethod
27539
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
27540
+ return {
27541
+ 'low_stopband_frequency': ConjureFieldDefinition('lowStopbandFrequency', scout_compute_api_DoubleConstant),
27542
+ 'high_stopband_frequency': ConjureFieldDefinition('highStopbandFrequency', scout_compute_api_DoubleConstant)
27543
+ }
27544
+
27545
+ __slots__: List[str] = ['_low_stopband_frequency', '_high_stopband_frequency']
27546
+
27547
+ def __init__(self, high_stopband_frequency: "scout_compute_api_DoubleConstant", low_stopband_frequency: "scout_compute_api_DoubleConstant") -> None:
27548
+ self._low_stopband_frequency = low_stopband_frequency
27549
+ self._high_stopband_frequency = high_stopband_frequency
27550
+
27551
+ @builtins.property
27552
+ def low_stopband_frequency(self) -> "scout_compute_api_DoubleConstant":
27553
+ return self._low_stopband_frequency
27554
+
27555
+ @builtins.property
27556
+ def high_stopband_frequency(self) -> "scout_compute_api_DoubleConstant":
27557
+ return self._high_stopband_frequency
27558
+
27559
+
27560
+ scout_compute_api_BandStopConfiguration.__name__ = "BandStopConfiguration"
27561
+ scout_compute_api_BandStopConfiguration.__qualname__ = "BandStopConfiguration"
27562
+ scout_compute_api_BandStopConfiguration.__module__ = "nominal_api.scout_compute_api"
27563
+
27564
+
27606
27565
  class scout_compute_api_BatchComputeUnitResult(ConjureBeanType):
27607
27566
 
27608
27567
  @builtins.classmethod
@@ -28920,6 +28879,7 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
28920
28879
  _bucketed_geo: Optional["scout_compute_api_BucketedGeoPlot"] = None
28921
28880
  _enum_point: Optional[Optional["scout_compute_api_EnumPoint"]] = None
28922
28881
  _numeric_point: Optional[Optional["scout_compute_api_NumericPoint"]] = None
28882
+ _log_point: Optional[Optional["scout_compute_api_LogPoint"]] = None
28923
28883
  _range_value: Optional[Optional["scout_compute_api_Range"]] = None
28924
28884
  _frequency_domain: Optional["scout_compute_api_FrequencyDomainPlot"] = None
28925
28885
  _numeric_histogram: Optional["scout_compute_api_NumericHistogramPlot"] = None
@@ -28940,6 +28900,7 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
28940
28900
  'bucketed_geo': ConjureFieldDefinition('bucketedGeo', scout_compute_api_BucketedGeoPlot),
28941
28901
  'enum_point': ConjureFieldDefinition('enumPoint', OptionalTypeWrapper[scout_compute_api_EnumPoint]),
28942
28902
  'numeric_point': ConjureFieldDefinition('numericPoint', OptionalTypeWrapper[scout_compute_api_NumericPoint]),
28903
+ 'log_point': ConjureFieldDefinition('logPoint', OptionalTypeWrapper[scout_compute_api_LogPoint]),
28943
28904
  'range_value': ConjureFieldDefinition('rangeValue', OptionalTypeWrapper[scout_compute_api_Range]),
28944
28905
  'frequency_domain': ConjureFieldDefinition('frequencyDomain', scout_compute_api_FrequencyDomainPlot),
28945
28906
  'numeric_histogram': ConjureFieldDefinition('numericHistogram', scout_compute_api_NumericHistogramPlot),
@@ -28960,6 +28921,7 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
28960
28921
  bucketed_geo: Optional["scout_compute_api_BucketedGeoPlot"] = None,
28961
28922
  enum_point: Optional[Optional["scout_compute_api_EnumPoint"]] = None,
28962
28923
  numeric_point: Optional[Optional["scout_compute_api_NumericPoint"]] = None,
28924
+ log_point: Optional[Optional["scout_compute_api_LogPoint"]] = None,
28963
28925
  range_value: Optional[Optional["scout_compute_api_Range"]] = None,
28964
28926
  frequency_domain: Optional["scout_compute_api_FrequencyDomainPlot"] = None,
28965
28927
  numeric_histogram: Optional["scout_compute_api_NumericHistogramPlot"] = None,
@@ -28967,7 +28929,7 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
28967
28929
  type_of_union: Optional[str] = None
28968
28930
  ) -> None:
28969
28931
  if type_of_union is None:
28970
- if (numeric is not None) + (bucketed_numeric is not None) + (range is not None) + (ranges_summary is not None) + (enum is not None) + (log is not None) + (bucketed_enum is not None) + (cartesian is not None) + (bucketed_cartesian is not None) + (bucketed_geo is not None) + (enum_point is not None) + (numeric_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:
28932
+ if (numeric is not None) + (bucketed_numeric is not None) + (range is not None) + (ranges_summary is not None) + (enum is not None) + (log is not None) + (bucketed_enum is not None) + (cartesian is not None) + (bucketed_cartesian 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:
28971
28933
  raise ValueError('a union must contain a single member')
28972
28934
 
28973
28935
  if numeric is not None:
@@ -29006,6 +28968,9 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
29006
28968
  if numeric_point is not None:
29007
28969
  self._numeric_point = numeric_point
29008
28970
  self._type = 'numericPoint'
28971
+ if log_point is not None:
28972
+ self._log_point = log_point
28973
+ self._type = 'logPoint'
29009
28974
  if range_value is not None:
29010
28975
  self._range_value = range_value
29011
28976
  self._type = 'rangeValue'
@@ -29079,6 +29044,11 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
29079
29044
  raise ValueError('a union value must not be None')
29080
29045
  self._numeric_point = numeric_point
29081
29046
  self._type = 'numericPoint'
29047
+ elif type_of_union == 'logPoint':
29048
+ if log_point is None:
29049
+ raise ValueError('a union value must not be None')
29050
+ self._log_point = log_point
29051
+ self._type = 'logPoint'
29082
29052
  elif type_of_union == 'rangeValue':
29083
29053
  if range_value is None:
29084
29054
  raise ValueError('a union value must not be None')
@@ -29148,6 +29118,10 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
29148
29118
  def numeric_point(self) -> Optional[Optional["scout_compute_api_NumericPoint"]]:
29149
29119
  return self._numeric_point
29150
29120
 
29121
+ @builtins.property
29122
+ def log_point(self) -> Optional[Optional["scout_compute_api_LogPoint"]]:
29123
+ return self._log_point
29124
+
29151
29125
  @builtins.property
29152
29126
  def range_value(self) -> Optional[Optional["scout_compute_api_Range"]]:
29153
29127
  return self._range_value
@@ -29191,6 +29165,8 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
29191
29165
  return visitor._enum_point(self.enum_point)
29192
29166
  if self._type == 'numericPoint' and self.numeric_point is not None:
29193
29167
  return visitor._numeric_point(self.numeric_point)
29168
+ if self._type == 'logPoint' and self.log_point is not None:
29169
+ return visitor._log_point(self.log_point)
29194
29170
  if self._type == 'rangeValue' and self.range_value is not None:
29195
29171
  return visitor._range_value(self.range_value)
29196
29172
  if self._type == 'frequencyDomain' and self.frequency_domain is not None:
@@ -29256,6 +29232,10 @@ class scout_compute_api_ComputeNodeResponseVisitor:
29256
29232
  def _numeric_point(self, numeric_point: Optional["scout_compute_api_NumericPoint"]) -> Any:
29257
29233
  pass
29258
29234
 
29235
+ @abstractmethod
29236
+ def _log_point(self, log_point: Optional["scout_compute_api_LogPoint"]) -> Any:
29237
+ pass
29238
+
29259
29239
  @abstractmethod
29260
29240
  def _range_value(self, range_value: Optional["scout_compute_api_Range"]) -> Any:
29261
29241
  pass
@@ -31475,6 +31455,29 @@ scout_compute_api_GeoTimeBucket.__qualname__ = "GeoTimeBucket"
31475
31455
  scout_compute_api_GeoTimeBucket.__module__ = "nominal_api.scout_compute_api"
31476
31456
 
31477
31457
 
31458
+ class scout_compute_api_HighPassConfiguration(ConjureBeanType):
31459
+
31460
+ @builtins.classmethod
31461
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
31462
+ return {
31463
+ 'cutoff_frequency': ConjureFieldDefinition('cutoffFrequency', scout_compute_api_DoubleConstant)
31464
+ }
31465
+
31466
+ __slots__: List[str] = ['_cutoff_frequency']
31467
+
31468
+ def __init__(self, cutoff_frequency: "scout_compute_api_DoubleConstant") -> None:
31469
+ self._cutoff_frequency = cutoff_frequency
31470
+
31471
+ @builtins.property
31472
+ def cutoff_frequency(self) -> "scout_compute_api_DoubleConstant":
31473
+ return self._cutoff_frequency
31474
+
31475
+
31476
+ scout_compute_api_HighPassConfiguration.__name__ = "HighPassConfiguration"
31477
+ scout_compute_api_HighPassConfiguration.__qualname__ = "HighPassConfiguration"
31478
+ scout_compute_api_HighPassConfiguration.__module__ = "nominal_api.scout_compute_api"
31479
+
31480
+
31478
31481
  class scout_compute_api_Histogram(ConjureUnionType):
31479
31482
  _numeric: Optional["scout_compute_api_NumericHistogramNode"] = None
31480
31483
  _enum: Optional["scout_compute_api_EnumHistogramNode"] = None
@@ -31913,190 +31916,30 @@ scout_compute_api_LatLongPoint.__qualname__ = "LatLongPoint"
31913
31916
  scout_compute_api_LatLongPoint.__module__ = "nominal_api.scout_compute_api"
31914
31917
 
31915
31918
 
31916
- class scout_compute_api_LogAssetChannel(ConjureBeanType):
31917
-
31918
- @builtins.classmethod
31919
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
31920
- return {
31921
- 'asset_rid': ConjureFieldDefinition('assetRid', scout_compute_api_StringConstant),
31922
- 'data_scope_name': ConjureFieldDefinition('dataScopeName', scout_compute_api_StringConstant),
31923
- 'channel': ConjureFieldDefinition('channel', scout_compute_api_StringConstant),
31924
- 'additional_filters': ConjureFieldDefinition('additionalFilters', Dict[str, scout_compute_api_StringConstant])
31925
- }
31926
-
31927
- __slots__: List[str] = ['_asset_rid', '_data_scope_name', '_channel', '_additional_filters']
31928
-
31929
- def __init__(self, additional_filters: Dict[str, "scout_compute_api_StringConstant"], asset_rid: "scout_compute_api_StringConstant", channel: "scout_compute_api_StringConstant", data_scope_name: "scout_compute_api_StringConstant") -> None:
31930
- self._asset_rid = asset_rid
31931
- self._data_scope_name = data_scope_name
31932
- self._channel = channel
31933
- self._additional_filters = additional_filters
31934
-
31935
- @builtins.property
31936
- def asset_rid(self) -> "scout_compute_api_StringConstant":
31937
- return self._asset_rid
31938
-
31939
- @builtins.property
31940
- def data_scope_name(self) -> "scout_compute_api_StringConstant":
31941
- """
31942
- Used to disambiguate when multiple data scopes within this asset contain channels with the same name.
31943
- """
31944
- return self._data_scope_name
31945
-
31946
- @builtins.property
31947
- def channel(self) -> "scout_compute_api_StringConstant":
31948
- return self._channel
31949
-
31950
- @builtins.property
31951
- def additional_filters(self) -> Dict[str, "scout_compute_api_StringConstant"]:
31952
- """
31953
- Filters by which to filter the log channel, in addition to tag filters defined for a given Asset data
31954
- scope. Throws on collisions with tag keys already defined for the given Asset data scope. Only returns
31955
- points that match both sets of filters.
31956
- """
31957
- return self._additional_filters
31958
-
31959
-
31960
- scout_compute_api_LogAssetChannel.__name__ = "LogAssetChannel"
31961
- scout_compute_api_LogAssetChannel.__qualname__ = "LogAssetChannel"
31962
- scout_compute_api_LogAssetChannel.__module__ = "nominal_api.scout_compute_api"
31963
-
31964
-
31965
- class scout_compute_api_LogChannelSeries(ConjureUnionType):
31966
- _data_source: Optional["scout_compute_api_LogDataSourceChannel"] = None
31967
- _asset: Optional["scout_compute_api_LogAssetChannel"] = None
31968
- _run: Optional["scout_compute_api_LogRunChannel"] = None
31969
-
31970
- @builtins.classmethod
31971
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
31972
- return {
31973
- 'data_source': ConjureFieldDefinition('dataSource', scout_compute_api_LogDataSourceChannel),
31974
- 'asset': ConjureFieldDefinition('asset', scout_compute_api_LogAssetChannel),
31975
- 'run': ConjureFieldDefinition('run', scout_compute_api_LogRunChannel)
31976
- }
31977
-
31978
- def __init__(
31979
- self,
31980
- data_source: Optional["scout_compute_api_LogDataSourceChannel"] = None,
31981
- asset: Optional["scout_compute_api_LogAssetChannel"] = None,
31982
- run: Optional["scout_compute_api_LogRunChannel"] = None,
31983
- type_of_union: Optional[str] = None
31984
- ) -> None:
31985
- if type_of_union is None:
31986
- if (data_source is not None) + (asset is not None) + (run is not None) != 1:
31987
- raise ValueError('a union must contain a single member')
31988
-
31989
- if data_source is not None:
31990
- self._data_source = data_source
31991
- self._type = 'dataSource'
31992
- if asset is not None:
31993
- self._asset = asset
31994
- self._type = 'asset'
31995
- if run is not None:
31996
- self._run = run
31997
- self._type = 'run'
31998
-
31999
- elif type_of_union == 'dataSource':
32000
- if data_source is None:
32001
- raise ValueError('a union value must not be None')
32002
- self._data_source = data_source
32003
- self._type = 'dataSource'
32004
- elif type_of_union == 'asset':
32005
- if asset is None:
32006
- raise ValueError('a union value must not be None')
32007
- self._asset = asset
32008
- self._type = 'asset'
32009
- elif type_of_union == 'run':
32010
- if run is None:
32011
- raise ValueError('a union value must not be None')
32012
- self._run = run
32013
- self._type = 'run'
32014
-
32015
- @builtins.property
32016
- def data_source(self) -> Optional["scout_compute_api_LogDataSourceChannel"]:
32017
- return self._data_source
32018
-
32019
- @builtins.property
32020
- def asset(self) -> Optional["scout_compute_api_LogAssetChannel"]:
32021
- return self._asset
32022
-
32023
- @builtins.property
32024
- def run(self) -> Optional["scout_compute_api_LogRunChannel"]:
32025
- return self._run
32026
-
32027
- def accept(self, visitor) -> Any:
32028
- if not isinstance(visitor, scout_compute_api_LogChannelSeriesVisitor):
32029
- raise ValueError('{} is not an instance of scout_compute_api_LogChannelSeriesVisitor'.format(visitor.__class__.__name__))
32030
- if self._type == 'dataSource' and self.data_source is not None:
32031
- return visitor._data_source(self.data_source)
32032
- if self._type == 'asset' and self.asset is not None:
32033
- return visitor._asset(self.asset)
32034
- if self._type == 'run' and self.run is not None:
32035
- return visitor._run(self.run)
32036
-
32037
-
32038
- scout_compute_api_LogChannelSeries.__name__ = "LogChannelSeries"
32039
- scout_compute_api_LogChannelSeries.__qualname__ = "LogChannelSeries"
32040
- scout_compute_api_LogChannelSeries.__module__ = "nominal_api.scout_compute_api"
32041
-
32042
-
32043
- class scout_compute_api_LogChannelSeriesVisitor:
32044
-
32045
- @abstractmethod
32046
- def _data_source(self, data_source: "scout_compute_api_LogDataSourceChannel") -> Any:
32047
- pass
32048
-
32049
- @abstractmethod
32050
- def _asset(self, asset: "scout_compute_api_LogAssetChannel") -> Any:
32051
- pass
32052
-
32053
- @abstractmethod
32054
- def _run(self, run: "scout_compute_api_LogRunChannel") -> Any:
32055
- pass
32056
-
32057
-
32058
- scout_compute_api_LogChannelSeriesVisitor.__name__ = "LogChannelSeriesVisitor"
32059
- scout_compute_api_LogChannelSeriesVisitor.__qualname__ = "LogChannelSeriesVisitor"
32060
- scout_compute_api_LogChannelSeriesVisitor.__module__ = "nominal_api.scout_compute_api"
32061
-
32062
-
32063
- class scout_compute_api_LogDataSourceChannel(ConjureBeanType):
31919
+ class scout_compute_api_LogArgFilterOperator(ConjureBeanType):
31920
+ """
31921
+ Outputs a new series where the log message in each point contains all of the given arg key-value pairs.
31922
+ """
32064
31923
 
32065
31924
  @builtins.classmethod
32066
31925
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
32067
31926
  return {
32068
- 'data_source_rid': ConjureFieldDefinition('dataSourceRid', scout_compute_api_StringConstant),
32069
- 'channel': ConjureFieldDefinition('channel', scout_compute_api_StringConstant),
32070
- 'filters': ConjureFieldDefinition('filters', Dict[str, scout_compute_api_StringConstant])
31927
+ 'args': ConjureFieldDefinition('args', Dict[str, scout_compute_api_StringConstant])
32071
31928
  }
32072
31929
 
32073
- __slots__: List[str] = ['_data_source_rid', '_channel', '_filters']
32074
-
32075
- def __init__(self, channel: "scout_compute_api_StringConstant", data_source_rid: "scout_compute_api_StringConstant", filters: Dict[str, "scout_compute_api_StringConstant"]) -> None:
32076
- self._data_source_rid = data_source_rid
32077
- self._channel = channel
32078
- self._filters = filters
32079
-
32080
- @builtins.property
32081
- def data_source_rid(self) -> "scout_compute_api_StringConstant":
32082
- return self._data_source_rid
31930
+ __slots__: List[str] = ['_args']
32083
31931
 
32084
- @builtins.property
32085
- def channel(self) -> "scout_compute_api_StringConstant":
32086
- return self._channel
31932
+ def __init__(self, args: Dict[str, "scout_compute_api_StringConstant"]) -> None:
31933
+ self._args = args
32087
31934
 
32088
31935
  @builtins.property
32089
- def filters(self) -> Dict[str, "scout_compute_api_StringConstant"]:
32090
- """
32091
- Filters by which to filter the log channel. Only returns points from the channel with matching values for
32092
- the provided keys.
32093
- """
32094
- return self._filters
31936
+ def args(self) -> Dict[str, "scout_compute_api_StringConstant"]:
31937
+ return self._args
32095
31938
 
32096
31939
 
32097
- scout_compute_api_LogDataSourceChannel.__name__ = "LogDataSourceChannel"
32098
- scout_compute_api_LogDataSourceChannel.__qualname__ = "LogDataSourceChannel"
32099
- scout_compute_api_LogDataSourceChannel.__module__ = "nominal_api.scout_compute_api"
31940
+ scout_compute_api_LogArgFilterOperator.__name__ = "LogArgFilterOperator"
31941
+ scout_compute_api_LogArgFilterOperator.__qualname__ = "LogArgFilterOperator"
31942
+ scout_compute_api_LogArgFilterOperator.__module__ = "nominal_api.scout_compute_api"
32100
31943
 
32101
31944
 
32102
31945
  class scout_compute_api_LogPlot(ConjureBeanType):
@@ -32105,12 +31948,12 @@ class scout_compute_api_LogPlot(ConjureBeanType):
32105
31948
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
32106
31949
  return {
32107
31950
  'timestamps': ConjureFieldDefinition('timestamps', List[api_Timestamp]),
32108
- 'values': ConjureFieldDefinition('values', List[str])
31951
+ 'values': ConjureFieldDefinition('values', List[scout_compute_api_LogValue])
32109
31952
  }
32110
31953
 
32111
31954
  __slots__: List[str] = ['_timestamps', '_values']
32112
31955
 
32113
- def __init__(self, timestamps: List["api_Timestamp"], values: List[str]) -> None:
31956
+ def __init__(self, timestamps: List["api_Timestamp"], values: List["scout_compute_api_LogValue"]) -> None:
32114
31957
  self._timestamps = timestamps
32115
31958
  self._values = values
32116
31959
 
@@ -32119,7 +31962,7 @@ class scout_compute_api_LogPlot(ConjureBeanType):
32119
31962
  return self._timestamps
32120
31963
 
32121
31964
  @builtins.property
32122
- def values(self) -> List[str]:
31965
+ def values(self) -> List["scout_compute_api_LogValue"]:
32123
31966
  return self._values
32124
31967
 
32125
31968
 
@@ -32128,91 +31971,65 @@ scout_compute_api_LogPlot.__qualname__ = "LogPlot"
32128
31971
  scout_compute_api_LogPlot.__module__ = "nominal_api.scout_compute_api"
32129
31972
 
32130
31973
 
32131
- class scout_compute_api_LogRegexFilterSeries(ConjureBeanType):
32132
- """
32133
- Outputs a new series where the log message in each point satisfies the given re2 regular expression filter.
32134
- Regular expression syntax: https://github.com/google/re2/wiki/Syntax.
32135
- """
31974
+ class scout_compute_api_LogPoint(ConjureBeanType):
32136
31975
 
32137
31976
  @builtins.classmethod
32138
31977
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
32139
31978
  return {
32140
- 'input': ConjureFieldDefinition('input', scout_compute_api_LogSeries),
32141
- 'regex': ConjureFieldDefinition('regex', scout_compute_api_StringConstant)
31979
+ 'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp),
31980
+ 'value': ConjureFieldDefinition('value', scout_compute_api_LogValue)
32142
31981
  }
32143
31982
 
32144
- __slots__: List[str] = ['_input', '_regex']
31983
+ __slots__: List[str] = ['_timestamp', '_value']
32145
31984
 
32146
- def __init__(self, input: "scout_compute_api_LogSeries", regex: "scout_compute_api_StringConstant") -> None:
32147
- self._input = input
32148
- self._regex = regex
31985
+ def __init__(self, timestamp: "api_Timestamp", value: "scout_compute_api_LogValue") -> None:
31986
+ self._timestamp = timestamp
31987
+ self._value = value
32149
31988
 
32150
31989
  @builtins.property
32151
- def input(self) -> "scout_compute_api_LogSeries":
32152
- return self._input
31990
+ def timestamp(self) -> "api_Timestamp":
31991
+ return self._timestamp
32153
31992
 
32154
31993
  @builtins.property
32155
- def regex(self) -> "scout_compute_api_StringConstant":
32156
- return self._regex
31994
+ def value(self) -> "scout_compute_api_LogValue":
31995
+ return self._value
32157
31996
 
32158
31997
 
32159
- scout_compute_api_LogRegexFilterSeries.__name__ = "LogRegexFilterSeries"
32160
- scout_compute_api_LogRegexFilterSeries.__qualname__ = "LogRegexFilterSeries"
32161
- scout_compute_api_LogRegexFilterSeries.__module__ = "nominal_api.scout_compute_api"
31998
+ scout_compute_api_LogPoint.__name__ = "LogPoint"
31999
+ scout_compute_api_LogPoint.__qualname__ = "LogPoint"
32000
+ scout_compute_api_LogPoint.__module__ = "nominal_api.scout_compute_api"
32162
32001
 
32163
32002
 
32164
- class scout_compute_api_LogRunChannel(ConjureBeanType):
32003
+ class scout_compute_api_LogRegexFilterOperator(ConjureBeanType):
32004
+ """
32005
+ Outputs a new series where the log message in each point satisfies the given re2 regular expression filter.
32006
+ Regular expression syntax: https://github.com/google/re2/wiki/Syntax.
32007
+ """
32165
32008
 
32166
32009
  @builtins.classmethod
32167
32010
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
32168
32011
  return {
32169
- 'run_rid': ConjureFieldDefinition('runRid', scout_compute_api_StringConstant),
32170
- 'data_scope_name': ConjureFieldDefinition('dataScopeName', scout_compute_api_StringConstant),
32171
- 'channel': ConjureFieldDefinition('channel', scout_compute_api_StringConstant),
32172
- 'additional_filters': ConjureFieldDefinition('additionalFilters', Dict[str, scout_compute_api_StringConstant])
32012
+ 'regex': ConjureFieldDefinition('regex', scout_compute_api_StringConstant)
32173
32013
  }
32174
32014
 
32175
- __slots__: List[str] = ['_run_rid', '_data_scope_name', '_channel', '_additional_filters']
32176
-
32177
- def __init__(self, additional_filters: Dict[str, "scout_compute_api_StringConstant"], channel: "scout_compute_api_StringConstant", data_scope_name: "scout_compute_api_StringConstant", run_rid: "scout_compute_api_StringConstant") -> None:
32178
- self._run_rid = run_rid
32179
- self._data_scope_name = data_scope_name
32180
- self._channel = channel
32181
- self._additional_filters = additional_filters
32015
+ __slots__: List[str] = ['_regex']
32182
32016
 
32183
- @builtins.property
32184
- def run_rid(self) -> "scout_compute_api_StringConstant":
32185
- return self._run_rid
32186
-
32187
- @builtins.property
32188
- def data_scope_name(self) -> "scout_compute_api_StringConstant":
32189
- """
32190
- Used to disambiguate when multiple data scopes within this run contain channels with the same name.
32191
- """
32192
- return self._data_scope_name
32193
-
32194
- @builtins.property
32195
- def channel(self) -> "scout_compute_api_StringConstant":
32196
- return self._channel
32017
+ def __init__(self, regex: "scout_compute_api_StringConstant") -> None:
32018
+ self._regex = regex
32197
32019
 
32198
32020
  @builtins.property
32199
- def additional_filters(self) -> Dict[str, "scout_compute_api_StringConstant"]:
32200
- """
32201
- Filters by which to filter the log channel, in addition to tag filters defined for a given Run data scope.
32202
- Throws on collisions with tag keys already defined for the given Run data scope. Only returns points that
32203
- match both sets of filters.
32204
- """
32205
- return self._additional_filters
32021
+ def regex(self) -> "scout_compute_api_StringConstant":
32022
+ return self._regex
32206
32023
 
32207
32024
 
32208
- scout_compute_api_LogRunChannel.__name__ = "LogRunChannel"
32209
- scout_compute_api_LogRunChannel.__qualname__ = "LogRunChannel"
32210
- scout_compute_api_LogRunChannel.__module__ = "nominal_api.scout_compute_api"
32025
+ scout_compute_api_LogRegexFilterOperator.__name__ = "LogRegexFilterOperator"
32026
+ scout_compute_api_LogRegexFilterOperator.__qualname__ = "LogRegexFilterOperator"
32027
+ scout_compute_api_LogRegexFilterOperator.__module__ = "nominal_api.scout_compute_api"
32211
32028
 
32212
32029
 
32213
32030
  class scout_compute_api_LogSeries(ConjureUnionType):
32214
32031
  _raw: Optional["scout_compute_api_Reference"] = None
32215
- _channel: Optional["scout_compute_api_LogChannelSeries"] = None
32032
+ _channel: Optional["scout_compute_api_ChannelSeries"] = None
32216
32033
  _time_range_filter: Optional["scout_compute_api_LogTimeRangeFilterSeries"] = None
32217
32034
  _union: Optional["scout_compute_api_LogUnionSeries"] = None
32218
32035
  _value_filter: Optional["scout_compute_api_LogValueFilterSeries"] = None
@@ -32221,7 +32038,7 @@ class scout_compute_api_LogSeries(ConjureUnionType):
32221
32038
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
32222
32039
  return {
32223
32040
  'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
32224
- 'channel': ConjureFieldDefinition('channel', scout_compute_api_LogChannelSeries),
32041
+ 'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
32225
32042
  'time_range_filter': ConjureFieldDefinition('timeRangeFilter', scout_compute_api_LogTimeRangeFilterSeries),
32226
32043
  'union': ConjureFieldDefinition('union', scout_compute_api_LogUnionSeries),
32227
32044
  'value_filter': ConjureFieldDefinition('valueFilter', scout_compute_api_LogValueFilterSeries)
@@ -32230,7 +32047,7 @@ class scout_compute_api_LogSeries(ConjureUnionType):
32230
32047
  def __init__(
32231
32048
  self,
32232
32049
  raw: Optional["scout_compute_api_Reference"] = None,
32233
- channel: Optional["scout_compute_api_LogChannelSeries"] = None,
32050
+ channel: Optional["scout_compute_api_ChannelSeries"] = None,
32234
32051
  time_range_filter: Optional["scout_compute_api_LogTimeRangeFilterSeries"] = None,
32235
32052
  union: Optional["scout_compute_api_LogUnionSeries"] = None,
32236
32053
  value_filter: Optional["scout_compute_api_LogValueFilterSeries"] = None,
@@ -32287,7 +32104,7 @@ class scout_compute_api_LogSeries(ConjureUnionType):
32287
32104
  return self._raw
32288
32105
 
32289
32106
  @builtins.property
32290
- def channel(self) -> Optional["scout_compute_api_LogChannelSeries"]:
32107
+ def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
32291
32108
  return self._channel
32292
32109
 
32293
32110
  @builtins.property
@@ -32329,7 +32146,7 @@ class scout_compute_api_LogSeriesVisitor:
32329
32146
  pass
32330
32147
 
32331
32148
  @abstractmethod
32332
- def _channel(self, channel: "scout_compute_api_LogChannelSeries") -> Any:
32149
+ def _channel(self, channel: "scout_compute_api_ChannelSeries") -> Any:
32333
32150
  pass
32334
32151
 
32335
32152
  @abstractmethod
@@ -32446,28 +32263,68 @@ scout_compute_api_LogUnionSeries.__qualname__ = "LogUnionSeries"
32446
32263
  scout_compute_api_LogUnionSeries.__module__ = "nominal_api.scout_compute_api"
32447
32264
 
32448
32265
 
32449
- class scout_compute_api_LogValueFilterSeries(ConjureUnionType):
32450
- _regex_filter: Optional["scout_compute_api_LogRegexFilterSeries"] = None
32266
+ class scout_compute_api_LogValue(ConjureBeanType):
32267
+
32268
+ @builtins.classmethod
32269
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
32270
+ return {
32271
+ 'message': ConjureFieldDefinition('message', str),
32272
+ 'args': ConjureFieldDefinition('args', Dict[str, str])
32273
+ }
32274
+
32275
+ __slots__: List[str] = ['_message', '_args']
32276
+
32277
+ def __init__(self, args: Dict[str, str], message: str) -> None:
32278
+ self._message = message
32279
+ self._args = args
32280
+
32281
+ @builtins.property
32282
+ def message(self) -> str:
32283
+ return self._message
32284
+
32285
+ @builtins.property
32286
+ def args(self) -> Dict[str, str]:
32287
+ return self._args
32288
+
32289
+
32290
+ scout_compute_api_LogValue.__name__ = "LogValue"
32291
+ scout_compute_api_LogValue.__qualname__ = "LogValue"
32292
+ scout_compute_api_LogValue.__module__ = "nominal_api.scout_compute_api"
32293
+
32294
+
32295
+ class scout_compute_api_LogValueFilterOperator(ConjureUnionType):
32296
+ _arg_filter: Optional["scout_compute_api_LogArgFilterOperator"] = None
32297
+ _regex_filter: Optional["scout_compute_api_LogRegexFilterOperator"] = None
32451
32298
 
32452
32299
  @builtins.classmethod
32453
32300
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
32454
32301
  return {
32455
- 'regex_filter': ConjureFieldDefinition('regexFilter', scout_compute_api_LogRegexFilterSeries)
32302
+ 'arg_filter': ConjureFieldDefinition('argFilter', scout_compute_api_LogArgFilterOperator),
32303
+ 'regex_filter': ConjureFieldDefinition('regexFilter', scout_compute_api_LogRegexFilterOperator)
32456
32304
  }
32457
32305
 
32458
32306
  def __init__(
32459
32307
  self,
32460
- regex_filter: Optional["scout_compute_api_LogRegexFilterSeries"] = None,
32308
+ arg_filter: Optional["scout_compute_api_LogArgFilterOperator"] = None,
32309
+ regex_filter: Optional["scout_compute_api_LogRegexFilterOperator"] = None,
32461
32310
  type_of_union: Optional[str] = None
32462
32311
  ) -> None:
32463
32312
  if type_of_union is None:
32464
- if (regex_filter is not None) != 1:
32313
+ if (arg_filter is not None) + (regex_filter is not None) != 1:
32465
32314
  raise ValueError('a union must contain a single member')
32466
32315
 
32316
+ if arg_filter is not None:
32317
+ self._arg_filter = arg_filter
32318
+ self._type = 'argFilter'
32467
32319
  if regex_filter is not None:
32468
32320
  self._regex_filter = regex_filter
32469
32321
  self._type = 'regexFilter'
32470
32322
 
32323
+ elif type_of_union == 'argFilter':
32324
+ if arg_filter is None:
32325
+ raise ValueError('a union value must not be None')
32326
+ self._arg_filter = arg_filter
32327
+ self._type = 'argFilter'
32471
32328
  elif type_of_union == 'regexFilter':
32472
32329
  if regex_filter is None:
32473
32330
  raise ValueError('a union value must not be None')
@@ -32475,31 +32332,93 @@ class scout_compute_api_LogValueFilterSeries(ConjureUnionType):
32475
32332
  self._type = 'regexFilter'
32476
32333
 
32477
32334
  @builtins.property
32478
- def regex_filter(self) -> Optional["scout_compute_api_LogRegexFilterSeries"]:
32335
+ def arg_filter(self) -> Optional["scout_compute_api_LogArgFilterOperator"]:
32336
+ return self._arg_filter
32337
+
32338
+ @builtins.property
32339
+ def regex_filter(self) -> Optional["scout_compute_api_LogRegexFilterOperator"]:
32479
32340
  return self._regex_filter
32480
32341
 
32481
32342
  def accept(self, visitor) -> Any:
32482
- if not isinstance(visitor, scout_compute_api_LogValueFilterSeriesVisitor):
32483
- raise ValueError('{} is not an instance of scout_compute_api_LogValueFilterSeriesVisitor'.format(visitor.__class__.__name__))
32343
+ if not isinstance(visitor, scout_compute_api_LogValueFilterOperatorVisitor):
32344
+ raise ValueError('{} is not an instance of scout_compute_api_LogValueFilterOperatorVisitor'.format(visitor.__class__.__name__))
32345
+ if self._type == 'argFilter' and self.arg_filter is not None:
32346
+ return visitor._arg_filter(self.arg_filter)
32484
32347
  if self._type == 'regexFilter' and self.regex_filter is not None:
32485
32348
  return visitor._regex_filter(self.regex_filter)
32486
32349
 
32487
32350
 
32351
+ scout_compute_api_LogValueFilterOperator.__name__ = "LogValueFilterOperator"
32352
+ scout_compute_api_LogValueFilterOperator.__qualname__ = "LogValueFilterOperator"
32353
+ scout_compute_api_LogValueFilterOperator.__module__ = "nominal_api.scout_compute_api"
32354
+
32355
+
32356
+ class scout_compute_api_LogValueFilterOperatorVisitor:
32357
+
32358
+ @abstractmethod
32359
+ def _arg_filter(self, arg_filter: "scout_compute_api_LogArgFilterOperator") -> Any:
32360
+ pass
32361
+
32362
+ @abstractmethod
32363
+ def _regex_filter(self, regex_filter: "scout_compute_api_LogRegexFilterOperator") -> Any:
32364
+ pass
32365
+
32366
+
32367
+ scout_compute_api_LogValueFilterOperatorVisitor.__name__ = "LogValueFilterOperatorVisitor"
32368
+ scout_compute_api_LogValueFilterOperatorVisitor.__qualname__ = "LogValueFilterOperatorVisitor"
32369
+ scout_compute_api_LogValueFilterOperatorVisitor.__module__ = "nominal_api.scout_compute_api"
32370
+
32371
+
32372
+ class scout_compute_api_LogValueFilterSeries(ConjureBeanType):
32373
+
32374
+ @builtins.classmethod
32375
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
32376
+ return {
32377
+ 'input': ConjureFieldDefinition('input', scout_compute_api_LogSeries),
32378
+ 'operator': ConjureFieldDefinition('operator', scout_compute_api_LogValueFilterOperator)
32379
+ }
32380
+
32381
+ __slots__: List[str] = ['_input', '_operator']
32382
+
32383
+ def __init__(self, input: "scout_compute_api_LogSeries", operator: "scout_compute_api_LogValueFilterOperator") -> None:
32384
+ self._input = input
32385
+ self._operator = operator
32386
+
32387
+ @builtins.property
32388
+ def input(self) -> "scout_compute_api_LogSeries":
32389
+ return self._input
32390
+
32391
+ @builtins.property
32392
+ def operator(self) -> "scout_compute_api_LogValueFilterOperator":
32393
+ return self._operator
32394
+
32395
+
32488
32396
  scout_compute_api_LogValueFilterSeries.__name__ = "LogValueFilterSeries"
32489
32397
  scout_compute_api_LogValueFilterSeries.__qualname__ = "LogValueFilterSeries"
32490
32398
  scout_compute_api_LogValueFilterSeries.__module__ = "nominal_api.scout_compute_api"
32491
32399
 
32492
32400
 
32493
- class scout_compute_api_LogValueFilterSeriesVisitor:
32401
+ class scout_compute_api_LowPassConfiguration(ConjureBeanType):
32494
32402
 
32495
- @abstractmethod
32496
- def _regex_filter(self, regex_filter: "scout_compute_api_LogRegexFilterSeries") -> Any:
32497
- pass
32403
+ @builtins.classmethod
32404
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
32405
+ return {
32406
+ 'cutoff_frequency': ConjureFieldDefinition('cutoffFrequency', scout_compute_api_DoubleConstant)
32407
+ }
32408
+
32409
+ __slots__: List[str] = ['_cutoff_frequency']
32410
+
32411
+ def __init__(self, cutoff_frequency: "scout_compute_api_DoubleConstant") -> None:
32412
+ self._cutoff_frequency = cutoff_frequency
32413
+
32414
+ @builtins.property
32415
+ def cutoff_frequency(self) -> "scout_compute_api_DoubleConstant":
32416
+ return self._cutoff_frequency
32498
32417
 
32499
32418
 
32500
- scout_compute_api_LogValueFilterSeriesVisitor.__name__ = "LogValueFilterSeriesVisitor"
32501
- scout_compute_api_LogValueFilterSeriesVisitor.__qualname__ = "LogValueFilterSeriesVisitor"
32502
- scout_compute_api_LogValueFilterSeriesVisitor.__module__ = "nominal_api.scout_compute_api"
32419
+ scout_compute_api_LowPassConfiguration.__name__ = "LowPassConfiguration"
32420
+ scout_compute_api_LowPassConfiguration.__qualname__ = "LowPassConfiguration"
32421
+ scout_compute_api_LowPassConfiguration.__module__ = "nominal_api.scout_compute_api"
32503
32422
 
32504
32423
 
32505
32424
  class scout_compute_api_MaxSeries(ConjureBeanType):
@@ -33312,6 +33231,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33312
33231
  _channel: Optional["scout_compute_api_ChannelSeries"] = None
33313
33232
  _resample: Optional["scout_compute_api_NumericResampleSeries"] = None
33314
33233
  _rolling_operation: Optional["scout_compute_api_RollingOperationSeries"] = None
33234
+ _signal_filter: Optional["scout_compute_api_SignalFilterSeries"] = None
33315
33235
  _sum: Optional["scout_compute_api_SumSeries"] = None
33316
33236
  _scale: Optional["scout_compute_api_ScaleSeries"] = None
33317
33237
  _time_difference: Optional["scout_compute_api_TimeDifferenceSeries"] = None
@@ -33344,6 +33264,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33344
33264
  'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
33345
33265
  'resample': ConjureFieldDefinition('resample', scout_compute_api_NumericResampleSeries),
33346
33266
  'rolling_operation': ConjureFieldDefinition('rollingOperation', scout_compute_api_RollingOperationSeries),
33267
+ 'signal_filter': ConjureFieldDefinition('signalFilter', scout_compute_api_SignalFilterSeries),
33347
33268
  'sum': ConjureFieldDefinition('sum', scout_compute_api_SumSeries),
33348
33269
  'scale': ConjureFieldDefinition('scale', scout_compute_api_ScaleSeries),
33349
33270
  'time_difference': ConjureFieldDefinition('timeDifference', scout_compute_api_TimeDifferenceSeries),
@@ -33376,6 +33297,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33376
33297
  channel: Optional["scout_compute_api_ChannelSeries"] = None,
33377
33298
  resample: Optional["scout_compute_api_NumericResampleSeries"] = None,
33378
33299
  rolling_operation: Optional["scout_compute_api_RollingOperationSeries"] = None,
33300
+ signal_filter: Optional["scout_compute_api_SignalFilterSeries"] = None,
33379
33301
  sum: Optional["scout_compute_api_SumSeries"] = None,
33380
33302
  scale: Optional["scout_compute_api_ScaleSeries"] = None,
33381
33303
  time_difference: Optional["scout_compute_api_TimeDifferenceSeries"] = None,
@@ -33391,7 +33313,7 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33391
33313
  type_of_union: Optional[str] = None
33392
33314
  ) -> None:
33393
33315
  if type_of_union is None:
33394
- if (aggregate is not None) + (arithmetic is not None) + (bit_operation is not None) + (cumulative_sum is not None) + (derivative is not None) + (function is not None) + (integral is not None) + (max is not None) + (mean is not None) + (min is not None) + (offset is not None) + (product is not None) + (raw is not None) + (channel is not None) + (resample is not None) + (rolling_operation is not None) + (sum is not None) + (scale is not None) + (time_difference is not None) + (time_range_filter is not None) + (time_shift is not None) + (unary_arithmetic is not None) + (binary_arithmetic is not None) + (union is not None) + (unit_conversion is not None) + (value_difference is not None) + (filter_transformation is not None) + (threshold_filter is not None) != 1:
33316
+ if (aggregate is not None) + (arithmetic is not None) + (bit_operation is not None) + (cumulative_sum is not None) + (derivative is not None) + (function is not None) + (integral is not None) + (max is not None) + (mean is not None) + (min is not None) + (offset is not None) + (product is not None) + (raw is not None) + (channel is not None) + (resample is not None) + (rolling_operation is not None) + (signal_filter is not None) + (sum is not None) + (scale is not None) + (time_difference is not None) + (time_range_filter is not None) + (time_shift is not None) + (unary_arithmetic is not None) + (binary_arithmetic is not None) + (union is not None) + (unit_conversion is not None) + (value_difference is not None) + (filter_transformation is not None) + (threshold_filter is not None) != 1:
33395
33317
  raise ValueError('a union must contain a single member')
33396
33318
 
33397
33319
  if aggregate is not None:
@@ -33442,6 +33364,9 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33442
33364
  if rolling_operation is not None:
33443
33365
  self._rolling_operation = rolling_operation
33444
33366
  self._type = 'rollingOperation'
33367
+ if signal_filter is not None:
33368
+ self._signal_filter = signal_filter
33369
+ self._type = 'signalFilter'
33445
33370
  if sum is not None:
33446
33371
  self._sum = sum
33447
33372
  self._type = 'sum'
@@ -33559,6 +33484,11 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33559
33484
  raise ValueError('a union value must not be None')
33560
33485
  self._rolling_operation = rolling_operation
33561
33486
  self._type = 'rollingOperation'
33487
+ elif type_of_union == 'signalFilter':
33488
+ if signal_filter is None:
33489
+ raise ValueError('a union value must not be None')
33490
+ self._signal_filter = signal_filter
33491
+ self._type = 'signalFilter'
33562
33492
  elif type_of_union == 'sum':
33563
33493
  if sum is None:
33564
33494
  raise ValueError('a union value must not be None')
@@ -33684,6 +33614,10 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33684
33614
  def rolling_operation(self) -> Optional["scout_compute_api_RollingOperationSeries"]:
33685
33615
  return self._rolling_operation
33686
33616
 
33617
+ @builtins.property
33618
+ def signal_filter(self) -> Optional["scout_compute_api_SignalFilterSeries"]:
33619
+ return self._signal_filter
33620
+
33687
33621
  @builtins.property
33688
33622
  def sum(self) -> Optional["scout_compute_api_SumSeries"]:
33689
33623
  return self._sum
@@ -33767,6 +33701,8 @@ class scout_compute_api_NumericSeries(ConjureUnionType):
33767
33701
  return visitor._resample(self.resample)
33768
33702
  if self._type == 'rollingOperation' and self.rolling_operation is not None:
33769
33703
  return visitor._rolling_operation(self.rolling_operation)
33704
+ if self._type == 'signalFilter' and self.signal_filter is not None:
33705
+ return visitor._signal_filter(self.signal_filter)
33770
33706
  if self._type == 'sum' and self.sum is not None:
33771
33707
  return visitor._sum(self.sum)
33772
33708
  if self._type == 'scale' and self.scale is not None:
@@ -33864,6 +33800,10 @@ class scout_compute_api_NumericSeriesVisitor:
33864
33800
  def _rolling_operation(self, rolling_operation: "scout_compute_api_RollingOperationSeries") -> Any:
33865
33801
  pass
33866
33802
 
33803
+ @abstractmethod
33804
+ def _signal_filter(self, signal_filter: "scout_compute_api_SignalFilterSeries") -> Any:
33805
+ pass
33806
+
33867
33807
  @abstractmethod
33868
33808
  def _sum(self, sum: "scout_compute_api_SumSeries") -> Any:
33869
33809
  pass
@@ -36226,6 +36166,180 @@ scout_compute_api_SetNegativeValuesToZero.__qualname__ = "SetNegativeValuesToZer
36226
36166
  scout_compute_api_SetNegativeValuesToZero.__module__ = "nominal_api.scout_compute_api"
36227
36167
 
36228
36168
 
36169
+ class scout_compute_api_SignalFilterConfiguration(ConjureUnionType):
36170
+ _low_pass: Optional["scout_compute_api_LowPassConfiguration"] = None
36171
+ _high_pass: Optional["scout_compute_api_HighPassConfiguration"] = None
36172
+ _band_pass: Optional["scout_compute_api_BandPassConfiguration"] = None
36173
+ _band_stop: Optional["scout_compute_api_BandStopConfiguration"] = None
36174
+
36175
+ @builtins.classmethod
36176
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
36177
+ return {
36178
+ 'low_pass': ConjureFieldDefinition('lowPass', scout_compute_api_LowPassConfiguration),
36179
+ 'high_pass': ConjureFieldDefinition('highPass', scout_compute_api_HighPassConfiguration),
36180
+ 'band_pass': ConjureFieldDefinition('bandPass', scout_compute_api_BandPassConfiguration),
36181
+ 'band_stop': ConjureFieldDefinition('bandStop', scout_compute_api_BandStopConfiguration)
36182
+ }
36183
+
36184
+ def __init__(
36185
+ self,
36186
+ low_pass: Optional["scout_compute_api_LowPassConfiguration"] = None,
36187
+ high_pass: Optional["scout_compute_api_HighPassConfiguration"] = None,
36188
+ band_pass: Optional["scout_compute_api_BandPassConfiguration"] = None,
36189
+ band_stop: Optional["scout_compute_api_BandStopConfiguration"] = None,
36190
+ type_of_union: Optional[str] = None
36191
+ ) -> None:
36192
+ if type_of_union is None:
36193
+ if (low_pass is not None) + (high_pass is not None) + (band_pass is not None) + (band_stop is not None) != 1:
36194
+ raise ValueError('a union must contain a single member')
36195
+
36196
+ if low_pass is not None:
36197
+ self._low_pass = low_pass
36198
+ self._type = 'lowPass'
36199
+ if high_pass is not None:
36200
+ self._high_pass = high_pass
36201
+ self._type = 'highPass'
36202
+ if band_pass is not None:
36203
+ self._band_pass = band_pass
36204
+ self._type = 'bandPass'
36205
+ if band_stop is not None:
36206
+ self._band_stop = band_stop
36207
+ self._type = 'bandStop'
36208
+
36209
+ elif type_of_union == 'lowPass':
36210
+ if low_pass is None:
36211
+ raise ValueError('a union value must not be None')
36212
+ self._low_pass = low_pass
36213
+ self._type = 'lowPass'
36214
+ elif type_of_union == 'highPass':
36215
+ if high_pass is None:
36216
+ raise ValueError('a union value must not be None')
36217
+ self._high_pass = high_pass
36218
+ self._type = 'highPass'
36219
+ elif type_of_union == 'bandPass':
36220
+ if band_pass is None:
36221
+ raise ValueError('a union value must not be None')
36222
+ self._band_pass = band_pass
36223
+ self._type = 'bandPass'
36224
+ elif type_of_union == 'bandStop':
36225
+ if band_stop is None:
36226
+ raise ValueError('a union value must not be None')
36227
+ self._band_stop = band_stop
36228
+ self._type = 'bandStop'
36229
+
36230
+ @builtins.property
36231
+ def low_pass(self) -> Optional["scout_compute_api_LowPassConfiguration"]:
36232
+ return self._low_pass
36233
+
36234
+ @builtins.property
36235
+ def high_pass(self) -> Optional["scout_compute_api_HighPassConfiguration"]:
36236
+ return self._high_pass
36237
+
36238
+ @builtins.property
36239
+ def band_pass(self) -> Optional["scout_compute_api_BandPassConfiguration"]:
36240
+ return self._band_pass
36241
+
36242
+ @builtins.property
36243
+ def band_stop(self) -> Optional["scout_compute_api_BandStopConfiguration"]:
36244
+ return self._band_stop
36245
+
36246
+ def accept(self, visitor) -> Any:
36247
+ if not isinstance(visitor, scout_compute_api_SignalFilterConfigurationVisitor):
36248
+ raise ValueError('{} is not an instance of scout_compute_api_SignalFilterConfigurationVisitor'.format(visitor.__class__.__name__))
36249
+ if self._type == 'lowPass' and self.low_pass is not None:
36250
+ return visitor._low_pass(self.low_pass)
36251
+ if self._type == 'highPass' and self.high_pass is not None:
36252
+ return visitor._high_pass(self.high_pass)
36253
+ if self._type == 'bandPass' and self.band_pass is not None:
36254
+ return visitor._band_pass(self.band_pass)
36255
+ if self._type == 'bandStop' and self.band_stop is not None:
36256
+ return visitor._band_stop(self.band_stop)
36257
+
36258
+
36259
+ scout_compute_api_SignalFilterConfiguration.__name__ = "SignalFilterConfiguration"
36260
+ scout_compute_api_SignalFilterConfiguration.__qualname__ = "SignalFilterConfiguration"
36261
+ scout_compute_api_SignalFilterConfiguration.__module__ = "nominal_api.scout_compute_api"
36262
+
36263
+
36264
+ class scout_compute_api_SignalFilterConfigurationVisitor:
36265
+
36266
+ @abstractmethod
36267
+ def _low_pass(self, low_pass: "scout_compute_api_LowPassConfiguration") -> Any:
36268
+ pass
36269
+
36270
+ @abstractmethod
36271
+ def _high_pass(self, high_pass: "scout_compute_api_HighPassConfiguration") -> Any:
36272
+ pass
36273
+
36274
+ @abstractmethod
36275
+ def _band_pass(self, band_pass: "scout_compute_api_BandPassConfiguration") -> Any:
36276
+ pass
36277
+
36278
+ @abstractmethod
36279
+ def _band_stop(self, band_stop: "scout_compute_api_BandStopConfiguration") -> Any:
36280
+ pass
36281
+
36282
+
36283
+ scout_compute_api_SignalFilterConfigurationVisitor.__name__ = "SignalFilterConfigurationVisitor"
36284
+ scout_compute_api_SignalFilterConfigurationVisitor.__qualname__ = "SignalFilterConfigurationVisitor"
36285
+ scout_compute_api_SignalFilterConfigurationVisitor.__module__ = "nominal_api.scout_compute_api"
36286
+
36287
+
36288
+ class scout_compute_api_SignalFilterSeries(ConjureBeanType):
36289
+ """
36290
+ Applies IIR-based signal filtering to input series. Includes low-pass, high-pass, band-pass, and band-stop
36291
+ filters. Currently supports variable-order bidirectional Butterworth filters, with fixed-size padding based
36292
+ on SciPy output.
36293
+ """
36294
+
36295
+ @builtins.classmethod
36296
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
36297
+ return {
36298
+ 'input': ConjureFieldDefinition('input', scout_compute_api_NumericSeries),
36299
+ 'signal_filter_configuration': ConjureFieldDefinition('signalFilterConfiguration', scout_compute_api_SignalFilterConfiguration),
36300
+ 'order': ConjureFieldDefinition('order', scout_compute_api_IntegerConstant),
36301
+ 'sampling_frequency': ConjureFieldDefinition('samplingFrequency', OptionalTypeWrapper[scout_compute_api_DoubleConstant])
36302
+ }
36303
+
36304
+ __slots__: List[str] = ['_input', '_signal_filter_configuration', '_order', '_sampling_frequency']
36305
+
36306
+ def __init__(self, input: "scout_compute_api_NumericSeries", order: "scout_compute_api_IntegerConstant", signal_filter_configuration: "scout_compute_api_SignalFilterConfiguration", sampling_frequency: Optional["scout_compute_api_DoubleConstant"] = None) -> None:
36307
+ self._input = input
36308
+ self._signal_filter_configuration = signal_filter_configuration
36309
+ self._order = order
36310
+ self._sampling_frequency = sampling_frequency
36311
+
36312
+ @builtins.property
36313
+ def input(self) -> "scout_compute_api_NumericSeries":
36314
+ return self._input
36315
+
36316
+ @builtins.property
36317
+ def signal_filter_configuration(self) -> "scout_compute_api_SignalFilterConfiguration":
36318
+ """
36319
+ Filter type and cutoff frequencies.
36320
+ """
36321
+ return self._signal_filter_configuration
36322
+
36323
+ @builtins.property
36324
+ def order(self) -> "scout_compute_api_IntegerConstant":
36325
+ """
36326
+ Order of filter. Must be a positive integer, and is effectively doubled for bidirectional filters.
36327
+ """
36328
+ return self._order
36329
+
36330
+ @builtins.property
36331
+ def sampling_frequency(self) -> Optional["scout_compute_api_DoubleConstant"]:
36332
+ """
36333
+ The sampling frequency of the input series. Used to calculate normalized frequency for cutoff frequencies.
36334
+ """
36335
+ return self._sampling_frequency
36336
+
36337
+
36338
+ scout_compute_api_SignalFilterSeries.__name__ = "SignalFilterSeries"
36339
+ scout_compute_api_SignalFilterSeries.__qualname__ = "SignalFilterSeries"
36340
+ scout_compute_api_SignalFilterSeries.__module__ = "nominal_api.scout_compute_api"
36341
+
36342
+
36229
36343
  class scout_compute_api_StabilityDetectionRanges(ConjureBeanType):
36230
36344
  """
36231
36345
  Outputs a set of ranges where the input series is stable. For each point, the min and max are calculated over
@@ -40681,6 +40795,64 @@ scout_compute_resolved_api_ArithmeticSeriesNode.__qualname__ = "ArithmeticSeries
40681
40795
  scout_compute_resolved_api_ArithmeticSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
40682
40796
 
40683
40797
 
40798
+ class scout_compute_resolved_api_BandPassConfiguration(ConjureBeanType):
40799
+
40800
+ @builtins.classmethod
40801
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40802
+ return {
40803
+ 'low_passband_frequency': ConjureFieldDefinition('lowPassbandFrequency', float),
40804
+ 'high_passband_frequency': ConjureFieldDefinition('highPassbandFrequency', float)
40805
+ }
40806
+
40807
+ __slots__: List[str] = ['_low_passband_frequency', '_high_passband_frequency']
40808
+
40809
+ def __init__(self, high_passband_frequency: float, low_passband_frequency: float) -> None:
40810
+ self._low_passband_frequency = low_passband_frequency
40811
+ self._high_passband_frequency = high_passband_frequency
40812
+
40813
+ @builtins.property
40814
+ def low_passband_frequency(self) -> float:
40815
+ return self._low_passband_frequency
40816
+
40817
+ @builtins.property
40818
+ def high_passband_frequency(self) -> float:
40819
+ return self._high_passband_frequency
40820
+
40821
+
40822
+ scout_compute_resolved_api_BandPassConfiguration.__name__ = "BandPassConfiguration"
40823
+ scout_compute_resolved_api_BandPassConfiguration.__qualname__ = "BandPassConfiguration"
40824
+ scout_compute_resolved_api_BandPassConfiguration.__module__ = "nominal_api.scout_compute_resolved_api"
40825
+
40826
+
40827
+ class scout_compute_resolved_api_BandStopConfiguration(ConjureBeanType):
40828
+
40829
+ @builtins.classmethod
40830
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40831
+ return {
40832
+ 'low_stopband_frequency': ConjureFieldDefinition('lowStopbandFrequency', float),
40833
+ 'high_stopband_frequency': ConjureFieldDefinition('highStopbandFrequency', float)
40834
+ }
40835
+
40836
+ __slots__: List[str] = ['_low_stopband_frequency', '_high_stopband_frequency']
40837
+
40838
+ def __init__(self, high_stopband_frequency: float, low_stopband_frequency: float) -> None:
40839
+ self._low_stopband_frequency = low_stopband_frequency
40840
+ self._high_stopband_frequency = high_stopband_frequency
40841
+
40842
+ @builtins.property
40843
+ def low_stopband_frequency(self) -> float:
40844
+ return self._low_stopband_frequency
40845
+
40846
+ @builtins.property
40847
+ def high_stopband_frequency(self) -> float:
40848
+ return self._high_stopband_frequency
40849
+
40850
+
40851
+ scout_compute_resolved_api_BandStopConfiguration.__name__ = "BandStopConfiguration"
40852
+ scout_compute_resolved_api_BandStopConfiguration.__qualname__ = "BandStopConfiguration"
40853
+ scout_compute_resolved_api_BandStopConfiguration.__module__ = "nominal_api.scout_compute_resolved_api"
40854
+
40855
+
40684
40856
  class scout_compute_resolved_api_BinaryArithmeticSeriesNode(ConjureBeanType):
40685
40857
 
40686
40858
  @builtins.classmethod
@@ -41644,6 +41816,29 @@ scout_compute_resolved_api_GeoNodeTemporalSummary.__qualname__ = "GeoNodeTempora
41644
41816
  scout_compute_resolved_api_GeoNodeTemporalSummary.__module__ = "nominal_api.scout_compute_resolved_api"
41645
41817
 
41646
41818
 
41819
+ class scout_compute_resolved_api_HighPassConfiguration(ConjureBeanType):
41820
+
41821
+ @builtins.classmethod
41822
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
41823
+ return {
41824
+ 'cutoff_frequency': ConjureFieldDefinition('cutoffFrequency', float)
41825
+ }
41826
+
41827
+ __slots__: List[str] = ['_cutoff_frequency']
41828
+
41829
+ def __init__(self, cutoff_frequency: float) -> None:
41830
+ self._cutoff_frequency = cutoff_frequency
41831
+
41832
+ @builtins.property
41833
+ def cutoff_frequency(self) -> float:
41834
+ return self._cutoff_frequency
41835
+
41836
+
41837
+ scout_compute_resolved_api_HighPassConfiguration.__name__ = "HighPassConfiguration"
41838
+ scout_compute_resolved_api_HighPassConfiguration.__qualname__ = "HighPassConfiguration"
41839
+ scout_compute_resolved_api_HighPassConfiguration.__module__ = "nominal_api.scout_compute_resolved_api"
41840
+
41841
+
41647
41842
  class scout_compute_resolved_api_HistogramNode(ConjureUnionType):
41648
41843
  _numeric_histogram: Optional["scout_compute_resolved_api_NumericHistogramNode"] = None
41649
41844
  _enum_histogram: Optional["scout_compute_resolved_api_EnumHistogramNode"] = None
@@ -41899,6 +42094,29 @@ scout_compute_resolved_api_LatLongGeoNode.__qualname__ = "LatLongGeoNode"
41899
42094
  scout_compute_resolved_api_LatLongGeoNode.__module__ = "nominal_api.scout_compute_resolved_api"
41900
42095
 
41901
42096
 
42097
+ class scout_compute_resolved_api_LowPassConfiguration(ConjureBeanType):
42098
+
42099
+ @builtins.classmethod
42100
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
42101
+ return {
42102
+ 'cutoff_frequency': ConjureFieldDefinition('cutoffFrequency', float)
42103
+ }
42104
+
42105
+ __slots__: List[str] = ['_cutoff_frequency']
42106
+
42107
+ def __init__(self, cutoff_frequency: float) -> None:
42108
+ self._cutoff_frequency = cutoff_frequency
42109
+
42110
+ @builtins.property
42111
+ def cutoff_frequency(self) -> float:
42112
+ return self._cutoff_frequency
42113
+
42114
+
42115
+ scout_compute_resolved_api_LowPassConfiguration.__name__ = "LowPassConfiguration"
42116
+ scout_compute_resolved_api_LowPassConfiguration.__qualname__ = "LowPassConfiguration"
42117
+ scout_compute_resolved_api_LowPassConfiguration.__module__ = "nominal_api.scout_compute_resolved_api"
42118
+
42119
+
41902
42120
  class scout_compute_resolved_api_MaxSeriesNode(ConjureBeanType):
41903
42121
 
41904
42122
  @builtins.classmethod
@@ -42267,6 +42485,7 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42267
42485
  _resample: Optional["scout_compute_resolved_api_NumericResampleSeriesNode"] = None
42268
42486
  _rolling_operation: Optional["scout_compute_resolved_api_RollingOperationSeriesNode"] = None
42269
42487
  _aggregate: Optional["scout_compute_resolved_api_AggregateNumericSeriesNode"] = None
42488
+ _signal_filter: Optional["scout_compute_resolved_api_SignalFilterSeriesNode"] = None
42270
42489
  _sum: Optional["scout_compute_resolved_api_SumSeriesNode"] = None
42271
42490
  _scale: Optional["scout_compute_resolved_api_ScaleSeriesNode"] = None
42272
42491
  _time_difference: Optional["scout_compute_resolved_api_TimeDifferenceSeriesNode"] = None
@@ -42296,6 +42515,7 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42296
42515
  'resample': ConjureFieldDefinition('resample', scout_compute_resolved_api_NumericResampleSeriesNode),
42297
42516
  'rolling_operation': ConjureFieldDefinition('rollingOperation', scout_compute_resolved_api_RollingOperationSeriesNode),
42298
42517
  'aggregate': ConjureFieldDefinition('aggregate', scout_compute_resolved_api_AggregateNumericSeriesNode),
42518
+ 'signal_filter': ConjureFieldDefinition('signalFilter', scout_compute_resolved_api_SignalFilterSeriesNode),
42299
42519
  'sum': ConjureFieldDefinition('sum', scout_compute_resolved_api_SumSeriesNode),
42300
42520
  'scale': ConjureFieldDefinition('scale', scout_compute_resolved_api_ScaleSeriesNode),
42301
42521
  'time_difference': ConjureFieldDefinition('timeDifference', scout_compute_resolved_api_TimeDifferenceSeriesNode),
@@ -42325,6 +42545,7 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42325
42545
  resample: Optional["scout_compute_resolved_api_NumericResampleSeriesNode"] = None,
42326
42546
  rolling_operation: Optional["scout_compute_resolved_api_RollingOperationSeriesNode"] = None,
42327
42547
  aggregate: Optional["scout_compute_resolved_api_AggregateNumericSeriesNode"] = None,
42548
+ signal_filter: Optional["scout_compute_resolved_api_SignalFilterSeriesNode"] = None,
42328
42549
  sum: Optional["scout_compute_resolved_api_SumSeriesNode"] = None,
42329
42550
  scale: Optional["scout_compute_resolved_api_ScaleSeriesNode"] = None,
42330
42551
  time_difference: Optional["scout_compute_resolved_api_TimeDifferenceSeriesNode"] = None,
@@ -42339,7 +42560,7 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42339
42560
  type_of_union: Optional[str] = None
42340
42561
  ) -> None:
42341
42562
  if type_of_union is None:
42342
- if (arithmetic is not None) + (bit_operation is not None) + (cumulative_sum is not None) + (derivative is not None) + (integral is not None) + (max is not None) + (mean is not None) + (min is not None) + (offset is not None) + (product is not None) + (raw is not None) + (resample is not None) + (rolling_operation is not None) + (aggregate is not None) + (sum is not None) + (scale is not None) + (time_difference is not None) + (time_range_filter is not None) + (time_shift is not None) + (unary_arithmetic is not None) + (binary_arithmetic is not None) + (union is not None) + (unit_conversion is not None) + (value_difference is not None) + (filter_transformation is not None) != 1:
42563
+ if (arithmetic is not None) + (bit_operation is not None) + (cumulative_sum is not None) + (derivative is not None) + (integral is not None) + (max is not None) + (mean is not None) + (min is not None) + (offset is not None) + (product is not None) + (raw is not None) + (resample is not None) + (rolling_operation is not None) + (aggregate is not None) + (signal_filter is not None) + (sum is not None) + (scale is not None) + (time_difference is not None) + (time_range_filter is not None) + (time_shift is not None) + (unary_arithmetic is not None) + (binary_arithmetic is not None) + (union is not None) + (unit_conversion is not None) + (value_difference is not None) + (filter_transformation is not None) != 1:
42343
42564
  raise ValueError('a union must contain a single member')
42344
42565
 
42345
42566
  if arithmetic is not None:
@@ -42384,6 +42605,9 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42384
42605
  if aggregate is not None:
42385
42606
  self._aggregate = aggregate
42386
42607
  self._type = 'aggregate'
42608
+ if signal_filter is not None:
42609
+ self._signal_filter = signal_filter
42610
+ self._type = 'signalFilter'
42387
42611
  if sum is not None:
42388
42612
  self._sum = sum
42389
42613
  self._type = 'sum'
@@ -42488,6 +42712,11 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42488
42712
  raise ValueError('a union value must not be None')
42489
42713
  self._aggregate = aggregate
42490
42714
  self._type = 'aggregate'
42715
+ elif type_of_union == 'signalFilter':
42716
+ if signal_filter is None:
42717
+ raise ValueError('a union value must not be None')
42718
+ self._signal_filter = signal_filter
42719
+ self._type = 'signalFilter'
42491
42720
  elif type_of_union == 'sum':
42492
42721
  if sum is None:
42493
42722
  raise ValueError('a union value must not be None')
@@ -42600,6 +42829,10 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42600
42829
  def aggregate(self) -> Optional["scout_compute_resolved_api_AggregateNumericSeriesNode"]:
42601
42830
  return self._aggregate
42602
42831
 
42832
+ @builtins.property
42833
+ def signal_filter(self) -> Optional["scout_compute_resolved_api_SignalFilterSeriesNode"]:
42834
+ return self._signal_filter
42835
+
42603
42836
  @builtins.property
42604
42837
  def sum(self) -> Optional["scout_compute_resolved_api_SumSeriesNode"]:
42605
42838
  return self._sum
@@ -42675,6 +42908,8 @@ class scout_compute_resolved_api_NumericSeriesNode(ConjureUnionType):
42675
42908
  return visitor._rolling_operation(self.rolling_operation)
42676
42909
  if self._type == 'aggregate' and self.aggregate is not None:
42677
42910
  return visitor._aggregate(self.aggregate)
42911
+ if self._type == 'signalFilter' and self.signal_filter is not None:
42912
+ return visitor._signal_filter(self.signal_filter)
42678
42913
  if self._type == 'sum' and self.sum is not None:
42679
42914
  return visitor._sum(self.sum)
42680
42915
  if self._type == 'scale' and self.scale is not None:
@@ -42762,6 +42997,10 @@ class scout_compute_resolved_api_NumericSeriesNodeVisitor:
42762
42997
  def _aggregate(self, aggregate: "scout_compute_resolved_api_AggregateNumericSeriesNode") -> Any:
42763
42998
  pass
42764
42999
 
43000
+ @abstractmethod
43001
+ def _signal_filter(self, signal_filter: "scout_compute_resolved_api_SignalFilterSeriesNode") -> Any:
43002
+ pass
43003
+
42765
43004
  @abstractmethod
42766
43005
  def _sum(self, sum: "scout_compute_resolved_api_SumSeriesNode") -> Any:
42767
43006
  pass
@@ -44047,6 +44286,181 @@ scout_compute_resolved_api_SeriesNodeVisitor.__qualname__ = "SeriesNodeVisitor"
44047
44286
  scout_compute_resolved_api_SeriesNodeVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
44048
44287
 
44049
44288
 
44289
+ class scout_compute_resolved_api_SignalFilterConfiguration(ConjureUnionType):
44290
+ _low_pass: Optional["scout_compute_resolved_api_LowPassConfiguration"] = None
44291
+ _high_pass: Optional["scout_compute_resolved_api_HighPassConfiguration"] = None
44292
+ _band_pass: Optional["scout_compute_resolved_api_BandPassConfiguration"] = None
44293
+ _band_stop: Optional["scout_compute_resolved_api_BandStopConfiguration"] = None
44294
+
44295
+ @builtins.classmethod
44296
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
44297
+ return {
44298
+ 'low_pass': ConjureFieldDefinition('lowPass', scout_compute_resolved_api_LowPassConfiguration),
44299
+ 'high_pass': ConjureFieldDefinition('highPass', scout_compute_resolved_api_HighPassConfiguration),
44300
+ 'band_pass': ConjureFieldDefinition('bandPass', scout_compute_resolved_api_BandPassConfiguration),
44301
+ 'band_stop': ConjureFieldDefinition('bandStop', scout_compute_resolved_api_BandStopConfiguration)
44302
+ }
44303
+
44304
+ def __init__(
44305
+ self,
44306
+ low_pass: Optional["scout_compute_resolved_api_LowPassConfiguration"] = None,
44307
+ high_pass: Optional["scout_compute_resolved_api_HighPassConfiguration"] = None,
44308
+ band_pass: Optional["scout_compute_resolved_api_BandPassConfiguration"] = None,
44309
+ band_stop: Optional["scout_compute_resolved_api_BandStopConfiguration"] = None,
44310
+ type_of_union: Optional[str] = None
44311
+ ) -> None:
44312
+ if type_of_union is None:
44313
+ if (low_pass is not None) + (high_pass is not None) + (band_pass is not None) + (band_stop is not None) != 1:
44314
+ raise ValueError('a union must contain a single member')
44315
+
44316
+ if low_pass is not None:
44317
+ self._low_pass = low_pass
44318
+ self._type = 'lowPass'
44319
+ if high_pass is not None:
44320
+ self._high_pass = high_pass
44321
+ self._type = 'highPass'
44322
+ if band_pass is not None:
44323
+ self._band_pass = band_pass
44324
+ self._type = 'bandPass'
44325
+ if band_stop is not None:
44326
+ self._band_stop = band_stop
44327
+ self._type = 'bandStop'
44328
+
44329
+ elif type_of_union == 'lowPass':
44330
+ if low_pass is None:
44331
+ raise ValueError('a union value must not be None')
44332
+ self._low_pass = low_pass
44333
+ self._type = 'lowPass'
44334
+ elif type_of_union == 'highPass':
44335
+ if high_pass is None:
44336
+ raise ValueError('a union value must not be None')
44337
+ self._high_pass = high_pass
44338
+ self._type = 'highPass'
44339
+ elif type_of_union == 'bandPass':
44340
+ if band_pass is None:
44341
+ raise ValueError('a union value must not be None')
44342
+ self._band_pass = band_pass
44343
+ self._type = 'bandPass'
44344
+ elif type_of_union == 'bandStop':
44345
+ if band_stop is None:
44346
+ raise ValueError('a union value must not be None')
44347
+ self._band_stop = band_stop
44348
+ self._type = 'bandStop'
44349
+
44350
+ @builtins.property
44351
+ def low_pass(self) -> Optional["scout_compute_resolved_api_LowPassConfiguration"]:
44352
+ return self._low_pass
44353
+
44354
+ @builtins.property
44355
+ def high_pass(self) -> Optional["scout_compute_resolved_api_HighPassConfiguration"]:
44356
+ return self._high_pass
44357
+
44358
+ @builtins.property
44359
+ def band_pass(self) -> Optional["scout_compute_resolved_api_BandPassConfiguration"]:
44360
+ return self._band_pass
44361
+
44362
+ @builtins.property
44363
+ def band_stop(self) -> Optional["scout_compute_resolved_api_BandStopConfiguration"]:
44364
+ return self._band_stop
44365
+
44366
+ def accept(self, visitor) -> Any:
44367
+ if not isinstance(visitor, scout_compute_resolved_api_SignalFilterConfigurationVisitor):
44368
+ raise ValueError('{} is not an instance of scout_compute_resolved_api_SignalFilterConfigurationVisitor'.format(visitor.__class__.__name__))
44369
+ if self._type == 'lowPass' and self.low_pass is not None:
44370
+ return visitor._low_pass(self.low_pass)
44371
+ if self._type == 'highPass' and self.high_pass is not None:
44372
+ return visitor._high_pass(self.high_pass)
44373
+ if self._type == 'bandPass' and self.band_pass is not None:
44374
+ return visitor._band_pass(self.band_pass)
44375
+ if self._type == 'bandStop' and self.band_stop is not None:
44376
+ return visitor._band_stop(self.band_stop)
44377
+
44378
+
44379
+ scout_compute_resolved_api_SignalFilterConfiguration.__name__ = "SignalFilterConfiguration"
44380
+ scout_compute_resolved_api_SignalFilterConfiguration.__qualname__ = "SignalFilterConfiguration"
44381
+ scout_compute_resolved_api_SignalFilterConfiguration.__module__ = "nominal_api.scout_compute_resolved_api"
44382
+
44383
+
44384
+ class scout_compute_resolved_api_SignalFilterConfigurationVisitor:
44385
+
44386
+ @abstractmethod
44387
+ def _low_pass(self, low_pass: "scout_compute_resolved_api_LowPassConfiguration") -> Any:
44388
+ pass
44389
+
44390
+ @abstractmethod
44391
+ def _high_pass(self, high_pass: "scout_compute_resolved_api_HighPassConfiguration") -> Any:
44392
+ pass
44393
+
44394
+ @abstractmethod
44395
+ def _band_pass(self, band_pass: "scout_compute_resolved_api_BandPassConfiguration") -> Any:
44396
+ pass
44397
+
44398
+ @abstractmethod
44399
+ def _band_stop(self, band_stop: "scout_compute_resolved_api_BandStopConfiguration") -> Any:
44400
+ pass
44401
+
44402
+
44403
+ scout_compute_resolved_api_SignalFilterConfigurationVisitor.__name__ = "SignalFilterConfigurationVisitor"
44404
+ scout_compute_resolved_api_SignalFilterConfigurationVisitor.__qualname__ = "SignalFilterConfigurationVisitor"
44405
+ scout_compute_resolved_api_SignalFilterConfigurationVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
44406
+
44407
+
44408
+ class scout_compute_resolved_api_SignalFilterSeriesNode(ConjureBeanType):
44409
+ """
44410
+ Applies IIR-based signal filtering to input series. Includes low-pass, high-pass, band-pass, and band-stop
44411
+ filters. Currently supports variable-order bidirectional Butterworth filters, with fixed-size padding based
44412
+ on SciPy output.
44413
+ """
44414
+
44415
+ @builtins.classmethod
44416
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
44417
+ return {
44418
+ 'input': ConjureFieldDefinition('input', scout_compute_resolved_api_NumericSeriesNode),
44419
+ 'signal_filter_configuration': ConjureFieldDefinition('signalFilterConfiguration', scout_compute_resolved_api_SignalFilterConfiguration),
44420
+ 'order': ConjureFieldDefinition('order', int),
44421
+ 'sampling_frequency': ConjureFieldDefinition('samplingFrequency', OptionalTypeWrapper[float])
44422
+ }
44423
+
44424
+ __slots__: List[str] = ['_input', '_signal_filter_configuration', '_order', '_sampling_frequency']
44425
+
44426
+ def __init__(self, input: "scout_compute_resolved_api_NumericSeriesNode", order: int, signal_filter_configuration: "scout_compute_resolved_api_SignalFilterConfiguration", sampling_frequency: Optional[float] = None) -> None:
44427
+ self._input = input
44428
+ self._signal_filter_configuration = signal_filter_configuration
44429
+ self._order = order
44430
+ self._sampling_frequency = sampling_frequency
44431
+
44432
+ @builtins.property
44433
+ def input(self) -> "scout_compute_resolved_api_NumericSeriesNode":
44434
+ return self._input
44435
+
44436
+ @builtins.property
44437
+ def signal_filter_configuration(self) -> "scout_compute_resolved_api_SignalFilterConfiguration":
44438
+ """
44439
+ Configuration for the signal filter, including filter type, cutoff frequency, and order.
44440
+ """
44441
+ return self._signal_filter_configuration
44442
+
44443
+ @builtins.property
44444
+ def order(self) -> int:
44445
+ """
44446
+ Order of filter. Must be a positive integer, and is effectively doubled for bidirectional filters.
44447
+ """
44448
+ return self._order
44449
+
44450
+ @builtins.property
44451
+ def sampling_frequency(self) -> Optional[float]:
44452
+ """
44453
+ The sampling frequency of the input series. Used to calculate normalized frequency for cutoff frequencies.
44454
+ Defaults to number of points divided by timespan of series.
44455
+ """
44456
+ return self._sampling_frequency
44457
+
44458
+
44459
+ scout_compute_resolved_api_SignalFilterSeriesNode.__name__ = "SignalFilterSeriesNode"
44460
+ scout_compute_resolved_api_SignalFilterSeriesNode.__qualname__ = "SignalFilterSeriesNode"
44461
+ scout_compute_resolved_api_SignalFilterSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
44462
+
44463
+
44050
44464
  class scout_compute_resolved_api_StabilityDetectionRangesNode(ConjureBeanType):
44051
44465
 
44052
44466
  @builtins.classmethod
@@ -56803,29 +57217,6 @@ scout_run_api_DataSourceType.__qualname__ = "DataSourceType"
56803
57217
  scout_run_api_DataSourceType.__module__ = "nominal_api.scout_run_api"
56804
57218
 
56805
57219
 
56806
- class scout_run_api_DeleteEventsFromRunRequest(ConjureBeanType):
56807
-
56808
- @builtins.classmethod
56809
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
56810
- return {
56811
- 'events': ConjureFieldDefinition('events', List[event_EventRid])
56812
- }
56813
-
56814
- __slots__: List[str] = ['_events']
56815
-
56816
- def __init__(self, events: List[str]) -> None:
56817
- self._events = events
56818
-
56819
- @builtins.property
56820
- def events(self) -> List[str]:
56821
- return self._events
56822
-
56823
-
56824
- scout_run_api_DeleteEventsFromRunRequest.__name__ = "DeleteEventsFromRunRequest"
56825
- scout_run_api_DeleteEventsFromRunRequest.__qualname__ = "DeleteEventsFromRunRequest"
56826
- scout_run_api_DeleteEventsFromRunRequest.__module__ = "nominal_api.scout_run_api"
56827
-
56828
-
56829
57220
  class scout_run_api_Duration(ConjureBeanType):
56830
57221
 
56831
57222
  @builtins.classmethod
@@ -56861,35 +57252,6 @@ scout_run_api_Duration.__qualname__ = "Duration"
56861
57252
  scout_run_api_Duration.__module__ = "nominal_api.scout_run_api"
56862
57253
 
56863
57254
 
56864
- class scout_run_api_GetEventsForRunPage(ConjureBeanType):
56865
-
56866
- @builtins.classmethod
56867
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
56868
- return {
56869
- 'events': ConjureFieldDefinition('events', List[event_EventRid]),
56870
- 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[scout_api_Token])
56871
- }
56872
-
56873
- __slots__: List[str] = ['_events', '_next_page_token']
56874
-
56875
- def __init__(self, events: List[str], next_page_token: Optional[str] = None) -> None:
56876
- self._events = events
56877
- self._next_page_token = next_page_token
56878
-
56879
- @builtins.property
56880
- def events(self) -> List[str]:
56881
- return self._events
56882
-
56883
- @builtins.property
56884
- def next_page_token(self) -> Optional[str]:
56885
- return self._next_page_token
56886
-
56887
-
56888
- scout_run_api_GetEventsForRunPage.__name__ = "GetEventsForRunPage"
56889
- scout_run_api_GetEventsForRunPage.__qualname__ = "GetEventsForRunPage"
56890
- scout_run_api_GetEventsForRunPage.__module__ = "nominal_api.scout_run_api"
56891
-
56892
-
56893
57255
  class scout_run_api_GetRunByIdRequest(ConjureBeanType):
56894
57256
 
56895
57257
  @builtins.classmethod
@@ -57035,29 +57397,6 @@ scout_run_api_Property.__qualname__ = "Property"
57035
57397
  scout_run_api_Property.__module__ = "nominal_api.scout_run_api"
57036
57398
 
57037
57399
 
57038
- class scout_run_api_PublishEventsToRunRequest(ConjureBeanType):
57039
-
57040
- @builtins.classmethod
57041
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
57042
- return {
57043
- 'events': ConjureFieldDefinition('events', List[event_EventRid])
57044
- }
57045
-
57046
- __slots__: List[str] = ['_events']
57047
-
57048
- def __init__(self, events: List[str]) -> None:
57049
- self._events = events
57050
-
57051
- @builtins.property
57052
- def events(self) -> List[str]:
57053
- return self._events
57054
-
57055
-
57056
- scout_run_api_PublishEventsToRunRequest.__name__ = "PublishEventsToRunRequest"
57057
- scout_run_api_PublishEventsToRunRequest.__qualname__ = "PublishEventsToRunRequest"
57058
- scout_run_api_PublishEventsToRunRequest.__module__ = "nominal_api.scout_run_api"
57059
-
57060
-
57061
57400
  class scout_run_api_RefNameAndType(ConjureBeanType):
57062
57401
  """
57063
57402
  Scoped to the org-level, intended to help the frontend
@@ -62822,15 +63161,17 @@ class storage_datasource_api_CreateNominalDataSourceRequest(ConjureBeanType):
62822
63161
  return {
62823
63162
  'id': ConjureFieldDefinition('id', storage_datasource_api_NominalDataSourceId),
62824
63163
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
62825
- 'granularity': ConjureFieldDefinition('granularity', OptionalTypeWrapper[api_Granularity])
63164
+ 'granularity': ConjureFieldDefinition('granularity', OptionalTypeWrapper[api_Granularity]),
63165
+ 'in_memory_streaming_enabled': ConjureFieldDefinition('inMemoryStreamingEnabled', OptionalTypeWrapper[bool])
62826
63166
  }
62827
63167
 
62828
- __slots__: List[str] = ['_id', '_description', '_granularity']
63168
+ __slots__: List[str] = ['_id', '_description', '_granularity', '_in_memory_streaming_enabled']
62829
63169
 
62830
- def __init__(self, id: str, description: Optional[str] = None, granularity: Optional["api_Granularity"] = None) -> None:
63170
+ def __init__(self, id: str, description: Optional[str] = None, granularity: Optional["api_Granularity"] = None, in_memory_streaming_enabled: Optional[bool] = None) -> None:
62831
63171
  self._id = id
62832
63172
  self._description = description
62833
63173
  self._granularity = granularity
63174
+ self._in_memory_streaming_enabled = in_memory_streaming_enabled
62834
63175
 
62835
63176
  @builtins.property
62836
63177
  def id(self) -> str:
@@ -62851,6 +63192,10 @@ Defaults to nanosecond granularity.
62851
63192
  """
62852
63193
  return self._granularity
62853
63194
 
63195
+ @builtins.property
63196
+ def in_memory_streaming_enabled(self) -> Optional[bool]:
63197
+ return self._in_memory_streaming_enabled
63198
+
62854
63199
 
62855
63200
  storage_datasource_api_CreateNominalDataSourceRequest.__name__ = "CreateNominalDataSourceRequest"
62856
63201
  storage_datasource_api_CreateNominalDataSourceRequest.__qualname__ = "CreateNominalDataSourceRequest"
@@ -62869,17 +63214,19 @@ class storage_datasource_api_NominalDataSource(ConjureBeanType):
62869
63214
  'id': ConjureFieldDefinition('id', storage_datasource_api_NominalDataSourceId),
62870
63215
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
62871
63216
  'data_last_written_at': ConjureFieldDefinition('dataLastWrittenAt', OptionalTypeWrapper[str]),
62872
- 'granularity': ConjureFieldDefinition('granularity', api_Granularity)
63217
+ 'granularity': ConjureFieldDefinition('granularity', api_Granularity),
63218
+ 'in_memory_streaming_enabled': ConjureFieldDefinition('inMemoryStreamingEnabled', OptionalTypeWrapper[bool])
62873
63219
  }
62874
63220
 
62875
- __slots__: List[str] = ['_rid', '_id', '_description', '_data_last_written_at', '_granularity']
63221
+ __slots__: List[str] = ['_rid', '_id', '_description', '_data_last_written_at', '_granularity', '_in_memory_streaming_enabled']
62876
63222
 
62877
- def __init__(self, granularity: "api_Granularity", id: str, rid: str, data_last_written_at: Optional[str] = None, description: Optional[str] = None) -> None:
63223
+ def __init__(self, granularity: "api_Granularity", id: str, rid: str, data_last_written_at: Optional[str] = None, description: Optional[str] = None, in_memory_streaming_enabled: Optional[bool] = None) -> None:
62878
63224
  self._rid = rid
62879
63225
  self._id = id
62880
63226
  self._description = description
62881
63227
  self._data_last_written_at = data_last_written_at
62882
63228
  self._granularity = granularity
63229
+ self._in_memory_streaming_enabled = in_memory_streaming_enabled
62883
63230
 
62884
63231
  @builtins.property
62885
63232
  def rid(self) -> str:
@@ -62905,6 +63252,10 @@ Will be accurate to within 1 minute.
62905
63252
  def granularity(self) -> "api_Granularity":
62906
63253
  return self._granularity
62907
63254
 
63255
+ @builtins.property
63256
+ def in_memory_streaming_enabled(self) -> Optional[bool]:
63257
+ return self._in_memory_streaming_enabled
63258
+
62908
63259
 
62909
63260
  storage_datasource_api_NominalDataSource.__name__ = "NominalDataSource"
62910
63261
  storage_datasource_api_NominalDataSource.__qualname__ = "NominalDataSource"
@@ -62948,6 +63299,36 @@ class storage_datasource_api_NominalDataSourceService(Service):
62948
63299
  _decoder = ConjureDecoder()
62949
63300
  return _decoder.decode(_response.json(), storage_datasource_api_NominalDataSource, self._return_none_for_unknown_union_types)
62950
63301
 
63302
+ def update(self, auth_header: str, request: "storage_datasource_api_UpdateNominalDataSourceRequest", rid: str) -> "storage_datasource_api_NominalDataSource":
63303
+
63304
+ _headers: Dict[str, Any] = {
63305
+ 'Accept': 'application/json',
63306
+ 'Content-Type': 'application/json',
63307
+ 'Authorization': auth_header,
63308
+ }
63309
+
63310
+ _params: Dict[str, Any] = {
63311
+ }
63312
+
63313
+ _path_params: Dict[str, Any] = {
63314
+ 'rid': rid,
63315
+ }
63316
+
63317
+ _json: Any = ConjureEncoder().default(request)
63318
+
63319
+ _path = '/storage/data-source/v1/{rid}'
63320
+ _path = _path.format(**_path_params)
63321
+
63322
+ _response: Response = self._request(
63323
+ 'PUT',
63324
+ self._uri + _path,
63325
+ params=_params,
63326
+ headers=_headers,
63327
+ json=_json)
63328
+
63329
+ _decoder = ConjureDecoder()
63330
+ return _decoder.decode(_response.json(), storage_datasource_api_NominalDataSource, self._return_none_for_unknown_union_types)
63331
+
62951
63332
  def batch_get(self, auth_header: str, rids: List[str] = None) -> List["storage_datasource_api_NominalDataSource"]:
62952
63333
  """
62953
63334
  Retrieves the data sources for the given data source RIDs.
@@ -63021,6 +63402,29 @@ storage_datasource_api_NominalDataSourceService.__qualname__ = "NominalDataSourc
63021
63402
  storage_datasource_api_NominalDataSourceService.__module__ = "nominal_api.storage_datasource_api"
63022
63403
 
63023
63404
 
63405
+ class storage_datasource_api_UpdateNominalDataSourceRequest(ConjureBeanType):
63406
+
63407
+ @builtins.classmethod
63408
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
63409
+ return {
63410
+ 'in_memory_streaming_enabled': ConjureFieldDefinition('inMemoryStreamingEnabled', bool)
63411
+ }
63412
+
63413
+ __slots__: List[str] = ['_in_memory_streaming_enabled']
63414
+
63415
+ def __init__(self, in_memory_streaming_enabled: bool) -> None:
63416
+ self._in_memory_streaming_enabled = in_memory_streaming_enabled
63417
+
63418
+ @builtins.property
63419
+ def in_memory_streaming_enabled(self) -> bool:
63420
+ return self._in_memory_streaming_enabled
63421
+
63422
+
63423
+ storage_datasource_api_UpdateNominalDataSourceRequest.__name__ = "UpdateNominalDataSourceRequest"
63424
+ storage_datasource_api_UpdateNominalDataSourceRequest.__qualname__ = "UpdateNominalDataSourceRequest"
63425
+ storage_datasource_api_UpdateNominalDataSourceRequest.__module__ = "nominal_api.storage_datasource_api"
63426
+
63427
+
63024
63428
  class storage_series_api_BatchCreateOrGetResponse(ConjureBeanType):
63025
63429
 
63026
63430
  @builtins.classmethod