nominal-api 0.977.1__tar.gz → 0.979.0__tar.gz

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.
Files changed (89) hide show
  1. {nominal_api-0.977.1 → nominal_api-0.979.0}/PKG-INFO +1 -1
  2. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/__init__.py +1 -1
  3. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/_impl.py +396 -12
  4. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/event/__init__.py +4 -0
  5. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_compute_api/__init__.py +4 -0
  6. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_compute_resolved_api/__init__.py +4 -0
  7. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/storage_writer_api/__init__.py +4 -0
  8. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api.egg-info/PKG-INFO +1 -1
  9. {nominal_api-0.977.1 → nominal_api-0.979.0}/setup.py +1 -1
  10. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/api/__init__.py +0 -0
  11. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/api_ids/__init__.py +0 -0
  12. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/api_rids/__init__.py +0 -0
  13. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/attachments_api/__init__.py +0 -0
  14. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/authentication_api/__init__.py +0 -0
  15. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/authorization/__init__.py +0 -0
  16. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/comments_api/__init__.py +0 -0
  17. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/connect_download/__init__.py +0 -0
  18. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/datasource/__init__.py +0 -0
  19. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/datasource_api/__init__.py +0 -0
  20. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/datasource_logset/__init__.py +0 -0
  21. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/datasource_logset_api/__init__.py +0 -0
  22. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/datasource_pagination_api/__init__.py +0 -0
  23. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/ingest_api/__init__.py +0 -0
  24. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/ingest_manifest/__init__.py +0 -0
  25. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/ingest_workflow_api/__init__.py +0 -0
  26. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/module/__init__.py +0 -0
  27. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/module_internal/__init__.py +0 -0
  28. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/modules_api/__init__.py +0 -0
  29. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/persistent_compute_api/__init__.py +0 -0
  30. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/py.typed +0 -0
  31. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout/__init__.py +0 -0
  32. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_api/__init__.py +0 -0
  33. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_asset_api/__init__.py +0 -0
  34. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_assets/__init__.py +0 -0
  35. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_catalog/__init__.py +0 -0
  36. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_channelvariables_api/__init__.py +0 -0
  37. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_chart_api/__init__.py +0 -0
  38. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_chartdefinition_api/__init__.py +0 -0
  39. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_checklistexecution_api/__init__.py +0 -0
  40. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_checks_api/__init__.py +0 -0
  41. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_comparisonnotebook_api/__init__.py +0 -0
  42. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_comparisonrun_api/__init__.py +0 -0
  43. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_compute_api_deprecated/__init__.py +0 -0
  44. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_dataexport_api/__init__.py +0 -0
  45. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_datareview_api/__init__.py +0 -0
  46. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_datasource/__init__.py +0 -0
  47. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_datasource_connection/__init__.py +0 -0
  48. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_datasource_connection_api/__init__.py +0 -0
  49. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_datasource_connection_api_influx/__init__.py +0 -0
  50. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_favorites/__init__.py +0 -0
  51. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_favorites_api/__init__.py +0 -0
  52. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_integrations_api/__init__.py +0 -0
  53. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_internal_search_api/__init__.py +0 -0
  54. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_jobs_api/__init__.py +0 -0
  55. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_layout_api/__init__.py +0 -0
  56. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_metadata/__init__.py +0 -0
  57. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_notebook_api/__init__.py +0 -0
  58. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_plotting/__init__.py +0 -0
  59. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_rids_api/__init__.py +0 -0
  60. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_run_api/__init__.py +0 -0
  61. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_savedviews/__init__.py +0 -0
  62. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_savedviews_api/__init__.py +0 -0
  63. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_template_api/__init__.py +0 -0
  64. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_units_api/__init__.py +0 -0
  65. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_versioning_api/__init__.py +0 -0
  66. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_video/__init__.py +0 -0
  67. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_video_api/__init__.py +0 -0
  68. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/scout_workbookcommon_api/__init__.py +0 -0
  69. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/secrets_api/__init__.py +0 -0
  70. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/security_api_workspace/__init__.py +0 -0
  71. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/storage_datasource_api/__init__.py +0 -0
  72. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/storage_deletion_api/__init__.py +0 -0
  73. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/storage_series_api/__init__.py +0 -0
  74. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/themes_api/__init__.py +0 -0
  75. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_channelmetadata/__init__.py +0 -0
  76. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_channelmetadata_api/__init__.py +0 -0
  77. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_logicalseries/__init__.py +0 -0
  78. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_logicalseries_api/__init__.py +0 -0
  79. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_metadata/__init__.py +0 -0
  80. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_metadata_api/__init__.py +0 -0
  81. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_seriescache/__init__.py +0 -0
  82. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/timeseries_seriescache_api/__init__.py +0 -0
  83. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/upload_api/__init__.py +0 -0
  84. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api/usercreation_api/__init__.py +0 -0
  85. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api.egg-info/SOURCES.txt +0 -0
  86. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api.egg-info/dependency_links.txt +0 -0
  87. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api.egg-info/requires.txt +0 -0
  88. {nominal_api-0.977.1 → nominal_api-0.979.0}/nominal_api.egg-info/top_level.txt +0 -0
  89. {nominal_api-0.977.1 → nominal_api-0.979.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.977.1
3
+ Version: 0.979.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<4,>=2.8.0
@@ -82,5 +82,5 @@ __all__ = [
82
82
 
83
83
  __conjure_generator_version__ = "4.17.0"
84
84
 
85
- __version__ = "0.977.1"
85
+ __version__ = "0.979.0"
86
86
 
@@ -554,6 +554,8 @@ class api_SeriesDataType(ConjureEnumType):
554
554
  '''DOUBLE_ARRAY'''
555
555
  STRING_ARRAY = 'STRING_ARRAY'
556
556
  '''STRING_ARRAY'''
557
+ STRUCT = 'STRUCT'
558
+ '''STRUCT'''
557
559
  UNKNOWN = 'UNKNOWN'
558
560
  '''UNKNOWN'''
559
561
 
@@ -6142,6 +6144,52 @@ event_AssigneesFilter.__qualname__ = "AssigneesFilter"
6142
6144
  event_AssigneesFilter.__module__ = "nominal_api.event"
6143
6145
 
6144
6146
 
6147
+ class event_BatchAggregateEventsRequest(ConjureBeanType):
6148
+
6149
+ @builtins.classmethod
6150
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
6151
+ return {
6152
+ 'requests': ConjureFieldDefinition('requests', List[event_AggregateEventsRequest])
6153
+ }
6154
+
6155
+ __slots__: List[str] = ['_requests']
6156
+
6157
+ def __init__(self, requests: List["event_AggregateEventsRequest"]) -> None:
6158
+ self._requests = requests
6159
+
6160
+ @builtins.property
6161
+ def requests(self) -> List["event_AggregateEventsRequest"]:
6162
+ return self._requests
6163
+
6164
+
6165
+ event_BatchAggregateEventsRequest.__name__ = "BatchAggregateEventsRequest"
6166
+ event_BatchAggregateEventsRequest.__qualname__ = "BatchAggregateEventsRequest"
6167
+ event_BatchAggregateEventsRequest.__module__ = "nominal_api.event"
6168
+
6169
+
6170
+ class event_BatchAggregateEventsResponse(ConjureBeanType):
6171
+
6172
+ @builtins.classmethod
6173
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
6174
+ return {
6175
+ 'responses': ConjureFieldDefinition('responses', List[event_AggregateEventsResponse])
6176
+ }
6177
+
6178
+ __slots__: List[str] = ['_responses']
6179
+
6180
+ def __init__(self, responses: List["event_AggregateEventsResponse"]) -> None:
6181
+ self._responses = responses
6182
+
6183
+ @builtins.property
6184
+ def responses(self) -> List["event_AggregateEventsResponse"]:
6185
+ return self._responses
6186
+
6187
+
6188
+ event_BatchAggregateEventsResponse.__name__ = "BatchAggregateEventsResponse"
6189
+ event_BatchAggregateEventsResponse.__qualname__ = "BatchAggregateEventsResponse"
6190
+ event_BatchAggregateEventsResponse.__module__ = "nominal_api.event"
6191
+
6192
+
6145
6193
  class event_BatchUpdateDispositionRequest(ConjureBeanType):
6146
6194
 
6147
6195
  @builtins.classmethod
@@ -7113,6 +7161,39 @@ Empty fields in the UpdateEventRequest are left unchanged.
7113
7161
  _decoder = ConjureDecoder()
7114
7162
  return _decoder.decode(_response.json(), event_AggregateEventsResponse, self._return_none_for_unknown_union_types)
7115
7163
 
7164
+ def batch_aggregate_events(self, auth_header: str, request: "event_BatchAggregateEventsRequest") -> "event_BatchAggregateEventsResponse":
7165
+ """Searches for events matching the given filter and aggregates them based on the requested functions.
7166
+ Returns a list of responses in same order as the batched requests.
7167
+ """
7168
+ _conjure_encoder = ConjureEncoder()
7169
+
7170
+ _headers: Dict[str, Any] = {
7171
+ 'Accept': 'application/json',
7172
+ 'Content-Type': 'application/json',
7173
+ 'Authorization': auth_header,
7174
+ }
7175
+
7176
+ _params: Dict[str, Any] = {
7177
+ }
7178
+
7179
+ _path_params: Dict[str, str] = {
7180
+ }
7181
+
7182
+ _json: Any = _conjure_encoder.default(request)
7183
+
7184
+ _path = '/event/v1/aggregate-events/batch'
7185
+ _path = _path.format(**_path_params)
7186
+
7187
+ _response: Response = self._request(
7188
+ 'POST',
7189
+ self._uri + _path,
7190
+ params=_params,
7191
+ headers=_headers,
7192
+ json=_json)
7193
+
7194
+ _decoder = ConjureDecoder()
7195
+ return _decoder.decode(_response.json(), event_BatchAggregateEventsResponse, self._return_none_for_unknown_union_types)
7196
+
7116
7197
  def get_events_histogram(self, auth_header: str, request: "event_EventsHistogramRequest") -> "event_EventsHistogramResponse":
7117
7198
  """Gets a histogram of events that match the given filters.
7118
7199
  """
@@ -44053,6 +44134,7 @@ class scout_compute_api_ComputeNode(ConjureUnionType):
44053
44134
  _log: Optional["scout_compute_api_LogSeries"] = None
44054
44135
  _ranges: Optional["scout_compute_api_RangeSeries"] = None
44055
44136
  _array: Optional["scout_compute_api_ArraySeries"] = None
44137
+ _struct: Optional["scout_compute_api_StructSeries"] = None
44056
44138
  _curve_fit: Optional["scout_compute_api_CurveFit"] = None
44057
44139
  _raw: Optional["scout_compute_api_Reference"] = None
44058
44140
 
@@ -44064,6 +44146,7 @@ class scout_compute_api_ComputeNode(ConjureUnionType):
44064
44146
  'log': ConjureFieldDefinition('log', scout_compute_api_LogSeries),
44065
44147
  'ranges': ConjureFieldDefinition('ranges', scout_compute_api_RangeSeries),
44066
44148
  'array': ConjureFieldDefinition('array', scout_compute_api_ArraySeries),
44149
+ 'struct': ConjureFieldDefinition('struct', scout_compute_api_StructSeries),
44067
44150
  'curve_fit': ConjureFieldDefinition('curveFit', scout_compute_api_CurveFit),
44068
44151
  'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference)
44069
44152
  }
@@ -44075,12 +44158,13 @@ class scout_compute_api_ComputeNode(ConjureUnionType):
44075
44158
  log: Optional["scout_compute_api_LogSeries"] = None,
44076
44159
  ranges: Optional["scout_compute_api_RangeSeries"] = None,
44077
44160
  array: Optional["scout_compute_api_ArraySeries"] = None,
44161
+ struct: Optional["scout_compute_api_StructSeries"] = None,
44078
44162
  curve_fit: Optional["scout_compute_api_CurveFit"] = None,
44079
44163
  raw: Optional["scout_compute_api_Reference"] = None,
44080
44164
  type_of_union: Optional[str] = None
44081
44165
  ) -> None:
