nominal-api 0.702.0__py3-none-any.whl → 0.703.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/__init__.py CHANGED
@@ -75,5 +75,5 @@ __all__ = [
75
75
 
76
76
  __conjure_generator_version__ = "4.9.0"
77
77
 
78
- __version__ = "0.702.0"
78
+ __version__ = "0.703.0"
79
79
 
nominal_api/_impl.py CHANGED
@@ -38876,6 +38876,44 @@ scout_compute_api_DurationConstantVisitor.__qualname__ = "DurationConstantVisito
38876
38876
  scout_compute_api_DurationConstantVisitor.__module__ = "nominal_api.scout_compute_api"
38877
38877
 
38878
38878
 
38879
+ class scout_compute_api_DurationFilterRanges(ConjureBeanType):
38880
+ """
38881
+ Filters a list of ranges down to only those satisfying a threshold condition on the range's duration.
38882
+ """
38883
+
38884
+ @builtins.classmethod
38885
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
38886
+ return {
38887
+ 'input': ConjureFieldDefinition('input', scout_compute_api_RangeSeries),
38888
+ 'threshold': ConjureFieldDefinition('threshold', scout_compute_api_DurationConstant),
38889
+ 'operator': ConjureFieldDefinition('operator', scout_compute_api_ThresholdOperator)
38890
+ }
38891
+
38892
+ __slots__: List[str] = ['_input', '_threshold', '_operator']
38893
+
38894
+ def __init__(self, input: "scout_compute_api_RangeSeries", operator: "scout_compute_api_ThresholdOperator", threshold: "scout_compute_api_DurationConstant") -> None:
38895
+ self._input = input
38896
+ self._threshold = threshold
38897
+ self._operator = operator
38898
+
38899
+ @builtins.property
38900
+ def input(self) -> "scout_compute_api_RangeSeries":
38901
+ return self._input
38902
+
38903
+ @builtins.property
38904
+ def threshold(self) -> "scout_compute_api_DurationConstant":
38905
+ return self._threshold
38906
+
38907
+ @builtins.property
38908
+ def operator(self) -> "scout_compute_api_ThresholdOperator":
38909
+ return self._operator
38910
+
38911
+
38912
+ scout_compute_api_DurationFilterRanges.__name__ = "DurationFilterRanges"
38913
+ scout_compute_api_DurationFilterRanges.__qualname__ = "DurationFilterRanges"
38914
+ scout_compute_api_DurationFilterRanges.__module__ = "nominal_api.scout_compute_api"
38915
+
38916
+
38879
38917
  class scout_compute_api_EnumAggregationFunction(ConjureEnumType):
38880
38918
 
38881
38919
  MIN = 'MIN'
@@ -44315,6 +44353,7 @@ scout_compute_api_RangeMap.__module__ = "nominal_api.scout_compute_api"
44315
44353
 
44316
44354
  class scout_compute_api_RangeSeries(ConjureUnionType):
44317
44355
  _approximate_threshold: Optional["scout_compute_api_ApproximateThresholdRanges"] = None
44356
+ _duration_filter: Optional["scout_compute_api_DurationFilterRanges"] = None
44318
44357
  _enum_filter: Optional["scout_compute_api_EnumFilterRanges"] = None
44319
44358
  _enum_series_equality_ranges_node: Optional["scout_compute_api_EnumSeriesEqualityRanges"] = None
44320
44359
  _function: Optional["scout_compute_api_RangesFunction"] = None
@@ -44337,6 +44376,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44337
44376
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
44338
44377
  return {
44339
44378
  'approximate_threshold': ConjureFieldDefinition('approximateThreshold', scout_compute_api_ApproximateThresholdRanges),
44379
+ 'duration_filter': ConjureFieldDefinition('durationFilter', scout_compute_api_DurationFilterRanges),
44340
44380
  'enum_filter': ConjureFieldDefinition('enumFilter', scout_compute_api_EnumFilterRanges),
44341
44381
  'enum_series_equality_ranges_node': ConjureFieldDefinition('enumSeriesEqualityRangesNode', scout_compute_api_EnumSeriesEqualityRanges),
44342
44382
  'function': ConjureFieldDefinition('function', scout_compute_api_RangesFunction),
@@ -44359,6 +44399,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44359
44399
  def __init__(
44360
44400
  self,
44361
44401
  approximate_threshold: Optional["scout_compute_api_ApproximateThresholdRanges"] = None,
44402
+ duration_filter: Optional["scout_compute_api_DurationFilterRanges"] = None,
44362
44403
  enum_filter: Optional["scout_compute_api_EnumFilterRanges"] = None,
44363
44404
  enum_series_equality_ranges_node: Optional["scout_compute_api_EnumSeriesEqualityRanges"] = None,
44364
44405
  function: Optional["scout_compute_api_RangesFunction"] = None,
@@ -44379,12 +44420,15 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44379
44420
  type_of_union: Optional[str] = None
44380
44421
  ) -> None:
44381
44422
  if type_of_union is None:
44382
- if (approximate_threshold is not None) + (enum_filter is not None) + (enum_series_equality_ranges_node is not None) + (function is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (peak is not None) + (range_numeric_aggregation is not None) + (raw is not None) + (series_crossover_ranges_node is not None) + (series_equality_ranges_node is not None) + (stability_detection is not None) + (stale_range is not None) + (threshold is not None) + (union_range is not None) != 1:
44423
+ if (approximate_threshold is not None) + (duration_filter is not None) + (enum_filter is not None) + (enum_series_equality_ranges_node is not None) + (function is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (peak is not None) + (range_numeric_aggregation is not None) + (raw is not None) + (series_crossover_ranges_node is not None) + (series_equality_ranges_node is not None) + (stability_detection is not None) + (stale_range is not None) + (threshold is not None) + (union_range is not None) != 1:
44383
44424
  raise ValueError('a union must contain a single member')
44384
44425
 
44385
44426
  if approximate_threshold is not None:
44386
44427
  self._approximate_threshold = approximate_threshold
44387
44428
  self._type = 'approximateThreshold'
44429
+ if duration_filter is not None:
44430
+ self._duration_filter = duration_filter
44431
+ self._type = 'durationFilter'
44388
44432
  if enum_filter is not None:
44389
44433
  self._enum_filter = enum_filter
44390
44434
  self._type = 'enumFilter'
@@ -44442,6 +44486,11 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44442
44486
  raise ValueError('a union value must not be None')
44443
44487
  self._approximate_threshold = approximate_threshold
44444
44488
  self._type = 'approximateThreshold'
44489
+ elif type_of_union == 'durationFilter':
44490
+ if duration_filter is None:
44491
+ raise ValueError('a union value must not be None')
44492
+ self._duration_filter = duration_filter
44493
+ self._type = 'durationFilter'
44445
44494
  elif type_of_union == 'enumFilter':
44446
44495
  if enum_filter is None:
44447
44496
  raise ValueError('a union value must not be None')
@@ -44532,6 +44581,10 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44532
44581
  def approximate_threshold(self) -> Optional["scout_compute_api_ApproximateThresholdRanges"]:
44533
44582
  return self._approximate_threshold
44534
44583
 
44584
+ @builtins.property
44585
+ def duration_filter(self) -> Optional["scout_compute_api_DurationFilterRanges"]:
44586
+ return self._duration_filter
44587
+
44535
44588
  @builtins.property
44536
44589
  def enum_filter(self) -> Optional["scout_compute_api_EnumFilterRanges"]:
44537
44590
  return self._enum_filter
@@ -44611,6 +44664,8 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44611
44664
  raise ValueError('{} is not an instance of scout_compute_api_RangeSeriesVisitor'.format(visitor.__class__.__name__))
44612
44665
  if self._type == 'approximateThreshold' and self.approximate_threshold is not None:
44613
44666
  return visitor._approximate_threshold(self.approximate_threshold)
44667
+ if self._type == 'durationFilter' and self.duration_filter is not None:
44668
+ return visitor._duration_filter(self.duration_filter)
44614
44669
  if self._type == 'enumFilter' and self.enum_filter is not None:
44615
44670
  return visitor._enum_filter(self.enum_filter)
44616
44671
  if self._type == 'enumSeriesEqualityRangesNode' and self.enum_series_equality_ranges_node is not None:
@@ -44658,6 +44713,10 @@ class scout_compute_api_RangeSeriesVisitor:
44658
44713
  def _approximate_threshold(self, approximate_threshold: "scout_compute_api_ApproximateThresholdRanges") -> Any:
44659
44714
  pass
44660
44715
 
44716
+ @abstractmethod
44717
+ def _duration_filter(self, duration_filter: "scout_compute_api_DurationFilterRanges") -> Any:
44718
+ pass
44719
+
44661
44720
  @abstractmethod
44662
44721
  def _enum_filter(self, enum_filter: "scout_compute_api_EnumFilterRanges") -> Any:
44663
44722
  pass
@@ -50865,6 +50924,41 @@ scout_compute_resolved_api_DerivativeSeriesNode.__qualname__ = "DerivativeSeries
50865
50924
  scout_compute_resolved_api_DerivativeSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
50866
50925
 
50867
50926
 
50927
+ class scout_compute_resolved_api_DurationFilterRangesNode(ConjureBeanType):
50928
+
50929
+ @builtins.classmethod
50930
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50931
+ return {
50932
+ 'input': ConjureFieldDefinition('input', scout_compute_resolved_api_RangesNode),
50933
+ 'threshold': ConjureFieldDefinition('threshold', scout_run_api_Duration),
50934
+ 'operator': ConjureFieldDefinition('operator', scout_compute_api_ThresholdOperator)
50935
+ }
50936
+
50937
+ __slots__: List[str] = ['_input', '_threshold', '_operator']
50938
+
50939
+ def __init__(self, input: "scout_compute_resolved_api_RangesNode", operator: "scout_compute_api_ThresholdOperator", threshold: "scout_run_api_Duration") -> None:
50940
+ self._input = input
50941
+ self._threshold = threshold
50942
+ self._operator = operator
50943
+
50944
+ @builtins.property
50945
+ def input(self) -> "scout_compute_resolved_api_RangesNode":
50946
+ return self._input
50947
+
50948
+ @builtins.property
50949
+ def threshold(self) -> "scout_run_api_Duration":
50950
+ return self._threshold
50951
+
50952
+ @builtins.property
50953
+ def operator(self) -> "scout_compute_api_ThresholdOperator":
50954
+ return self._operator
50955
+
50956
+
50957
+ scout_compute_resolved_api_DurationFilterRangesNode.__name__ = "DurationFilterRangesNode"
50958
+ scout_compute_resolved_api_DurationFilterRangesNode.__qualname__ = "DurationFilterRangesNode"
50959
+ scout_compute_resolved_api_DurationFilterRangesNode.__module__ = "nominal_api.scout_compute_resolved_api"
50960
+
50961
+
50868
50962
  class scout_compute_resolved_api_EnumCountDuplicateSeriesNode(ConjureBeanType):
50869
50963
 
50870
50964
  @builtins.classmethod
@@ -53544,6 +53638,7 @@ scout_compute_resolved_api_RangeMap.__module__ = "nominal_api.scout_compute_reso
53544
53638
 
53545
53639
 
53546
53640
  class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53641
+ _duration_filter: Optional["scout_compute_resolved_api_DurationFilterRangesNode"] = None
53547
53642
  _enum_equality: Optional["scout_compute_resolved_api_EnumEqualityRangesNode"] = None
53548
53643
  _enum_filter: Optional["scout_compute_resolved_api_EnumFilterRangesNode"] = None
53549
53644
  _extrema: Optional["scout_compute_resolved_api_ExtremaRangesNode"] = None
@@ -53562,6 +53657,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53562
53657
  @builtins.classmethod
53563
53658
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
53564
53659
  return {
53660
+ 'duration_filter': ConjureFieldDefinition('durationFilter', scout_compute_resolved_api_DurationFilterRangesNode),
53565
53661
  'enum_equality': ConjureFieldDefinition('enumEquality', scout_compute_resolved_api_EnumEqualityRangesNode),
53566
53662
  'enum_filter': ConjureFieldDefinition('enumFilter', scout_compute_resolved_api_EnumFilterRangesNode),
53567
53663
  'extrema': ConjureFieldDefinition('extrema', scout_compute_resolved_api_ExtremaRangesNode),
@@ -53580,6 +53676,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53580
53676
 
53581
53677
  def __init__(
53582
53678
  self,
53679
+ duration_filter: Optional["scout_compute_resolved_api_DurationFilterRangesNode"] = None,
53583
53680
  enum_equality: Optional["scout_compute_resolved_api_EnumEqualityRangesNode"] = None,
53584
53681
  enum_filter: Optional["scout_compute_resolved_api_EnumFilterRangesNode"] = None,
53585
53682
  extrema: Optional["scout_compute_resolved_api_ExtremaRangesNode"] = None,
@@ -53597,9 +53694,12 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53597
53694
  type_of_union: Optional[str] = None
53598
53695
  ) -> None:
53599
53696
  if type_of_union is None:
53600
- if (enum_equality is not None) + (enum_filter is not None) + (extrema is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (range_numeric_aggregation is not None) + (series_crossover_ranges_node is not None) + (stale_range is not None) + (stability_detection is not None) + (threshold is not None) + (union_range is not None) != 1:
53697
+ if (duration_filter is not None) + (enum_equality is not None) + (enum_filter is not None) + (extrema is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (range_numeric_aggregation is not None) + (series_crossover_ranges_node is not None) + (stale_range is not None) + (stability_detection is not None) + (threshold is not None) + (union_range is not None) != 1:
53601
53698
  raise ValueError('a union must contain a single member')
53602
53699
 
53700
+ if duration_filter is not None:
53701
+ self._duration_filter = duration_filter
53702
+ self._type = 'durationFilter'
53603
53703
  if enum_equality is not None:
53604
53704
  self._enum_equality = enum_equality
53605
53705
  self._type = 'enumEquality'
@@ -53643,6 +53743,11 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53643
53743
  self._union_range = union_range
53644
53744
  self._type = 'unionRange'
53645
53745
 
53746
+ elif type_of_union == 'durationFilter':
53747
+ if duration_filter is None:
53748
+ raise ValueError('a union value must not be None')
53749
+ self._duration_filter = duration_filter
53750
+ self._type = 'durationFilter'
53646
53751
  elif type_of_union == 'enumEquality':
53647
53752
  if enum_equality is None:
53648
53753
  raise ValueError('a union value must not be None')
@@ -53714,6 +53819,10 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53714
53819
  self._union_range = union_range
53715
53820
  self._type = 'unionRange'
53716
53821
 
53822
+ @builtins.property
53823
+ def duration_filter(self) -> Optional["scout_compute_resolved_api_DurationFilterRangesNode"]:
53824
+ return self._duration_filter
53825
+
53717
53826
  @builtins.property
53718
53827
  def enum_equality(self) -> Optional["scout_compute_resolved_api_EnumEqualityRangesNode"]:
53719
53828
  return self._enum_equality
@@ -53773,6 +53882,8 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53773
53882
  def accept(self, visitor) -> Any:
53774
53883
  if not isinstance(visitor, scout_compute_resolved_api_RangesNodeVisitor):
53775
53884
  raise ValueError('{} is not an instance of scout_compute_resolved_api_RangesNodeVisitor'.format(visitor.__class__.__name__))
53885
+ if self._type == 'durationFilter' and self.duration_filter is not None:
53886
+ return visitor._duration_filter(self.duration_filter)
53776
53887
  if self._type == 'enumEquality' and self.enum_equality is not None:
53777
53888
  return visitor._enum_equality(self.enum_equality)
53778
53889
  if self._type == 'enumFilter' and self.enum_filter is not None:
@@ -53810,6 +53921,10 @@ scout_compute_resolved_api_RangesNode.__module__ = "nominal_api.scout_compute_re
53810
53921
 
53811
53922
  class scout_compute_resolved_api_RangesNodeVisitor:
53812
53923
 
53924
+ @abstractmethod
53925
+ def _duration_filter(self, duration_filter: "scout_compute_resolved_api_DurationFilterRangesNode") -> Any:
53926
+ pass
53927
+
53813
53928
  @abstractmethod
53814
53929
  def _enum_equality(self, enum_equality: "scout_compute_resolved_api_EnumEqualityRangesNode") -> Any:
53815
53930
  pass
@@ -77198,6 +77313,163 @@ storage_writer_api_ArrayPointsVisitor.__qualname__ = "ArrayPointsVisitor"
77198
77313
  storage_writer_api_ArrayPointsVisitor.__module__ = "nominal_api.storage_writer_api"
77199
77314
 
77200
77315
 
77316
+ class storage_writer_api_ColumnBatch(ConjureBeanType):
77317
+ """
77318
+ Batch of data to stream for a single channel with their associated timestamps.
77319
+ """
77320
+
77321
+ @builtins.classmethod
77322
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
77323
+ return {
77324
+ 'channel': ConjureFieldDefinition('channel', api_Channel),
77325
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
77326
+ 'timestamps': ConjureFieldDefinition('timestamps', List[api_Timestamp]),
77327
+ 'values': ConjureFieldDefinition('values', storage_writer_api_ColumnValues)
77328
+ }
77329
+
77330
+ __slots__: List[str] = ['_channel', '_tags', '_timestamps', '_values']
77331
+
77332
+ def __init__(self, channel: str, tags: Dict[str, str], timestamps: List["api_Timestamp"], values: "storage_writer_api_ColumnValues") -> None:
77333
+ self._channel = channel
77334
+ self._tags = tags
77335
+ self._timestamps = timestamps
77336
+ self._values = values
77337
+
77338
+ @builtins.property
77339
+ def channel(self) -> str:
77340
+ """
77341
+ Channel within nominal to stream data to.
77342
+ """
77343
+ return self._channel
77344
+
77345
+ @builtins.property
77346
+ def tags(self) -> Dict[str, str]:
77347
+ """
77348
+ Mapping of key-value pairs to provide as tags to all points within the batch
77349
+ """
77350
+ return self._tags
77351
+
77352
+ @builtins.property
77353
+ def timestamps(self) -> List["api_Timestamp"]:
77354
+ """
77355
+ List of timestamp values that correspond to the provided list of column values. The number of timestamps
77356
+ provided MUST match the number of columnar values provided, otherwise a 400 error will be returned.
77357
+ """
77358
+ return self._timestamps
77359
+
77360
+ @builtins.property
77361
+ def values(self) -> "storage_writer_api_ColumnValues":
77362
+ """
77363
+ List of timeseries values that should be ingested to a single channel. The number of columnar values
77364
+ provided MUST match the number of timestamps provided, otherwise a 400 error will be returned.
77365
+ """
77366
+ return self._values
77367
+
77368
+
77369
+ storage_writer_api_ColumnBatch.__name__ = "ColumnBatch"
77370
+ storage_writer_api_ColumnBatch.__qualname__ = "ColumnBatch"
77371
+ storage_writer_api_ColumnBatch.__module__ = "nominal_api.storage_writer_api"
77372
+
77373
+
77374
+ class storage_writer_api_ColumnValues(ConjureUnionType):
77375
+ """List of values that correspond to subsequent values to ingest from a single channel."""
77376
+ _strings: Optional[List[str]] = None
77377
+ _doubles: Optional[List[float]] = None
77378
+ _ints: Optional[List[int]] = None
77379
+
77380
+ @builtins.classmethod
77381
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
77382
+ return {
77383
+ 'strings': ConjureFieldDefinition('strings', List[str]),
77384
+ 'doubles': ConjureFieldDefinition('doubles', List[float]),
77385
+ 'ints': ConjureFieldDefinition('ints', List[int])
77386
+ }
77387
+
77388
+ def __init__(
77389
+ self,
77390
+ strings: Optional[List[str]] = None,
77391
+ doubles: Optional[List[float]] = None,
77392
+ ints: Optional[List[int]] = None,
77393
+ type_of_union: Optional[str] = None
77394
+ ) -> None:
77395
+ if type_of_union is None:
77396
+ if (strings is not None) + (doubles is not None) + (ints is not None) != 1:
77397
+ raise ValueError('a union must contain a single member')
77398
+
77399
+ if strings is not None:
77400
+ self._strings = strings
77401
+ self._type = 'strings'
77402
+ if doubles is not None:
77403
+ self._doubles = doubles
77404
+ self._type = 'doubles'
77405
+ if ints is not None:
77406
+ self._ints = ints
77407
+ self._type = 'ints'
77408
+
77409
+ elif type_of_union == 'strings':
77410
+ if strings is None:
77411
+ raise ValueError('a union value must not be None')
77412
+ self._strings = strings
77413
+ self._type = 'strings'
77414
+ elif type_of_union == 'doubles':
77415
+ if doubles is None:
77416
+ raise ValueError('a union value must not be None')
77417
+ self._doubles = doubles
77418
+ self._type = 'doubles'
77419
+ elif type_of_union == 'ints':
77420
+ if ints is None:
77421
+ raise ValueError('a union value must not be None')
77422
+ self._ints = ints
77423
+ self._type = 'ints'
77424
+
77425
+ @builtins.property
77426
+ def strings(self) -> Optional[List[str]]:
77427
+ return self._strings
77428
+
77429
+ @builtins.property
77430
+ def doubles(self) -> Optional[List[float]]:
77431
+ return self._doubles
77432
+
77433
+ @builtins.property
77434
+ def ints(self) -> Optional[List[int]]:
77435
+ return self._ints
77436
+
77437
+ def accept(self, visitor) -> Any:
77438
+ if not isinstance(visitor, storage_writer_api_ColumnValuesVisitor):
77439
+ raise ValueError('{} is not an instance of storage_writer_api_ColumnValuesVisitor'.format(visitor.__class__.__name__))
77440
+ if self._type == 'strings' and self.strings is not None:
77441
+ return visitor._strings(self.strings)
77442
+ if self._type == 'doubles' and self.doubles is not None:
77443
+ return visitor._doubles(self.doubles)
77444
+ if self._type == 'ints' and self.ints is not None:
77445
+ return visitor._ints(self.ints)
77446
+
77447
+
77448
+ storage_writer_api_ColumnValues.__name__ = "ColumnValues"
77449
+ storage_writer_api_ColumnValues.__qualname__ = "ColumnValues"
77450
+ storage_writer_api_ColumnValues.__module__ = "nominal_api.storage_writer_api"
77451
+
77452
+
77453
+ class storage_writer_api_ColumnValuesVisitor:
77454
+
77455
+ @abstractmethod
77456
+ def _strings(self, strings: List[str]) -> Any:
77457
+ pass
77458
+
77459
+ @abstractmethod
77460
+ def _doubles(self, doubles: List[float]) -> Any:
77461
+ pass
77462
+
77463
+ @abstractmethod
77464
+ def _ints(self, ints: List[int]) -> Any:
77465
+ pass
77466
+
77467
+
77468
+ storage_writer_api_ColumnValuesVisitor.__name__ = "ColumnValuesVisitor"
77469
+ storage_writer_api_ColumnValuesVisitor.__qualname__ = "ColumnValuesVisitor"
77470
+ storage_writer_api_ColumnValuesVisitor.__module__ = "nominal_api.storage_writer_api"
77471
+
77472
+
77201
77473
  class storage_writer_api_DirectNominalChannelWriterService(Service):
77202
77474
  """
77203
77475
  Writes data points directly to Nominal's managed database offering.
@@ -77425,6 +77697,42 @@ class storage_writer_api_NominalChannelWriterService(Service):
77425
77697
 
77426
77698
  return
77427
77699
 
77700
+ def write_column_batches(self, auth_header: str, request: "storage_writer_api_WriteColumnBatchesRequest") -> None:
77701
+ """
77702
+ Synchronously writes batches of columns of data to a Nominal data source.
77703
+
77704
+ This is a column-major variant of writeBatches (which is row-major) to optimize serialization and compression
77705
+ time for client applications streaming large numbers of points from a single column at a time. This has the
77706
+ tradeoff of slightly larger sizes post-gzipping of requests, so should be used in the particular case where
77707
+ the main bottleneck is in encoding columnar data into the row-based format found in writeBatches.
77708
+ """
77709
+
77710
+ _headers: Dict[str, Any] = {
77711
+ 'Accept': 'application/json',
77712
+ 'Content-Type': 'application/json',
77713
+ 'Authorization': auth_header,
77714
+ }
77715
+
77716
+ _params: Dict[str, Any] = {
77717
+ }
77718
+
77719
+ _path_params: Dict[str, Any] = {
77720
+ }
77721
+
77722
+ _json: Any = ConjureEncoder().default(request)
77723
+
77724
+ _path = '/storage/writer/v1/columnar'
77725
+ _path = _path.format(**_path_params)
77726
+
77727
+ _response: Response = self._request(
77728
+ 'POST',
77729
+ self._uri + _path,
77730
+ params=_params,
77731
+ headers=_headers,
77732
+ json=_json)
77733
+
77734
+ return
77735
+
77428
77736
  def write_telegraf_batches(self, auth_header: str, data_source_rid: str, request: "storage_writer_api_WriteTelegrafBatchesRequest") -> None:
77429
77737
  """
77430
77738
  Synchronously writes batches of records to a Nominal data source.
@@ -78151,6 +78459,41 @@ storage_writer_api_WriteBatchesRequestExternal.__qualname__ = "WriteBatchesReque
78151
78459
  storage_writer_api_WriteBatchesRequestExternal.__module__ = "nominal_api.storage_writer_api"
78152
78460
 
78153
78461
 
78462
+ class storage_writer_api_WriteColumnBatchesRequest(ConjureBeanType):
78463
+
78464
+ @builtins.classmethod
78465
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
78466
+ return {
78467
+ 'batches': ConjureFieldDefinition('batches', List[storage_writer_api_ColumnBatch]),
78468
+ 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_NominalDataSourceOrDatasetRid)
78469
+ }
78470
+
78471
+ __slots__: List[str] = ['_batches', '_data_source_rid']
78472
+
78473
+ def __init__(self, batches: List["storage_writer_api_ColumnBatch"], data_source_rid: str) -> None:
78474
+ self._batches = batches
78475
+ self._data_source_rid = data_source_rid
78476
+
78477
+ @builtins.property
78478
+ def batches(self) -> List["storage_writer_api_ColumnBatch"]:
78479
+ """
78480
+ Batches of columnar data to stream to Nominal. Each channel's data are provided as a column batch.
78481
+ """
78482
+ return self._batches
78483
+
78484
+ @builtins.property
78485
+ def data_source_rid(self) -> str:
78486
+ """
78487
+ RID of the datasource (e.g., for a Connection) or dataset to stream data into.
78488
+ """
78489
+ return self._data_source_rid
78490
+
78491
+
78492
+ storage_writer_api_WriteColumnBatchesRequest.__name__ = "WriteColumnBatchesRequest"
78493
+ storage_writer_api_WriteColumnBatchesRequest.__qualname__ = "WriteColumnBatchesRequest"
78494
+ storage_writer_api_WriteColumnBatchesRequest.__module__ = "nominal_api.storage_writer_api"
78495
+
78496
+
78154
78497
  class storage_writer_api_WriteLogsRequest(ConjureBeanType):
78155
78498
 
78156
78499
  @builtins.classmethod
@@ -86,6 +86,7 @@ from .._impl import (
86
86
  scout_compute_api_DriverSeries3d as DriverSeries3d,
87
87
  scout_compute_api_DurationConstant as DurationConstant,
88
88
  scout_compute_api_DurationConstantVisitor as DurationConstantVisitor,
89
+ scout_compute_api_DurationFilterRanges as DurationFilterRanges,
89
90
  scout_compute_api_EnumAggregationFunction as EnumAggregationFunction,
90
91
  scout_compute_api_EnumBucket as EnumBucket,
91
92
  scout_compute_api_EnumCountDuplicateSeries as EnumCountDuplicateSeries,
@@ -24,6 +24,7 @@ from .._impl import (
24
24
  scout_compute_resolved_api_CurveFitPlotTypeNode as CurveFitPlotTypeNode,
25
25
  scout_compute_resolved_api_CurveFitPlotTypeNodeVisitor as CurveFitPlotTypeNodeVisitor,
26
26
  scout_compute_resolved_api_DerivativeSeriesNode as DerivativeSeriesNode,
27
+ scout_compute_resolved_api_DurationFilterRangesNode as DurationFilterRangesNode,
27
28
  scout_compute_resolved_api_EnumCountDuplicateSeriesNode as EnumCountDuplicateSeriesNode,
28
29
  scout_compute_resolved_api_EnumEqualityRangesNode as EnumEqualityRangesNode,
29
30
  scout_compute_resolved_api_EnumFilterRangesNode as EnumFilterRangesNode,
@@ -2,6 +2,9 @@
2
2
  from .._impl import (
3
3
  storage_writer_api_ArrayPoints as ArrayPoints,
4
4
  storage_writer_api_ArrayPointsVisitor as ArrayPointsVisitor,
5
+ storage_writer_api_ColumnBatch as ColumnBatch,
6
+ storage_writer_api_ColumnValues as ColumnValues,
7
+ storage_writer_api_ColumnValuesVisitor as ColumnValuesVisitor,
5
8
  storage_writer_api_DirectNominalChannelWriterService as DirectNominalChannelWriterService,
6
9
  storage_writer_api_DoubleArrayPoint as DoubleArrayPoint,
7
10
  storage_writer_api_DoublePoint as DoublePoint,
@@ -22,6 +25,7 @@ from .._impl import (
22
25
  storage_writer_api_TelegrafMetric as TelegrafMetric,
23
26
  storage_writer_api_WriteBatchesRequest as WriteBatchesRequest,
24
27
  storage_writer_api_WriteBatchesRequestExternal as WriteBatchesRequestExternal,
28
+ storage_writer_api_WriteColumnBatchesRequest as WriteColumnBatchesRequest,
25
29
  storage_writer_api_WriteLogsRequest as WriteLogsRequest,
26
30
  storage_writer_api_WriteTelegrafBatchesRequest as WriteTelegrafBatchesRequest,
27
31
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.702.0
3
+ Version: 0.703.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<3,>=2.8.0
@@ -1,5 +1,5 @@
1
- nominal_api/__init__.py,sha256=OwHP7jV6t8-n1cjeaANjmtrsd0xd7ses8EfH1YHC-0k,1955
2
- nominal_api/_impl.py,sha256=_xfAcElsTIKDD3q3Qya8GapScvJ3QOk-WEcPL1IDpTI,3212968
1
+ nominal_api/__init__.py,sha256=WOjXRrnGry8pj2oj5gmJqM3Xh6sbtmeY91YStK6f1kk,1955
2
+ nominal_api/_impl.py,sha256=1LunadUC805ktmWRGX8mBu4pMpMRhOaRx5TLnWbgX3s,3226636
3
3
  nominal_api/py.typed,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
4
4
  nominal_api/api/__init__.py,sha256=1oJPOuAMfV2uClPUW8Ie1nj2Y6j81TDpedcc3yUFTe0,1294
5
5
  nominal_api/api_ids/__init__.py,sha256=CAtt44XgNZEEUDv-BbEbYtuxQ8y1wqSZU-STjBYdZv8,80
@@ -30,9 +30,9 @@ nominal_api/scout_checklistexecution_api/__init__.py,sha256=1_nOnCSWn7bniSvTfskQ
30
30
  nominal_api/scout_checks_api/__init__.py,sha256=cNCQHBX38YqQv2qJMXwqUhjpCbayA3R9FqMmtKwzA3U,5160
31
31
  nominal_api/scout_comparisonnotebook_api/__init__.py,sha256=8BL5jE9NDxqCj9DyvZWSPhq6zw2J7xp6aLsl3x9rpyw,4530
32
32
  nominal_api/scout_comparisonrun_api/__init__.py,sha256=1LCXQe64tDqqeMQixW8PI-R_edSz7F5X0x2_ufEuC8M,480
33
- nominal_api/scout_compute_api/__init__.py,sha256=hqFzmHW1b58r3otIul1aUb_Qr0mL4QzO0Jq-GA9A9qU,19868
33
+ nominal_api/scout_compute_api/__init__.py,sha256=TFM96QwZOqvbkI1qa0BX7S7Iw0sRfo_t1lBg-QOoDmM,19936
34
34
  nominal_api/scout_compute_api_deprecated/__init__.py,sha256=RggSfc6C1VR1-kNXPWybpfw3hZbkQ1gvxEisFZCHdnM,3732
35
- nominal_api/scout_compute_resolved_api/__init__.py,sha256=LJFZQR1u_EQbZLzLGWMQVS8sEsKsFSmsITrlYGI5JsA,10801
35
+ nominal_api/scout_compute_resolved_api/__init__.py,sha256=vw310PtjaDwccDihR26-5AkuLFZ-ZMxG-tZpbQYde_4,10886
36
36
  nominal_api/scout_dataexport_api/__init__.py,sha256=pWRQdQJOObD0jITRYLw3AxeDJSrJQqAdFZACxULqA4o,1487
37
37
  nominal_api/scout_datareview_api/__init__.py,sha256=sdD3rdI65ZlVWXHRwk2sAranMypVdStq090U0UOOwuY,8320
38
38
  nominal_api/scout_datasource/__init__.py,sha256=1NWMrEx-JOEb4Pmd2oAqcpSmQB3g3lxgxFenWEtcF2M,101
@@ -61,7 +61,7 @@ nominal_api/security_api_workspace/__init__.py,sha256=W-TKCfSPTZ5XvLP0xFhkjCLKUW
61
61
  nominal_api/storage_datasource_api/__init__.py,sha256=jh_OZE_b4nBNAvnyenBjw8aGZOnvIXR6qvUKd31fXOk,445
62
62
  nominal_api/storage_deletion_api/__init__.py,sha256=2bIuAU0tcnT_8lqae0fcII4R45A_RzfV0y_E-vTkpSQ,267
63
63
  nominal_api/storage_series_api/__init__.py,sha256=F2ctWx8yqb4-JtfHkLzCq74njNEpGwr69b9fWQp9UAQ,99
64
- nominal_api/storage_writer_api/__init__.py,sha256=gGXpDRA9WJYYZ6F6dujahrgmWIZ337gUl2X7TQryFgE,1488
64
+ nominal_api/storage_writer_api/__init__.py,sha256=TmSnKSsv_ubvxN__SlDxSyAH9XierKm_7k50AB4vgZM,1738
65
65
  nominal_api/themes_api/__init__.py,sha256=w-G93T5f6_2zSSUi-ffyUHxH8QA_2oI9jM7YBSMFpwY,924
66
66
  nominal_api/timeseries_archetype/__init__.py,sha256=eKdgdZoOcZg_9pmec6J86NlgQdhxhi1282WUAFxghJ8,115
67
67
  nominal_api/timeseries_archetype_api/__init__.py,sha256=IREibRlChT9ugCAkeMKm7RiAChsKV4KJZ-DcKkVLC_U,1396
@@ -72,7 +72,7 @@ nominal_api/timeseries_logicalseries_api/__init__.py,sha256=Q9iZHurmyDsJIFbUg-Eb
72
72
  nominal_api/timeseries_seriescache/__init__.py,sha256=tFCkNuyrVMgtj-HIl1pOYPJHaL2VikI4C_x97bX_Lcs,109
73
73
  nominal_api/timeseries_seriescache_api/__init__.py,sha256=U9EhlqdF9qzD1O9al0vcvcdgS_C5lq-lN3Kmr0K3g84,1191
74
74
  nominal_api/upload_api/__init__.py,sha256=ZMudWMSqCrNozohbHaJKuxJnT9Edepe7nxxXMz_pT9k,87
75
- nominal_api-0.702.0.dist-info/METADATA,sha256=SgrjFvg0l9Z6ndFXVZIk9pN10OglPnUGrm7AYCj_b1w,199
76
- nominal_api-0.702.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
- nominal_api-0.702.0.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
78
- nominal_api-0.702.0.dist-info/RECORD,,
75
+ nominal_api-0.703.0.dist-info/METADATA,sha256=LM52vVlig9wlHicdyWxsgJbu8Nr0bRr47eBuvBtcusk,199
76
+ nominal_api-0.703.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
+ nominal_api-0.703.0.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
78
+ nominal_api-0.703.0.dist-info/RECORD,,