nominal-api 0.701.2__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.701.2"
78
+ __version__ = "0.703.0"
79
79
 
nominal_api/_impl.py CHANGED
@@ -5546,6 +5546,52 @@ event_BatchUpdateDispositionResponse.__qualname__ = "BatchUpdateDispositionRespo
5546
5546
  event_BatchUpdateDispositionResponse.__module__ = "nominal_api.event"
5547
5547
 
5548
5548
 
5549
+ class event_BatchUpdateEventRequest(ConjureBeanType):
5550
+
5551
+ @builtins.classmethod
5552
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
5553
+ return {
5554
+ 'requests': ConjureFieldDefinition('requests', List[event_UpdateEventRequest])
5555
+ }
5556
+
5557
+ __slots__: List[str] = ['_requests']
5558
+
5559
+ def __init__(self, requests: List["event_UpdateEventRequest"]) -> None:
5560
+ self._requests = requests
5561
+
5562
+ @builtins.property
5563
+ def requests(self) -> List["event_UpdateEventRequest"]:
5564
+ return self._requests
5565
+
5566
+
5567
+ event_BatchUpdateEventRequest.__name__ = "BatchUpdateEventRequest"
5568
+ event_BatchUpdateEventRequest.__qualname__ = "BatchUpdateEventRequest"
5569
+ event_BatchUpdateEventRequest.__module__ = "nominal_api.event"
5570
+
5571
+
5572
+ class event_BatchUpdateEventResponse(ConjureBeanType):
5573
+
5574
+ @builtins.classmethod
5575
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
5576
+ return {
5577
+ 'events': ConjureFieldDefinition('events', List[event_Event])
5578
+ }
5579
+
5580
+ __slots__: List[str] = ['_events']
5581
+
5582
+ def __init__(self, events: List["event_Event"]) -> None:
5583
+ self._events = events
5584
+
5585
+ @builtins.property
5586
+ def events(self) -> List["event_Event"]:
5587
+ return self._events
5588
+
5589
+
5590
+ event_BatchUpdateEventResponse.__name__ = "BatchUpdateEventResponse"
5591
+ event_BatchUpdateEventResponse.__qualname__ = "BatchUpdateEventResponse"
5592
+ event_BatchUpdateEventResponse.__module__ = "nominal_api.event"
5593
+
5594
+
5549
5595
  class event_CheckOriginMetadata(ConjureBeanType):
5550
5596
 
5551
5597
  @builtins.classmethod
@@ -6142,6 +6188,39 @@ The Event Service is responsible for creating and retrieving events for a partic
6142
6188
  _decoder = ConjureDecoder()
6143
6189
  return _decoder.decode(_response.json(), event_Event, self._return_none_for_unknown_union_types)
6144
6190
 
6191
+ def batch_update_event(self, auth_header: str, request: "event_BatchUpdateEventRequest") -> "event_BatchUpdateEventResponse":
6192
+ """
6193
+ Updates the fields of an event specified by each request in the batch.
6194
+ Empty fields in the UpdateEventRequest are left unchanged.
6195
+ """
6196
+
6197
+ _headers: Dict[str, Any] = {
6198
+ 'Accept': 'application/json',
6199
+ 'Content-Type': 'application/json',
6200
+ 'Authorization': auth_header,
6201
+ }
6202
+
6203
+ _params: Dict[str, Any] = {
6204
+ }
6205
+
6206
+ _path_params: Dict[str, Any] = {
6207
+ }
6208
+
6209
+ _json: Any = ConjureEncoder().default(request)
6210
+
6211
+ _path = '/event/v1/events/batch-update'
6212
+ _path = _path.format(**_path_params)
6213
+
6214
+ _response: Response = self._request(
6215
+ 'POST',
6216
+ self._uri + _path,
6217
+ params=_params,
6218
+ headers=_headers,
6219
+ json=_json)
6220
+
6221
+ _decoder = ConjureDecoder()
6222
+ return _decoder.decode(_response.json(), event_BatchUpdateEventResponse, self._return_none_for_unknown_union_types)
6223
+
6145
6224
  def batch_update_disposition(self, auth_header: str, request: "event_BatchUpdateDispositionRequest") -> "event_BatchUpdateDispositionResponse":