44082
44166
  if type_of_union is None:
44083
- if (enum is not None) + (numeric is not None) + (log is not None) + (ranges is not None) + (array is not None) + (curve_fit is not None) + (raw is not None) != 1:
44167
+ if (enum is not None) + (numeric is not None) + (log is not None) + (ranges is not None) + (array is not None) + (struct is not None) + (curve_fit is not None) + (raw is not None) != 1:
44084
44168
  raise ValueError('a union must contain a single member')
44085
44169
 
44086
44170
  if enum is not None:
@@ -44098,6 +44182,9 @@ class scout_compute_api_ComputeNode(ConjureUnionType):
44098
44182
  if array is not None:
44099
44183
  self._array = array
44100
44184
  self._type = 'array'
44185
+ if struct is not None:
44186
+ self._struct = struct
44187
+ self._type = 'struct'
44101
44188
  if curve_fit is not None:
44102
44189
  self._curve_fit = curve_fit
44103
44190
  self._type = 'curveFit'
@@ -44130,6 +44217,11 @@ class scout_compute_api_ComputeNode(ConjureUnionType):
44130
44217
  raise ValueError('a union value must not be None')
44131
44218
  self._array = array
44132
44219
  self._type = 'array'
44220
+ elif type_of_union == 'struct':
44221
+ if struct is None:
44222
+ raise ValueError('a union value must not be None')
44223
+ self._struct = struct
44224
+ self._type = 'struct'
44133
44225
  elif type_of_union == 'curveFit':
44134
44226
  if curve_fit is None:
44135
44227
  raise ValueError('a union value must not be None')
@@ -44161,6 +44253,10 @@ class scout_compute_api_ComputeNode(ConjureUnionType):
44161
44253
  def array(self) -> Optional["scout_compute_api_ArraySeries"]:
44162
44254
  return self._array
44163
44255
 
44256
+ @builtins.property
44257
+ def struct(self) -> Optional["scout_compute_api_StructSeries"]:
44258
+ return self._struct
44259
+
44164
44260
  @builtins.property
44165
44261
  def curve_fit(self) -> Optional["scout_compute_api_CurveFit"]:
44166
44262
  return self._curve_fit
@@ -44182,6 +44278,8 @@ class scout_compute_api_ComputeNode(ConjureUnionType):
44182
44278
  return visitor._ranges(self.ranges)
44183
44279
  if self._type == 'array' and self.array is not None:
44184
44280
  return visitor._array(self.array)
44281
+ if self._type == 'struct' and self.struct is not None:
44282
+ return visitor._struct(self.struct)
44185
44283
  if self._type == 'curveFit' and self.curve_fit is not None:
44186
44284
  return visitor._curve_fit(self.curve_fit)
44187
44285
  if self._type == 'raw' and self.raw is not None:
@@ -44215,6 +44313,10 @@ class scout_compute_api_ComputeNodeVisitor:
44215
44313
  def _array(self, array: "scout_compute_api_ArraySeries") -> Any:
44216
44314
  pass
44217
44315
 
44316
+ @abstractmethod
44317
+ def _struct(self, struct: "scout_compute_api_StructSeries") -> Any:
44318
+ pass
44319
+
44218
44320
  @abstractmethod
44219
44321
  def _curve_fit(self, curve_fit: "scout_compute_api_CurveFit") -> Any:
44220
44322
  pass
@@ -54701,6 +54803,7 @@ class scout_compute_api_Series(ConjureUnionType):
54701
54803
  _numeric: Optional["scout_compute_api_NumericSeries"] = None
54702
54804
  _log: Optional["scout_compute_api_LogSeries"] = None
54703
54805
  _array: Optional["scout_compute_api_ArraySeries"] = None
54806
+ _struct: Optional["scout_compute_api_StructSeries"] = None
54704
54807
 
54705
54808
  @builtins.classmethod
54706
54809
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -54709,7 +54812,8 @@ class scout_compute_api_Series(ConjureUnionType):
54709
54812
  'enum': ConjureFieldDefinition('enum', scout_compute_api_EnumSeries),
54710
54813
  'numeric': ConjureFieldDefinition('numeric', scout_compute_api_NumericSeries),
54711
54814
  'log': ConjureFieldDefinition('log', scout_compute_api_LogSeries),
54712
- 'array': ConjureFieldDefinition('array', scout_compute_api_ArraySeries)
54815
+ 'array': ConjureFieldDefinition('array', scout_compute_api_ArraySeries),
54816
+ 'struct': ConjureFieldDefinition('struct', scout_compute_api_StructSeries)
54713
54817
  }
54714
54818
 
54715
54819
  def __init__(
@@ -54719,10 +54823,11 @@ class scout_compute_api_Series(ConjureUnionType):
54719
54823
  numeric: Optional["scout_compute_api_NumericSeries"] = None,
54720
54824
  log: Optional["scout_compute_api_LogSeries"] = None,
54721
54825
  array: Optional["scout_compute_api_ArraySeries"] = None,
54826
+ struct: Optional["scout_compute_api_StructSeries"] = None,
54722
54827
  type_of_union: Optional[str] = None
54723
54828
  ) -> None:
54724
54829
  if type_of_union is None:
54725
- if (raw is not None) + (enum is not None) + (numeric is not None) + (log is not None) + (array is not None) != 1:
54830
+ if (raw is not None) + (enum is not None) + (numeric is not None) + (log is not None) + (array is not None) + (struct is not None) != 1:
54726
54831
  raise ValueError('a union must contain a single member')
54727
54832
 
54728
54833
  if raw is not None:
@@ -54740,6 +54845,9 @@ class scout_compute_api_Series(ConjureUnionType):
54740
54845
  if array is not None:
54741
54846
  self._array = array
54742
54847
  self._type = 'array'
54848
+ if struct is not None:
54849
+ self._struct = struct
54850
+ self._type = 'struct'
54743
54851
 
54744
54852
  elif type_of_union == 'raw':
54745
54853
  if raw is None:
@@ -54766,6 +54874,11 @@ class scout_compute_api_Series(ConjureUnionType):
54766
54874
  raise ValueError('a union value must not be None')
54767
54875
  self._array = array
54768
54876
  self._type = 'array'
54877
+ elif type_of_union == 'struct':
54878
+ if struct is None:
54879
+ raise ValueError('a union value must not be None')
54880
+ self._struct = struct
54881
+ self._type = 'struct'
54769
54882
 
54770
54883
  @builtins.property
54771
54884
  def raw(self) -> Optional["scout_compute_api_Reference"]:
@@ -54787,6 +54900,10 @@ class scout_compute_api_Series(ConjureUnionType):
54787
54900
  def array(self) -> Optional["scout_compute_api_ArraySeries"]:
54788
54901
  return self._array
54789
54902
 