6146
6225
  """
6147
6226
  Updates the disposition of an event.
@@ -6494,6 +6573,7 @@ class event_HistogramFilterQuery(ConjureUnionType):
6494
6573
  _property: Optional["api_Property"] = None
6495
6574
  _and_: Optional[List["event_HistogramFilterQuery"]] = None
6496
6575
  _or_: Optional[List["event_HistogramFilterQuery"]] = None
6576
+ _not_: Optional["event_HistogramFilterQuery"] = None
6497
6577
  _workspace: Optional[str] = None
6498
6578
 
6499
6579
  @builtins.classmethod
@@ -6514,6 +6594,7 @@ class event_HistogramFilterQuery(ConjureUnionType):
6514
6594
  'property': ConjureFieldDefinition('property', api_Property),
6515
6595
  'and_': ConjureFieldDefinition('and', List[event_HistogramFilterQuery]),
6516
6596
  'or_': ConjureFieldDefinition('or', List[event_HistogramFilterQuery]),
6597
+ 'not_': ConjureFieldDefinition('not', event_HistogramFilterQuery),
6517
6598
  'workspace': ConjureFieldDefinition('workspace', api_rids_WorkspaceRid)
6518
6599
  }
6519
6600
 
@@ -6534,11 +6615,12 @@ class event_HistogramFilterQuery(ConjureUnionType):
6534
6615
  property: Optional["api_Property"] = None,
6535
6616
  and_: Optional[List["event_HistogramFilterQuery"]] = None,
6536
6617
  or_: Optional[List["event_HistogramFilterQuery"]] = None,
6618
+ not_: Optional["event_HistogramFilterQuery"] = None,
6537
6619
  workspace: Optional[str] = None,
6538
6620
  type_of_union: Optional[str] = None
6539
6621
  ) -> None:
6540
6622
  if type_of_union is None:
6541
- if (search_text is not None) + (asset is not None) + (template is not None) + (workbook is not None) + (data_review is not None) + (origin_type is not None) + (data_review_check is not None) + (disposition_status is not None) + (priority is not None) + (assignee is not None) + (event_type is not None) + (label is not None) + (property is not None) + (and_ is not None) + (or_ is not None) + (workspace is not None) != 1:
6623
+ if (search_text is not None) + (asset is not None) + (template is not None) + (workbook is not None) + (data_review is not None) + (origin_type is not None) + (data_review_check is not None) + (disposition_status is not None) + (priority is not None) + (assignee is not None) + (event_type is not None) + (label is not None) + (property is not None) + (and_ is not None) + (or_ is not None) + (not_ is not None) + (workspace is not None) != 1:
6542
6624
  raise ValueError('a union must contain a single member')
6543
6625
 
6544
6626
  if search_text is not None:
@@ -6586,6 +6668,9 @@ class event_HistogramFilterQuery(ConjureUnionType):
6586
6668
  if or_ is not None:
6587
6669
  self._or_ = or_
6588
6670
  self._type = 'or'
6671
+ if not_ is not None:
6672
+ self._not_ = not_
6673
+ self._type = 'not'
6589
6674
  if workspace is not None:
6590
6675
  self._workspace = workspace
6591
6676
  self._type = 'workspace'
@@ -6665,6 +6750,11 @@ class event_HistogramFilterQuery(ConjureUnionType):
6665
6750
  raise ValueError('a union value must not be None')
6666
6751
  self._or_ = or_
6667
6752
  self._type = 'or'
6753
+ elif type_of_union == 'not':
6754
+ if not_ is None:
6755
+ raise ValueError('a union value must not be None')
6756
+ self._not_ = not_
6757
+ self._type = 'not'
6668
6758
  elif type_of_union == 'workspace':
6669
6759
  if workspace is None:
6670
6760
  raise ValueError('a union value must not be None')
@@ -6731,6 +6821,10 @@ class event_HistogramFilterQuery(ConjureUnionType):
6731
6821
  def or_(self) -> Optional[List["event_HistogramFilterQuery"]]:
6732
6822
  return self._or_
6733
6823
 
6824
+ @builtins.property
6825
+ def not_(self) -> Optional["event_HistogramFilterQuery"]:
6826
+ return self._not_
6827
+
6734
6828
  @builtins.property
6735
6829
  def workspace(self) -> Optional[str]:
6736
6830
  return self._workspace
@@ -6768,6 +6862,8 @@ class event_HistogramFilterQuery(ConjureUnionType):
6768
6862
  return visitor._and(self.and_)
6769
6863
  if self._type == 'or' and self.or_ is not None:
6770
6864
  return visitor._or(self.or_)
6865
+ if self._type == 'not' and self.not_ is not None:
6866
+ return visitor._not(self.not_)
6771
6867
  if self._type == 'workspace' and self.workspace is not None:
6772
6868
  return visitor._workspace(self.workspace)
6773
6869
 
@@ -6839,6 +6935,10 @@ class event_HistogramFilterQueryVisitor:
6839
6935
  def _or(self, or_: List["event_HistogramFilterQuery"]) -> Any:
6840
6936
  pass
6841
6937
 
6938
+ @abstractmethod
6939
+ def _not(self, not_: "event_HistogramFilterQuery") -> Any:
6940
+ pass
6941
+
6842
6942
  @abstractmethod
6843
6943
  def _workspace(self, workspace: str) -> Any:
6844
6944
  pass
@@ -6971,6 +7071,7 @@ class event_SearchQuery(ConjureUnionType):
6971
7071
  _property: Optional["api_Property"] = None
6972
7072
  _and_: Optional[List["event_SearchQuery"]] = None
6973
7073
  _or_: Optional[List["event_SearchQuery"]] = None
7074
+ _not_: Optional["event_SearchQuery"] = None
6974
7075
  _workspace: Optional[str] = None
6975
7076
 
6976
7077
  @builtins.classmethod
@@ -6993,6 +7094,7 @@ class event_SearchQuery(ConjureUnionType):
6993
7094
  'property': ConjureFieldDefinition('property', api_Property),
6994
7095
  'and_': ConjureFieldDefinition('and', List[event_SearchQuery]),
6995
7096
  'or_': ConjureFieldDefinition('or', List[event_SearchQuery]),
7097
+ 'not_': ConjureFieldDefinition('not', event_SearchQuery),
6996
7098
  'workspace': ConjureFieldDefinition('workspace', api_rids_WorkspaceRid)
6997
7099
  }
6998
7100
 
@@ -7015,11 +7117,12 @@ class event_SearchQuery(ConjureUnionType):
7015
7117
  property: Optional["api_Property"] = None,
7016
7118
  and_: Optional[List["event_SearchQuery"]] = None,
7017
7119
  or_: Optional[List["event_SearchQuery"]] = None,
7120
+ not_: Optional["event_SearchQuery"] = None,
7018
7121
  workspace: Optional[str] = None,
7019
7122
  type_of_union: Optional[str] = None
7020
7123
  ) -> None:
7021
7124
  if type_of_union is None:
7022
- if (search_text is not None) + (after is not None) + (before is not None) + (asset is not None) + (template is not None) + (workbook is not None) + (data_review is not None) + (origin_type is not None) + (data_review_check is not None) + (disposition_status is not None) + (priority is not None) + (assignee is not None) + (event_type is not None) + (label is not None) + (property is not None) + (and_ is not None) + (or_ is not None) + (workspace is not None) != 1:
7125
+ if (search_text is not None) + (after is not None) + (before is not None) + (asset is not None) + (template is not None) + (workbook is not None) + (data_review is not None) + (origin_type is not None) + (data_review_check is not None) + (disposition_status is not None) + (priority is not None) + (assignee is not None) + (event_type is not None) + (label is not None) + (property is not None) + (and_ is not None) + (or_ is not None) + (not_ is not None) + (workspace is not None) != 1:
7023
7126
  raise ValueError('a union must contain a single member')
7024
7127
 
7025
7128
  if search_text is not None:
@@ -7073,6 +7176,9 @@ class event_SearchQuery(ConjureUnionType):
7073
7176
  if or_ is not None:
7074
7177
  self._or_ = or_
7075
7178
  self._type = 'or'
7179
+ if not_ is not None:
7180
+ self._not_ = not_
7181
+ self._type = 'not'
7076
7182
  if workspace is not None:
7077
7183
  self._workspace = workspace
7078
7184
  self._type = 'workspace'
@@ -7162,6 +7268,11 @@ class event_SearchQuery(ConjureUnionType):
7162
7268
  raise ValueError('a union value must not be None')
7163
7269
  self._or_ = or_
7164
7270
  self._type = 'or'
7271
+ elif type_of_union == 'not':
7272
+ if not_ is None:
7273
+ raise ValueError('a union value must not be None')
7274
+ self._not_ = not_
7275
+ self._type = 'not'
7165
7276
  elif type_of_union == 'workspace':
7166
7277
  if workspace is None:
7167
7278
  raise ValueError('a union value must not be None')
@@ -7242,6 +7353,10 @@ class event_SearchQuery(ConjureUnionType):
7242
7353
  def or_(self) -> Optional[List["event_SearchQuery"]]:
7243
7354
  return self._or_
7244
7355
 
7356
+ @builtins.property
7357
+ def not_(self) -> Optional["event_SearchQuery"]:
7358
+ return self._not_
7359
+
7245
7360
  @builtins.property
7246
7361
  def workspace(self) -> Optional[str]:
7247
7362
  return self._workspace
@@ -7283,6 +7398,8 @@ class event_SearchQuery(ConjureUnionType):
7283
7398
  return visitor._and(self.and_)
7284
7399
  if self._type == 'or' and self.or_ is not None:
7285
7400
  return visitor._or(self.or_)
7401
+ if self._type == 'not' and self.not_ is not None:
7402
+ return visitor._not(self.not_)
7286
7403
  if self._type == 'workspace' and self.workspace is not None:
7287
7404
  return visitor._workspace(self.workspace)
7288
7405
 
@@ -7362,6 +7479,10 @@ class event_SearchQueryVisitor:
7362
7479
  def _or(self, or_: List["event_SearchQuery"]) -> Any:
7363
7480
  pass
7364
7481
 
7482
+ @abstractmethod
7483
+ def _not(self, not_: "event_SearchQuery") -> Any:
7484
+ pass
7485
+
7365
7486
  @abstractmethod
7366
7487
  def _workspace(self, workspace: str) -> Any:
7367
7488
  pass
@@ -7568,6 +7689,81 @@ event_UpdateEvent.__qualname__ = "UpdateEvent"
7568
7689
  event_UpdateEvent.__module__ = "nominal_api.event"
7569
7690
 
7570
7691
 
7692
+ class event_UpdateEventRequest(ConjureBeanType):
7693
+
7694
+ @builtins.classmethod
7695
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
7696
+ return {
7697
+ 'rid': ConjureFieldDefinition('rid', api_rids_EventRid),
7698
+ 'asset_rids': ConjureFieldDefinition('assetRids', OptionalTypeWrapper[List[scout_rids_api_AssetRid]]),
7699
+ 'timestamp': ConjureFieldDefinition('timestamp', OptionalTypeWrapper[api_Timestamp]),
7700
+ 'duration': ConjureFieldDefinition('duration', OptionalTypeWrapper[scout_run_api_Duration]),
7701
+ 'name': ConjureFieldDefinition('name', OptionalTypeWrapper[str]),
7702
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
7703
+ 'type': ConjureFieldDefinition('type', OptionalTypeWrapper[event_EventType]),
7704
+ 'labels': ConjureFieldDefinition('labels', OptionalTypeWrapper[List[api_Label]]),
7705
+ 'properties': ConjureFieldDefinition('properties', OptionalTypeWrapper[Dict[api_PropertyName, api_PropertyValue]])
7706
+ }
7707
+
7708
+ __slots__: List[str] = ['_rid', '_asset_rids', '_timestamp', '_duration', '_name', '_description', '_type', '_labels', '_properties']
7709
+
7710
+ def __init__(self, rid: str, asset_rids: Optional[List[str]] = None, description: Optional[str] = None, duration: Optional["scout_run_api_Duration"] = None, labels: Optional[List[str]] = None, name: Optional[str] = None, properties: Optional[Dict[str, str]] = None, timestamp: Optional["api_Timestamp"] = None, type: Optional["event_EventType"] = None) -> None:
7711
+ self._rid = rid
7712
+ self._asset_rids = asset_rids
7713
+ self._timestamp = timestamp
7714
+ self._duration = duration
7715
+ self._name = name
7716
+ self._description = description
7717
+ self._type = type
7718
+ self._labels = labels
7719
+ self._properties = properties
7720
+
7721
+ @builtins.property
7722
+ def rid(self) -> str:
7723
+ return self._rid
7724
+
7725
+ @builtins.property
7726
+ def asset_rids(self) -> Optional[List[str]]:
7727
+ """
7728
+ If provided, will replace the existing asset rids.
7729
+ If provided, must contain at least one asset rid.
7730
+ """
7731
+ return self._asset_rids
7732
+
7733
+ @builtins.property
7734
+ def timestamp(self) -> Optional["api_Timestamp"]:
7735
+ return self._timestamp
7736
+
7737
+ @builtins.property
7738
+ def duration(self) -> Optional["scout_run_api_Duration"]:
7739
+ return self._duration
7740
+
7741
+ @builtins.property
7742
+ def name(self) -> Optional[str]:
7743
+ return self._name
7744
+
7745
+ @builtins.property
7746
+ def description(self) -> Optional[str]:
7747
+ return self._description
7748
+
7749
+ @builtins.property
7750
+ def type(self) -> Optional["event_EventType"]:
7751
+ return self._type
7752
+
7753
+ @builtins.property
7754
+ def labels(self) -> Optional[List[str]]:
7755
+ return self._labels
7756
+
7757
+ @builtins.property
7758
+ def properties(self) -> Optional[Dict[str, str]]:
7759
+ return self._properties
7760
+
7761
+
7762
+ event_UpdateEventRequest.__name__ = "UpdateEventRequest"
7763
+ event_UpdateEventRequest.__qualname__ = "UpdateEventRequest"
7764
+ event_UpdateEventRequest.__module__ = "nominal_api.event"
7765
+
7766
+
7571
7767
  class event_WorkbookEventOrigin(ConjureBeanType):
7572
7768
 
7573
7769
  @builtins.classmethod
@@ -38680,6 +38876,44 @@ scout_compute_api_DurationConstantVisitor.__qualname__ = "DurationConstantVisito
38680
38876
  scout_compute_api_DurationConstantVisitor.__module__ = "nominal_api.scout_compute_api"
38681
38877
 
38682
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
+
38683
38917
  class scout_compute_api_EnumAggregationFunction(ConjureEnumType):
38684
38918
 
38685
38919
  MIN = 'MIN'
@@ -44119,6 +44353,7 @@ scout_compute_api_RangeMap.__module__ = "nominal_api.scout_compute_api"
44119
44353
 
44120
44354
  class scout_compute_api_RangeSeries(ConjureUnionType):
44121
44355
  _approximate_threshold: Optional["scout_compute_api_ApproximateThresholdRanges"] = None
44356
+ _duration_filter: Optional["scout_compute_api_DurationFilterRanges"] = None
44122
44357
  _enum_filter: Optional["scout_compute_api_EnumFilterRanges"] = None
44123
44358
  _enum_series_equality_ranges_node: Optional["scout_compute_api_EnumSeriesEqualityRanges"] = None
44124
44359
  _function: Optional["scout_compute_api_RangesFunction"] = None
@@ -44141,6 +44376,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44141
44376
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
44142
44377
  return {
44143
44378
  'approximate_threshold': ConjureFieldDefinition('approximateThreshold', scout_compute_api_ApproximateThresholdRanges),
44379
+ 'duration_filter': ConjureFieldDefinition('durationFilter', scout_compute_api_DurationFilterRanges),
44144
44380
  'enum_filter': ConjureFieldDefinition('enumFilter', scout_compute_api_EnumFilterRanges),
44145
44381
  'enum_series_equality_ranges_node': ConjureFieldDefinition('enumSeriesEqualityRangesNode', scout_compute_api_EnumSeriesEqualityRanges),
44146
44382
  'function': ConjureFieldDefinition('function', scout_compute_api_RangesFunction),
@@ -44163,6 +44399,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44163
44399
  def __init__(
44164
44400
  self,
44165
44401
  approximate_threshold: Optional["scout_compute_api_ApproximateThresholdRanges"] = None,
44402
+ duration_filter: Optional["scout_compute_api_DurationFilterRanges"] = None,
44166
44403
  enum_filter: Optional["scout_compute_api_EnumFilterRanges"] = None,
44167
44404
  enum_series_equality_ranges_node: Optional["scout_compute_api_EnumSeriesEqualityRanges"] = None,
44168
44405
  function: Optional["scout_compute_api_RangesFunction"] = None,
@@ -44183,12 +44420,15 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44183
44420
  type_of_union: Optional[str] = None
44184
44421
  ) -> None:
44185
44422
  if type_of_union is None:
44186
- 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:
44187
44424
  raise ValueError('a union must contain a single member')
44188
44425
 
44189
44426
  if approximate_threshold is not None:
44190
44427
  self._approximate_threshold = approximate_threshold
44191
44428
  self._type = 'approximateThreshold'
44429
+ if duration_filter is not None:
44430
+ self._duration_filter = duration_filter
44431
+ self._type = 'durationFilter'
44192
44432
  if enum_filter is not None:
44193
44433
  self._enum_filter = enum_filter
44194
44434
  self._type = 'enumFilter'
@@ -44246,6 +44486,11 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44246
44486
  raise ValueError('a union value must not be None')
44247
44487
  self._approximate_threshold = approximate_threshold
44248
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'
44249
44494
  elif type_of_union == 'enumFilter':
44250
44495
  if enum_filter is None:
44251
44496
  raise ValueError('a union value must not be None')
@@ -44336,6 +44581,10 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44336
44581
  def approximate_threshold(self) -> Optional["scout_compute_api_ApproximateThresholdRanges"]:
44337
44582
  return self._approximate_threshold
44338
44583
 
44584
+ @builtins.property
44585
+ def duration_filter(self) -> Optional["scout_compute_api_DurationFilterRanges"]:
44586
+ return self._duration_filter
44587
+
44339
44588
  @builtins.property
44340
44589
  def enum_filter(self) -> Optional["scout_compute_api_EnumFilterRanges"]:
44341
44590
  return self._enum_filter
@@ -44415,6 +44664,8 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
44415
44664
  raise ValueError('{} is not an instance of scout_compute_api_RangeSeriesVisitor'.format(visitor.__class__.__name__))
44416
44665
  if self._type == 'approximateThreshold' and self.approximate_threshold is not None:
44417
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)
44418
44669
  if self._type == 'enumFilter' and self.enum_filter is not None:
44419
44670
  return visitor._enum_filter(self.enum_filter)
44420
44671
  if self._type == 'enumSeriesEqualityRangesNode' and self.enum_series_equality_ranges_node is not None:
@@ -44462,6 +44713,10 @@ class scout_compute_api_RangeSeriesVisitor:
44462
44713
  def _approximate_threshold(self, approximate_threshold: "scout_compute_api_ApproximateThresholdRanges") -> Any:
44463
44714
  pass
44464
44715
 
44716
+ @abstractmethod
44717
+ def _duration_filter(self, duration_filter: "scout_compute_api_DurationFilterRanges") -> Any:
44718
+ pass
44719
+
44465
44720
  @abstractmethod
44466
44721
  def _enum_filter(self, enum_filter: "scout_compute_api_EnumFilterRanges") -> Any:
44467
44722
  pass
@@ -50669,6 +50924,41 @@ scout_compute_resolved_api_DerivativeSeriesNode.__qualname__ = "DerivativeSeries
50669
50924
  scout_compute_resolved_api_DerivativeSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
50670
50925
 
50671
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
+
50672
50962
  class scout_compute_resolved_api_EnumCountDuplicateSeriesNode(ConjureBeanType):
50673
50963
 
50674
50964
  @builtins.classmethod
@@ -53348,6 +53638,7 @@ scout_compute_resolved_api_RangeMap.__module__ = "nominal_api.scout_compute_reso
53348
53638
 
53349
53639
 
53350
53640
  class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53641
+ _duration_filter: Optional["scout_compute_resolved_api_DurationFilterRangesNode"] = None
53351
53642
  _enum_equality: Optional["scout_compute_resolved_api_EnumEqualityRangesNode"] = None
53352
53643
  _enum_filter: Optional["scout_compute_resolved_api_EnumFilterRangesNode"] = None
53353
53644
  _extrema: Optional["scout_compute_resolved_api_ExtremaRangesNode"] = None
@@ -53366,6 +53657,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53366
53657
  @builtins.classmethod
53367
53658
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
53368
53659
  return {
53660
+ 'duration_filter': ConjureFieldDefinition('durationFilter', scout_compute_resolved_api_DurationFilterRangesNode),
53369
53661
  'enum_equality': ConjureFieldDefinition('enumEquality', scout_compute_resolved_api_EnumEqualityRangesNode),
53370
53662
  'enum_filter': ConjureFieldDefinition('enumFilter', scout_compute_resolved_api_EnumFilterRangesNode),
53371
53663
  'extrema': ConjureFieldDefinition('extrema', scout_compute_resolved_api_ExtremaRangesNode),
@@ -53384,6 +53676,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53384
53676
 
53385
53677
  def __init__(
53386
53678
  self,
53679
+ duration_filter: Optional["scout_compute_resolved_api_DurationFilterRangesNode"] = None,
53387
53680
  enum_equality: Optional["scout_compute_resolved_api_EnumEqualityRangesNode"] = None,
53388
53681
  enum_filter: Optional["scout_compute_resolved_api_EnumFilterRangesNode"] = None,
53389
53682
  extrema: Optional["scout_compute_resolved_api_ExtremaRangesNode"] = None,
@@ -53401,9 +53694,12 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53401
53694
  type_of_union: Optional[str] = None
53402
53695
  ) -> None:
53403
53696
  if type_of_union is None:
53404
- 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:
53405
53698
  raise ValueError('a union must contain a single member')
53406
53699
 
53700
+ if duration_filter is not None:
53701
+ self._duration_filter = duration_filter
53702
+ self._type = 'durationFilter'
53407
53703
  if enum_equality is not None:
53408
53704
  self._enum_equality = enum_equality
53409
53705
  self._type = 'enumEquality'
@@ -53447,6 +53743,11 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53447
53743
  self._union_range = union_range
53448
53744
  self._type = 'unionRange'
53449
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'
53450
53751
  elif type_of_union == 'enumEquality':
53451
53752
  if enum_equality is None:
53452
53753
  raise ValueError('a union value must not be None')
@@ -53518,6 +53819,10 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53518
53819
  self._union_range = union_range
53519
53820
  self._type = 'unionRange'
53520
53821
 
53822
+ @builtins.property
53823
+ def duration_filter(self) -> Optional["scout_compute_resolved_api_DurationFilterRangesNode"]:
53824
+ return self._duration_filter
53825
+
53521
53826
  @builtins.property
53522
53827
  def enum_equality(self) -> Optional["scout_compute_resolved_api_EnumEqualityRangesNode"]:
53523
53828
  return self._enum_equality
@@ -53577,6 +53882,8 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
53577
53882
  def accept(self, visitor) -> Any:
53578
53883
  if not isinstance(visitor, scout_compute_resolved_api_RangesNodeVisitor):
53579
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)
53580
53887
  if self._type == 'enumEquality' and self.enum_equality is not None:
53581
53888
  return visitor._enum_equality(self.enum_equality)
53582
53889
  if self._type == 'enumFilter' and self.enum_filter is not None:
@@ -53614,6 +53921,10 @@ scout_compute_resolved_api_RangesNode.__module__ = "nominal_api.scout_compute_re
53614
53921
 
53615
53922
  class scout_compute_resolved_api_RangesNodeVisitor:
53616
53923
 
53924
+ @abstractmethod
53925
+ def _duration_filter(self, duration_filter: "scout_compute_resolved_api_DurationFilterRangesNode") -> Any:
53926
+ pass
53927
+
53617
53928
  @abstractmethod
53618
53929
  def _enum_equality(self, enum_equality: "scout_compute_resolved_api_EnumEqualityRangesNode") -> Any:
53619
53930
  pass
@@ -75094,12 +75405,12 @@ class scout_workbookcommon_api_EventReference(ConjureBeanType):
75094
75405
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
75095
75406
  return {
75096
75407
  'event_uuid': ConjureFieldDefinition('eventUuid', OptionalTypeWrapper[str]),
75097
- 'rid': ConjureFieldDefinition('rid', OptionalTypeWrapper[api_rids_EventRid])
75408
+ 'rid': ConjureFieldDefinition('rid', api_rids_EventRid)
75098
75409
  }
75099
75410
 
75100
75411
  __slots__: List[str] = ['_event_uuid', '_rid']
75101
75412
 
75102
- def __init__(self, event_uuid: Optional[str] = None, rid: Optional[str] = None) -> None:
75413
+ def __init__(self, rid: str, event_uuid: Optional[str] = None) -> None:
75103
75414
  self._event_uuid = event_uuid
75104
75415
  self._rid = rid
75105
75416
 
@@ -75108,9 +75419,9 @@ class scout_workbookcommon_api_EventReference(ConjureBeanType):
75108
75419
  return self._event_uuid
75109
75420
 
75110
75421
  @builtins.property
75111
- def rid(self) -> Optional[str]:
75422
+ def rid(self) -> str:
75112
75423
  """