54903
+ @builtins.property
54904
+ def struct(self) -> Optional["scout_compute_api_StructSeries"]:
54905
+ return self._struct
54906
+
54790
54907
  def accept(self, visitor) -> Any:
54791
54908
  if not isinstance(visitor, scout_compute_api_SeriesVisitor):
54792
54909
  raise ValueError('{} is not an instance of scout_compute_api_SeriesVisitor'.format(visitor.__class__.__name__))
@@ -54800,6 +54917,8 @@ class scout_compute_api_Series(ConjureUnionType):
54800
54917
  return visitor._log(self.log)
54801
54918
  if self._type == 'array' and self.array is not None:
54802
54919
  return visitor._array(self.array)
54920
+ if self._type == 'struct' and self.struct is not None:
54921
+ return visitor._struct(self.struct)
54803
54922
 
54804
54923
 
54805
54924
  scout_compute_api_Series.__name__ = "Series"
@@ -54829,6 +54948,10 @@ class scout_compute_api_SeriesVisitor:
54829
54948
  def _array(self, array: "scout_compute_api_ArraySeries") -> Any:
54830
54949
  pass
54831
54950
 
54951
+ @abstractmethod
54952
+ def _struct(self, struct: "scout_compute_api_StructSeries") -> Any:
54953
+ pass
54954
+
54832
54955
 
54833
54956
  scout_compute_api_SeriesVisitor.__name__ = "SeriesVisitor"
54834
54957
  scout_compute_api_SeriesVisitor.__qualname__ = "SeriesVisitor"
@@ -55492,6 +55615,104 @@ scout_compute_api_StringSetConstantVisitor.__qualname__ = "StringSetConstantVisi
55492
55615
  scout_compute_api_StringSetConstantVisitor.__module__ = "nominal_api.scout_compute_api"
55493
55616
 
55494
55617
 
55618
+ class scout_compute_api_StructSeries(ConjureUnionType):
55619
+ _channel: Optional["scout_compute_api_ChannelSeries"] = None
55620
+ _raw: Optional["scout_compute_api_Reference"] = None
55621
+ _derived: Optional["scout_compute_api_DerivedSeries"] = None
55622
+
55623
+ @builtins.classmethod
55624
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
55625
+ return {
55626
+ 'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
55627
+ 'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
55628
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries)
55629
+ }
55630
+
55631
+ def __init__(
55632
+ self,
55633
+ channel: Optional["scout_compute_api_ChannelSeries"] = None,
55634
+ raw: Optional["scout_compute_api_Reference"] = None,
55635
+ derived: Optional["scout_compute_api_DerivedSeries"] = None,
55636
+ type_of_union: Optional[str] = None
55637
+ ) -> None:
55638
+ if type_of_union is None:
55639
+ if (channel is not None) + (raw is not None) + (derived is not None) != 1:
55640
+ raise ValueError('a union must contain a single member')
55641
+
55642
+ if channel is not None:
55643
+ self._channel = channel
55644
+ self._type = 'channel'
55645
+ if raw is not None:
55646
+ self._raw = raw
55647
+ self._type = 'raw'
55648
+ if derived is not None:
55649
+ self._derived = derived
55650
+ self._type = 'derived'
55651
+
55652
+ elif type_of_union == 'channel':
55653
+ if channel is None:
55654
+ raise ValueError('a union value must not be None')
55655
+ self._channel = channel
55656
+ self._type = 'channel'
55657
+ elif type_of_union == 'raw':
55658
+ if raw is None:
55659
+ raise ValueError('a union value must not be None')
55660
+ self._raw = raw
55661
+ self._type = 'raw'
55662
+ elif type_of_union == 'derived':
55663
+ if derived is None:
55664
+ raise ValueError('a union value must not be None')
55665
+ self._derived = derived
55666
+ self._type = 'derived'
55667
+
55668
+ @builtins.property
55669
+ def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
55670
+ return self._channel
55671
+
55672
+ @builtins.property
55673
+ def raw(self) -> Optional["scout_compute_api_Reference"]:
55674
+ return self._raw
55675
+
55676
+ @builtins.property
55677
+ def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
55678
+ return self._derived
55679
+
55680
+ def accept(self, visitor) -> Any:
55681
+ if not isinstance(visitor, scout_compute_api_StructSeriesVisitor):
55682
+ raise ValueError('{} is not an instance of scout_compute_api_StructSeriesVisitor'.format(visitor.__class__.__name__))
55683
+ if self._type == 'channel' and self.channel is not None:
55684
+ return visitor._channel(self.channel)
55685
+ if self._type == 'raw' and self.raw is not None:
55686
+ return visitor._raw(self.raw)
55687
+ if self._type == 'derived' and self.derived is not None:
55688
+ return visitor._derived(self.derived)
55689
+
55690
+
55691
+ scout_compute_api_StructSeries.__name__ = "StructSeries"
55692
+ scout_compute_api_StructSeries.__qualname__ = "StructSeries"
55693
+ scout_compute_api_StructSeries.__module__ = "nominal_api.scout_compute_api"
55694
+
55695
+
55696
+ class scout_compute_api_StructSeriesVisitor:
55697
+
55698
+ @abstractmethod
55699
+ def _channel(self, channel: "scout_compute_api_ChannelSeries") -> Any:
55700
+ pass
55701
+
55702
+ @abstractmethod
55703
+ def _raw(self, raw: "scout_compute_api_Reference") -> Any:
55704
+ pass
55705
+
55706
+ @abstractmethod
55707
+ def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
55708
+ pass
55709
+
55710
+
55711
+ scout_compute_api_StructSeriesVisitor.__name__ = "StructSeriesVisitor"
55712
+ scout_compute_api_StructSeriesVisitor.__qualname__ = "StructSeriesVisitor"
55713
+ scout_compute_api_StructSeriesVisitor.__module__ = "nominal_api.scout_compute_api"
55714
+
55715
+
55495
55716
  class scout_compute_api_Sum(ConjureBeanType):
55496
55717
  """The sum of point values inside the time window.
55497
55718
  """
@@ -56910,7 +57131,7 @@ class scout_compute_api_Value(ConjureUnionType):
56910
57131
  _float64_value: Optional[float] = None
56911
57132
  _int64_value: Optional[str] = None
56912
57133
  _array_value: Optional[List[Optional["scout_compute_api_Value"]]] = None
56913
- _struct_value: Optional[Dict[str, Optional["scout_compute_api_Value"]]] = None
57134
+ _struct_value: Optional[Any] = None
56914
57135
 