75113
- The event's unique identifier. This will soon be a required field.
75424
+ The event's unique identifier.
75114
75425
  """
75115
75426
  return self._rid
75116
75427
 
@@ -77002,6 +77313,163 @@ storage_writer_api_ArrayPointsVisitor.__qualname__ = "ArrayPointsVisitor"
77002
77313
  storage_writer_api_ArrayPointsVisitor.__module__ = "nominal_api.storage_writer_api"
77003
77314
 
77004
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
+
77005
77473
  class storage_writer_api_DirectNominalChannelWriterService(Service):
77006
77474
  """
77007
77475
  Writes data points directly to Nominal's managed database offering.
@@ -77229,6 +77697,42 @@ class storage_writer_api_NominalChannelWriterService(Service):
77229
77697
 
77230
77698
  return
77231
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
+
77232
77736
  def write_telegraf_batches(self, auth_header: str, data_source_rid: str, request: "storage_writer_api_WriteTelegrafBatchesRequest") -> None:
77233
77737
  """
77234
77738
  Synchronously writes batches of records to a Nominal data source.
@@ -77955,6 +78459,41 @@ storage_writer_api_WriteBatchesRequestExternal.__qualname__ = "WriteBatchesReque
77955
78459
  storage_writer_api_WriteBatchesRequestExternal.__module__ = "nominal_api.storage_writer_api"
77956
78460
 
77957
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
+
77958
78497
  class storage_writer_api_WriteLogsRequest(ConjureBeanType):
77959
78498
 
77960
78499
  @builtins.classmethod
@@ -4,6 +4,8 @@ from .._impl import (
4
4
  event_ArchiveEvent as ArchiveEvent,
5
5
  event_BatchUpdateDispositionRequest as BatchUpdateDispositionRequest,
6
6
  event_BatchUpdateDispositionResponse as BatchUpdateDispositionResponse,
7
+ event_BatchUpdateEventRequest as BatchUpdateEventRequest,
8
+ event_BatchUpdateEventResponse as BatchUpdateEventResponse,
7
9
  event_CheckOriginMetadata as CheckOriginMetadata,
8
10
  event_CreateEvent as CreateEvent,
9
11
  event_DataReviewEventOrigin as DataReviewEventOrigin,
@@ -30,6 +32,7 @@ from .._impl import (
30
32
  event_TemplateEventOrigin as TemplateEventOrigin,
31
33
  event_UpdateDispositionRequest as UpdateDispositionRequest,
32
34
  event_UpdateEvent as UpdateEvent,
35
+ event_UpdateEventRequest as UpdateEventRequest,
33
36
  event_WorkbookEventOrigin as WorkbookEventOrigin,
34
37
  )
35
38
 
@@ -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.701.2
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=8IpugkJAJv5cJkgSPZJpYUJ_eyCMRF2wgJVVzEd7uwQ,1955
2
- nominal_api/_impl.py,sha256=0Gml0qjPHdhVAHhC6D63fRJTdG_CljP2RiMlspQ0_M4,3205926
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
@@ -14,7 +14,7 @@ nominal_api/datasource_api/__init__.py,sha256=-0v4FGK22kyCALrJ-LRcwJ-QHDUnFCBqj_
14
14
  nominal_api/datasource_logset/__init__.py,sha256=H3fNxqyYC490MwvdWbt5BwhgWQUev7uieaLz5hUbZDc,94
15
15
  nominal_api/datasource_logset_api/__init__.py,sha256=JyjO1tQmG-HZ7kYMi8lSfeaaYddBZdCMIyqc0IUJfWo,1006
16
16
  nominal_api/datasource_pagination_api/__init__.py,sha256=3GO8TAUavOe6dUEitOhje74aSZHjTKVI5N1MNuct1lI,212
17
- nominal_api/event/__init__.py,sha256=zcrM1UbIi-nnXmuns9Q-yyXRuTJY2SfJe2yYrJ7U-Dw,1602
17
+ nominal_api/event/__init__.py,sha256=Kpvbh_YSNgVS2zHwYT9efLdS9GkPrYCUuyafPsMEJgE,1780
18
18
  nominal_api/ingest_api/__init__.py,sha256=pX6SuqdKC9Um0Rko2-EE04LyjOpaN8jAYDezl3LGAPw,7491
19
19
  nominal_api/ingest_workflow_api/__init__.py,sha256=Xvz7jXoK5k_zEWzGnMB9EB942T-yCpX3CNHq-rqewlg,2094
20
20
  nominal_api/persistent_compute_api/__init__.py,sha256=ThraDBJyYB5nFrbB6FZZpDoVAmsq8GAibiK0nu63MVA,2050
@@ -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.701.2.dist-info/METADATA,sha256=rkMgd37o9VHOoktH4lhJBVZ77xXrZCm4SASROynQ5Cs,199
76
- nominal_api-0.701.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
- nominal_api-0.701.2.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
78
- nominal_api-0.701.2.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,,