56915
57136
  @builtins.classmethod
56916
57137
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -56919,7 +57140,7 @@ class scout_compute_api_Value(ConjureUnionType):
56919
57140
  'float64_value': ConjureFieldDefinition('float64Value', float),
56920
57141
  'int64_value': ConjureFieldDefinition('int64Value', str),
56921
57142
  'array_value': ConjureFieldDefinition('arrayValue', List[OptionalTypeWrapper[scout_compute_api_Value]]),
56922
- 'struct_value': ConjureFieldDefinition('structValue', Dict[str, OptionalTypeWrapper[scout_compute_api_Value]])
57143
+ 'struct_value': ConjureFieldDefinition('structValue', object)
56923
57144
  }
56924
57145
 
56925
57146
  def __init__(
@@ -56928,7 +57149,7 @@ class scout_compute_api_Value(ConjureUnionType):
56928
57149
  float64_value: Optional[float] = None,
56929
57150
  int64_value: Optional[str] = None,
56930
57151
  array_value: Optional[List[Optional["scout_compute_api_Value"]]] = None,
56931
- struct_value: Optional[Dict[str, Optional["scout_compute_api_Value"]]] = None,
57152
+ struct_value: Optional[Any] = None,
56932
57153
  type_of_union: Optional[str] = None
56933
57154
  ) -> None:
56934
57155
  if type_of_union is None:
@@ -56994,7 +57215,9 @@ class scout_compute_api_Value(ConjureUnionType):
56994
57215
  return self._array_value
56995
57216
 
56996
57217
  @builtins.property
56997
- def struct_value(self) -> Optional[Dict[str, Optional["scout_compute_api_Value"]]]:
57218
+ def struct_value(self) -> Optional[Any]:
57219
+ """A JSON representation of the struct
57220
+ """
56998
57221
  return self._struct_value
56999
57222
 
57000
57223
  def accept(self, visitor) -> Any:
@@ -57036,7 +57259,7 @@ class scout_compute_api_ValueVisitor:
57036
57259
  pass
57037
57260
 
57038
57261
  @abstractmethod
57039
- def _struct_value(self, struct_value: Dict[str, Optional["scout_compute_api_Value"]]) -> Any:
57262
+ def _struct_value(self, struct_value: Any) -> Any:
57040
57263
  pass
57041
57264
 
57042
57265
 
@@ -65204,6 +65427,7 @@ class scout_compute_resolved_api_SeriesNode(ConjureUnionType):
65204
65427
  _numeric: Optional["scout_compute_resolved_api_NumericSeriesNode"] = None
65205
65428
  _log: Optional["scout_compute_resolved_api_LogSeriesNode"] = None
65206
65429
  _array: Optional["scout_compute_resolved_api_ArraySeriesNode"] = None
65430
+ _struct: Optional["scout_compute_resolved_api_StructSeriesNode"] = None
65207
65431
 
65208
65432
  @builtins.classmethod
65209
65433
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -65212,7 +65436,8 @@ class scout_compute_resolved_api_SeriesNode(ConjureUnionType):
65212
65436
  'enum': ConjureFieldDefinition('enum', scout_compute_resolved_api_EnumSeriesNode),
65213
65437
  'numeric': ConjureFieldDefinition('numeric', scout_compute_resolved_api_NumericSeriesNode),
65214
65438
  'log': ConjureFieldDefinition('log', scout_compute_resolved_api_LogSeriesNode),
65215
- 'array': ConjureFieldDefinition('array', scout_compute_resolved_api_ArraySeriesNode)
65439
+ 'array': ConjureFieldDefinition('array', scout_compute_resolved_api_ArraySeriesNode),
65440
+ 'struct': ConjureFieldDefinition('struct', scout_compute_resolved_api_StructSeriesNode)
65216
65441
  }
65217
65442
 
65218
65443
  def __init__(
@@ -65222,10 +65447,11 @@ class scout_compute_resolved_api_SeriesNode(ConjureUnionType):
65222
65447
  numeric: Optional["scout_compute_resolved_api_NumericSeriesNode"] = None,
65223
65448
  log: Optional["scout_compute_resolved_api_LogSeriesNode"] = None,
65224
65449
  array: Optional["scout_compute_resolved_api_ArraySeriesNode"] = None,
65450
+ struct: Optional["scout_compute_resolved_api_StructSeriesNode"] = None,
65225
65451
  type_of_union: Optional[str] = None
65226
65452
  ) -> None:
65227
65453
  if type_of_union is None:
65228
- if (raw is not None) + (enum is not None) + (numeric is not None) + (log is not None) + (array is not None) != 1:
65454
+ if (raw is not None) + (enum is not None) + (numeric is not None) + (log is not None) + (array is not None) + (struct is not None) != 1:
65229
65455
  raise ValueError('a union must contain a single member')
65230
65456
 
65231
65457
  if raw is not None:
@@ -65243,6 +65469,9 @@ class scout_compute_resolved_api_SeriesNode(ConjureUnionType):
65243
65469
  if array is not None:
65244
65470
  self._array = array
65245
65471
  self._type = 'array'
65472
+ if struct is not None:
65473
+ self._struct = struct
65474
+ self._type = 'struct'
65246
65475
 
65247
65476
  elif type_of_union == 'raw':
65248
65477
  if raw is None:
@@ -65269,6 +65498,11 @@ class scout_compute_resolved_api_SeriesNode(ConjureUnionType):
65269
65498
  raise ValueError('a union value must not be None')
65270
65499
  self._array = array
65271
65500
  self._type = 'array'
65501
+ elif type_of_union == 'struct':
65502
+ if struct is None:
65503
+ raise ValueError('a union value must not be None')
65504
+ self._struct = struct
65505
+ self._type = 'struct'
65272
65506
 
65273
65507
  @builtins.property
65274
65508
  def raw(self) -> Optional["scout_compute_resolved_api_RawUntypedSeriesNode"]:
@@ -65290,6 +65524,10 @@ class scout_compute_resolved_api_SeriesNode(ConjureUnionType):
65290
65524
  def array(self) -> Optional["scout_compute_resolved_api_ArraySeriesNode"]:
65291
65525
  return self._array
65292
65526
 
65527
+ @builtins.property
65528
+ def struct(self) -> Optional["scout_compute_resolved_api_StructSeriesNode"]:
65529
+ return self._struct
65530
+
65293
65531
  def accept(self, visitor) -> Any:
65294
65532
  if not isinstance(visitor, scout_compute_resolved_api_SeriesNodeVisitor):
65295
65533
  raise ValueError('{} is not an instance of scout_compute_resolved_api_SeriesNodeVisitor'.format(visitor.__class__.__name__))
@@ -65303,6 +65541,8 @@ class scout_compute_resolved_api_SeriesNode(ConjureUnionType):
65303
65541
  return visitor._log(self.log)
65304
65542
  if self._type == 'array' and self.array is not None:
65305
65543
  return visitor._array(self.array)
65544
+ if self._type == 'struct' and self.struct is not None:
65545
+ return visitor._struct(self.struct)
65306
65546
 
65307
65547
 
65308
65548
  scout_compute_resolved_api_SeriesNode.__name__ = "SeriesNode"
@@ -65332,6 +65572,10 @@ class scout_compute_resolved_api_SeriesNodeVisitor:
65332
65572
  def _array(self, array: "scout_compute_resolved_api_ArraySeriesNode") -> Any:
65333
65573
  pass
65334
65574
 
65575
+ @abstractmethod
65576
+ def _struct(self, struct: "scout_compute_resolved_api_StructSeriesNode") -> Any:
65577
+ pass
65578
+
65335
65579
 
65336
65580
  scout_compute_resolved_api_SeriesNodeVisitor.__name__ = "SeriesNodeVisitor"
65337
65581
  scout_compute_resolved_api_SeriesNodeVisitor.__qualname__ = "SeriesNodeVisitor"
@@ -65656,6 +65900,62 @@ scout_compute_resolved_api_StorageLocatorVisitor.__qualname__ = "StorageLocatorV
65656
65900
  scout_compute_resolved_api_StorageLocatorVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
65657
65901
 
65658
65902
 
65903
+ class scout_compute_resolved_api_StructSeriesNode(ConjureUnionType):
65904
+ _raw: Optional["scout_compute_resolved_api_ResolvedSeries"] = None
65905
+
65906
+ @builtins.classmethod
65907
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
65908
+ return {
65909
+ 'raw': ConjureFieldDefinition('raw', scout_compute_resolved_api_ResolvedSeries)
65910
+ }
65911
+
65912
+ def __init__(
65913
+ self,
65914
+ raw: Optional["scout_compute_resolved_api_ResolvedSeries"] = None,
65915
+ type_of_union: Optional[str] = None
65916
+ ) -> None:
65917
+ if type_of_union is None:
65918
+ if (raw is not None) != 1:
65919
+ raise ValueError('a union must contain a single member')
65920
+
65921
+ if raw is not None:
65922
+ self._raw = raw
65923
+ self._type = 'raw'
65924
+
65925
+ elif type_of_union == 'raw':
65926
+ if raw is None:
65927
+ raise ValueError('a union value must not be None')
65928
+ self._raw = raw
65929
+ self._type = 'raw'
65930
+
65931
+ @builtins.property
65932
+ def raw(self) -> Optional["scout_compute_resolved_api_ResolvedSeries"]:
65933
+ return self._raw
65934
+
65935
+ def accept(self, visitor) -> Any:
65936
+ if not isinstance(visitor, scout_compute_resolved_api_StructSeriesNodeVisitor):
65937
+ raise ValueError('{} is not an instance of scout_compute_resolved_api_StructSeriesNodeVisitor'.format(visitor.__class__.__name__))
65938
+ if self._type == 'raw' and self.raw is not None:
65939
+ return visitor._raw(self.raw)
65940
+
65941
+
65942
+ scout_compute_resolved_api_StructSeriesNode.__name__ = "StructSeriesNode"
65943
+ scout_compute_resolved_api_StructSeriesNode.__qualname__ = "StructSeriesNode"
65944
+ scout_compute_resolved_api_StructSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
65945
+
65946
+
65947
+ class scout_compute_resolved_api_StructSeriesNodeVisitor:
65948
+
65949
+ @abstractmethod
65950
+ def _raw(self, raw: "scout_compute_resolved_api_ResolvedSeries") -> Any:
65951
+ pass
65952
+
65953
+
65954
+ scout_compute_resolved_api_StructSeriesNodeVisitor.__name__ = "StructSeriesNodeVisitor"
65955
+ scout_compute_resolved_api_StructSeriesNodeVisitor.__qualname__ = "StructSeriesNodeVisitor"
65956
+ scout_compute_resolved_api_StructSeriesNodeVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
65957
+
65958
+
65659
65959
  class scout_compute_resolved_api_SumSeriesNode(ConjureBeanType):
65660
65960
 
65661
65961
  @builtins.classmethod
@@ -92406,6 +92706,8 @@ class storage_series_api_NominalDataType(ConjureEnumType):
92406
92706
  '''DOUBLE_ARRAY'''
92407
92707
  STRING_ARRAY = 'STRING_ARRAY'
92408
92708
  '''STRING_ARRAY'''
92709
+ STRUCT = 'STRUCT'
92710
+ '''STRUCT'''
92409
92711
  UNKNOWN = 'UNKNOWN'
92410
92712
  '''UNKNOWN'''
92411
92713
 
@@ -93268,6 +93570,7 @@ Logs specifically are supported externally via a separate endpoint.
93268
93570
  _log: Optional[List["storage_writer_api_LogPoint"]] = None
93269
93571
  _int_: Optional[List["storage_writer_api_IntPoint"]] = None
93270
93572
  _array: Optional["storage_writer_api_ArrayPoints"] = None
93573
+ _struct: Optional[List["storage_writer_api_StructPoint"]] = None
93271
93574
 
93272
93575
  @builtins.classmethod
93273
93576
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -93276,7 +93579,8 @@ Logs specifically are supported externally via a separate endpoint.
93276
93579
  'double': ConjureFieldDefinition('double', List[storage_writer_api_DoublePoint]),
93277
93580
  'log': ConjureFieldDefinition('log', List[storage_writer_api_LogPoint]),
93278
93581
  'int_': ConjureFieldDefinition('int', List[storage_writer_api_IntPoint]),
93279
- 'array': ConjureFieldDefinition('array', storage_writer_api_ArrayPoints)
93582
+ 'array': ConjureFieldDefinition('array', storage_writer_api_ArrayPoints),
93583
+ 'struct': ConjureFieldDefinition('struct', List[storage_writer_api_StructPoint])
93280
93584
  }
93281
93585
 
93282
93586
  def __init__(
@@ -93286,10 +93590,11 @@ Logs specifically are supported externally via a separate endpoint.
93286
93590
  log: Optional[List["storage_writer_api_LogPoint"]] = None,
93287
93591
  int_: Optional[List["storage_writer_api_IntPoint"]] = None,
93288
93592
  array: Optional["storage_writer_api_ArrayPoints"] = None,
93593
+ struct: Optional[List["storage_writer_api_StructPoint"]] = None,
93289
93594
  type_of_union: Optional[str] = None
93290
93595
  ) -> None:
93291
93596
  if type_of_union is None:
93292
- if (string is not None) + (double is not None) + (log is not None) + (int_ is not None) + (array is not None) != 1:
93597
+ if (string is not None) + (double is not None) + (log is not None) + (int_ is not None) + (array is not None) + (struct is not None) != 1:
93293
93598
  raise ValueError('a union must contain a single member')
93294
93599
 
93295
93600
  if string is not None:
@@ -93307,6 +93612,9 @@ Logs specifically are supported externally via a separate endpoint.
93307
93612
  if array is not None:
93308
93613
  self._array = array
93309
93614
  self._type = 'array'
93615
+ if struct is not None:
93616
+ self._struct = struct
93617
+ self._type = 'struct'
93310
93618
 
93311
93619
  elif type_of_union == 'string':
93312
93620
  if string is None:
@@ -93333,6 +93641,11 @@ Logs specifically are supported externally via a separate endpoint.
93333
93641
  raise ValueError('a union value must not be None')
93334
93642
  self._array = array
93335
93643
  self._type = 'array'
93644
+ elif type_of_union == 'struct':
93645
+ if struct is None:
93646
+ raise ValueError('a union value must not be None')
93647
+ self._struct = struct
93648
+ self._type = 'struct'
93336
93649
 
93337
93650
  @builtins.property
93338
93651
  def string(self) -> Optional[List["storage_writer_api_StringPoint"]]:
@@ -93354,6 +93667,10 @@ Logs specifically are supported externally via a separate endpoint.
93354
93667
  def array(self) -> Optional["storage_writer_api_ArrayPoints"]:
93355
93668
  return self._array
93356
93669
 
93670
+ @builtins.property
93671
+ def struct(self) -> Optional[List["storage_writer_api_StructPoint"]]:
93672
+ return self._struct
93673
+
93357
93674
  def accept(self, visitor) -> Any:
93358
93675
  if not isinstance(visitor, storage_writer_api_PointsVisitor):
93359
93676
  raise ValueError('{} is not an instance of storage_writer_api_PointsVisitor'.format(visitor.__class__.__name__))
@@ -93367,6 +93684,8 @@ Logs specifically are supported externally via a separate endpoint.
93367
93684
  return visitor._int(self.int_)
93368
93685
  if self._type == 'array' and self.array is not None:
93369
93686
  return visitor._array(self.array)
93687
+ if self._type == 'struct' and self.struct is not None:
93688
+ return visitor._struct(self.struct)
93370
93689
 
93371
93690
 
93372
93691
  storage_writer_api_Points.__name__ = "Points"
@@ -93396,6 +93715,10 @@ class storage_writer_api_PointsVisitor:
93396
93715
  def _array(self, array: "storage_writer_api_ArrayPoints") -> Any:
93397
93716
  pass
93398
93717
 
93718
+ @abstractmethod
93719
+ def _struct(self, struct: List["storage_writer_api_StructPoint"]) -> Any:
93720
+ pass
93721
+
93399
93722
 
93400
93723
  storage_writer_api_PointsVisitor.__name__ = "PointsVisitor"
93401
93724
  storage_writer_api_PointsVisitor.__qualname__ = "PointsVisitor"
@@ -93628,6 +93951,35 @@ storage_writer_api_StringPoint.__qualname__ = "StringPoint"
93628
93951
  storage_writer_api_StringPoint.__module__ = "nominal_api.storage_writer_api"
93629
93952
 
93630
93953
 
93954
+ class storage_writer_api_StructPoint(ConjureBeanType):
93955
+
93956
+ @builtins.classmethod
93957
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93958
+ return {
93959
+ 'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp),
93960
+ 'value': ConjureFieldDefinition('value', str)
93961
+ }
93962
+
93963
+ __slots__: List[str] = ['_timestamp', '_value']
93964
+
93965
+ def __init__(self, timestamp: "api_Timestamp", value: str) -> None:
93966
+ self._timestamp = timestamp
93967
+ self._value = value
93968
+
93969
+ @builtins.property
93970
+ def timestamp(self) -> "api_Timestamp":
93971
+ return self._timestamp
93972
+
93973
+ @builtins.property
93974
+ def value(self) -> str:
93975
+ return self._value
93976
+
93977
+
93978
+ storage_writer_api_StructPoint.__name__ = "StructPoint"
93979
+ storage_writer_api_StructPoint.__qualname__ = "StructPoint"
93980
+ storage_writer_api_StructPoint.__module__ = "nominal_api.storage_writer_api"
93981
+
93982
+
93631
93983
  class storage_writer_api_TelegrafMetric(ConjureBeanType):
93632
93984
 
93633
93985
  @builtins.classmethod
@@ -93812,6 +94164,38 @@ storage_writer_api_WriteLogsRequest.__qualname__ = "WriteLogsRequest"
93812
94164
  storage_writer_api_WriteLogsRequest.__module__ = "nominal_api.storage_writer_api"
93813
94165
 
93814
94166
 
94167
+ class storage_writer_api_WriteStructsRequest(ConjureBeanType):
94168
+
94169
+ @builtins.classmethod
94170
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94171
+ return {
94172
+ 'structs': ConjureFieldDefinition('structs', List[storage_writer_api_StructPoint]),
94173
+ 'channel': ConjureFieldDefinition('channel', OptionalTypeWrapper[api_Channel])
94174
+ }
94175
+
94176
+ __slots__: List[str] = ['_structs', '_channel']
94177
+
94178
+ def __init__(self, structs: List["storage_writer_api_StructPoint"], channel: Optional[str] = None) -> None:
94179
+ self._structs = structs
94180
+ self._channel = channel
94181
+
94182
+ @builtins.property
94183
+ def structs(self) -> List["storage_writer_api_StructPoint"]:
94184
+ return self._structs
94185
+
94186
+ @builtins.property
94187
+ def channel(self) -> Optional[str]:
94188
+ """If provided, the channel to which to write structs.
94189
+ If not provided, defaults to "structs"
94190
+ """
94191
+ return self._channel
94192
+
94193
+
94194
+ storage_writer_api_WriteStructsRequest.__name__ = "WriteStructsRequest"
94195
+ storage_writer_api_WriteStructsRequest.__qualname__ = "WriteStructsRequest"
94196
+ storage_writer_api_WriteStructsRequest.__module__ = "nominal_api.storage_writer_api"
94197
+
94198
+
93815
94199
  class storage_writer_api_WriteTelegrafBatchesRequest(ConjureBeanType):
93816
94200
 
93817
94201
  @builtins.classmethod
@@ -9,6 +9,8 @@ from .._impl import (
9
9
  event_ArchiveEvent as ArchiveEvent,
10
10
  event_AssetsFilter as AssetsFilter,
11
11
  event_AssigneesFilter as AssigneesFilter,
12
+ event_BatchAggregateEventsRequest as BatchAggregateEventsRequest,
13
+ event_BatchAggregateEventsResponse as BatchAggregateEventsResponse,
12
14
  event_BatchUpdateDispositionRequest as BatchUpdateDispositionRequest,
13
15
  event_BatchUpdateDispositionResponse as BatchUpdateDispositionResponse,
14
16
  event_BatchUpdateEventRequest as BatchUpdateEventRequest,
@@ -63,6 +65,8 @@ __all__ = [
63
65
  'ArchiveEvent',
64
66
  'AssetsFilter',
65
67
  'AssigneesFilter',
68
+ 'BatchAggregateEventsRequest',
69
+ 'BatchAggregateEventsResponse',
66
70
  'BatchUpdateDispositionRequest',
67
71
  'BatchUpdateDispositionResponse',
68
72
  'BatchUpdateEventRequest',
@@ -329,6 +329,8 @@ from .._impl import (
329
329
  scout_compute_api_StringConstantVisitor as StringConstantVisitor,
330
330
  scout_compute_api_StringSetConstant as StringSetConstant,
331
331
  scout_compute_api_StringSetConstantVisitor as StringSetConstantVisitor,
332
+ scout_compute_api_StructSeries as StructSeries,
333
+ scout_compute_api_StructSeriesVisitor as StructSeriesVisitor,
332
334
  scout_compute_api_Sum as Sum,
333
335
  scout_compute_api_SumSeries as SumSeries,
334
336
  scout_compute_api_SummarizationStrategy as SummarizationStrategy,
@@ -710,6 +712,8 @@ __all__ = [
710
712
  'StringConstantVisitor',
711
713
  'StringSetConstant',
712
714
  'StringSetConstantVisitor',
715
+ 'StructSeries',
716
+ 'StructSeriesVisitor',
713
717
  'Sum',
714
718
  'SumSeries',
715
719
  'SummarizationStrategy',
@@ -142,6 +142,8 @@ from .._impl import (
142
142
  scout_compute_resolved_api_StaleRangesNode as StaleRangesNode,
143
143
  scout_compute_resolved_api_StorageLocator as StorageLocator,
144
144
  scout_compute_resolved_api_StorageLocatorVisitor as StorageLocatorVisitor,
145
+ scout_compute_resolved_api_StructSeriesNode as StructSeriesNode,
146
+ scout_compute_resolved_api_StructSeriesNodeVisitor as StructSeriesNodeVisitor,
145
147
  scout_compute_resolved_api_SumSeriesNode as SumSeriesNode,
146
148
  scout_compute_resolved_api_SummarizeCartesian3dNode as SummarizeCartesian3dNode,
147
149
  scout_compute_resolved_api_SummarizeCartesianNode as SummarizeCartesianNode,
@@ -309,6 +311,8 @@ __all__ = [
309
311
  'StaleRangesNode',
310
312
  'StorageLocator',
311
313
  'StorageLocatorVisitor',
314
+ 'StructSeriesNode',
315
+ 'StructSeriesNodeVisitor',
312
316
  'SumSeriesNode',
313
317
  'SummarizeCartesian3dNode',
314
318
  'SummarizeCartesianNode',
@@ -24,11 +24,13 @@ from .._impl import (
24
24
  storage_writer_api_RecordsBatchExternal as RecordsBatchExternal,
25
25
  storage_writer_api_StringArrayPoint as StringArrayPoint,
26
26
  storage_writer_api_StringPoint as StringPoint,
27
+ storage_writer_api_StructPoint as StructPoint,
27
28
  storage_writer_api_TelegrafMetric as TelegrafMetric,
28
29
  storage_writer_api_WriteBatchesRequest as WriteBatchesRequest,
29
30
  storage_writer_api_WriteBatchesRequestExternal as WriteBatchesRequestExternal,
30
31
  storage_writer_api_WriteColumnBatchesRequest as WriteColumnBatchesRequest,
31
32
  storage_writer_api_WriteLogsRequest as WriteLogsRequest,
33
+ storage_writer_api_WriteStructsRequest as WriteStructsRequest,
32
34
  storage_writer_api_WriteTelegrafBatchesRequest as WriteTelegrafBatchesRequest,
33
35
  )
34
36
 
@@ -55,11 +57,13 @@ __all__ = [
55
57
  'RecordsBatchExternal',
56
58
  'StringArrayPoint',
57
59
  'StringPoint',
60
+ 'StructPoint',
58
61
  'TelegrafMetric',
59
62
  'WriteBatchesRequest',
60
63
  'WriteBatchesRequestExternal',
61
64
  'WriteColumnBatchesRequest',
62
65
  'WriteLogsRequest',
66
+ 'WriteStructsRequest',
63
67
  'WriteTelegrafBatchesRequest',
64
68
  'DirectNominalChannelWriterService',
65
69
  'NominalChannelWriterService',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.977.1
3
+ Version: 0.979.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<4,>=2.8.0
@@ -6,7 +6,7 @@ from setuptools import (
6
6
 
7
7
  setup(
8
8
  name='nominal-api',
9
- version='0.977.1',
9
+ version='0.979.0',
10
10
  python_requires='>=3.8',
11
11
  package_data={"": ["py.typed"]},
12
12
  packages=find_packages(),
File without changes