nominal-api 0.981.0__tar.gz → 0.989.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.981.0 → nominal_api-0.989.0}/PKG-INFO +1 -1
  2. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/__init__.py +1 -1
  3. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/_impl.py +356 -14
  4. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_chartdefinition_api/__init__.py +8 -0
  5. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_comparisonnotebook_api/__init__.py +2 -0
  6. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_compute_api/__init__.py +2 -0
  7. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_compute_resolved_api/__init__.py +2 -0
  8. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api.egg-info/PKG-INFO +1 -1
  9. {nominal_api-0.981.0 → nominal_api-0.989.0}/setup.py +1 -1
  10. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/api/__init__.py +0 -0
  11. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/api_ids/__init__.py +0 -0
  12. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/api_rids/__init__.py +0 -0
  13. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/attachments_api/__init__.py +0 -0
  14. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/authentication_api/__init__.py +0 -0
  15. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/authorization/__init__.py +0 -0
  16. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/comments_api/__init__.py +0 -0
  17. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/connect_download/__init__.py +0 -0
  18. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/datasource/__init__.py +0 -0
  19. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/datasource_api/__init__.py +0 -0
  20. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/datasource_logset/__init__.py +0 -0
  21. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/datasource_logset_api/__init__.py +0 -0
  22. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/datasource_pagination_api/__init__.py +0 -0
  23. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/event/__init__.py +0 -0
  24. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/ingest_api/__init__.py +0 -0
  25. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/ingest_manifest/__init__.py +0 -0
  26. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/ingest_workflow_api/__init__.py +0 -0
  27. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/module/__init__.py +0 -0
  28. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/module_internal/__init__.py +0 -0
  29. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/modules_api/__init__.py +0 -0
  30. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/persistent_compute_api/__init__.py +0 -0
  31. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/py.typed +0 -0
  32. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout/__init__.py +0 -0
  33. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_api/__init__.py +0 -0
  34. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_asset_api/__init__.py +0 -0
  35. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_assets/__init__.py +0 -0
  36. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_catalog/__init__.py +0 -0
  37. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_channelvariables_api/__init__.py +0 -0
  38. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_chart_api/__init__.py +0 -0
  39. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_checklistexecution_api/__init__.py +0 -0
  40. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_checks_api/__init__.py +0 -0
  41. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_comparisonrun_api/__init__.py +0 -0
  42. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_compute_api_deprecated/__init__.py +0 -0
  43. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_dataexport_api/__init__.py +0 -0
  44. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_datareview_api/__init__.py +0 -0
  45. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_datasource/__init__.py +0 -0
  46. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_datasource_connection/__init__.py +0 -0
  47. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_datasource_connection_api/__init__.py +0 -0
  48. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_datasource_connection_api_influx/__init__.py +0 -0
  49. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_favorites/__init__.py +0 -0
  50. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_favorites_api/__init__.py +0 -0
  51. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_integrations_api/__init__.py +0 -0
  52. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_internal_search_api/__init__.py +0 -0
  53. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_jobs_api/__init__.py +0 -0
  54. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_layout_api/__init__.py +0 -0
  55. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_metadata/__init__.py +0 -0
  56. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_notebook_api/__init__.py +0 -0
  57. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_plotting/__init__.py +0 -0
  58. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_rids_api/__init__.py +0 -0
  59. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_run_api/__init__.py +0 -0
  60. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_savedviews/__init__.py +0 -0
  61. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_savedviews_api/__init__.py +0 -0
  62. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_template_api/__init__.py +0 -0
  63. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_units_api/__init__.py +0 -0
  64. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_versioning_api/__init__.py +0 -0
  65. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_video/__init__.py +0 -0
  66. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_video_api/__init__.py +0 -0
  67. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/scout_workbookcommon_api/__init__.py +0 -0
  68. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/secrets_api/__init__.py +0 -0
  69. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/security_api_workspace/__init__.py +0 -0
  70. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/storage_datasource_api/__init__.py +0 -0
  71. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/storage_deletion_api/__init__.py +0 -0
  72. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/storage_series_api/__init__.py +0 -0
  73. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/storage_writer_api/__init__.py +0 -0
  74. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/themes_api/__init__.py +0 -0
  75. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_channelmetadata/__init__.py +0 -0
  76. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_channelmetadata_api/__init__.py +0 -0
  77. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_logicalseries/__init__.py +0 -0
  78. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_logicalseries_api/__init__.py +0 -0
  79. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_metadata/__init__.py +0 -0
  80. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_metadata_api/__init__.py +0 -0
  81. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_seriescache/__init__.py +0 -0
  82. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/timeseries_seriescache_api/__init__.py +0 -0
  83. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/upload_api/__init__.py +0 -0
  84. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api/usercreation_api/__init__.py +0 -0
  85. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api.egg-info/SOURCES.txt +0 -0
  86. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api.egg-info/dependency_links.txt +0 -0
  87. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api.egg-info/requires.txt +0 -0
  88. {nominal_api-0.981.0 → nominal_api-0.989.0}/nominal_api.egg-info/top_level.txt +0 -0
  89. {nominal_api-0.981.0 → nominal_api-0.989.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.981.0
3
+ Version: 0.989.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.981.0"
85
+ __version__ = "0.989.0"
86
86
 
@@ -18942,7 +18942,7 @@ a RunNotFound error will be thrown.
18942
18942
  _decoder = ConjureDecoder()
18943
18943
  return _decoder.decode(_response.json(), scout_notebook_api_Notebook, self._return_none_for_unknown_union_types)
18944
18944
 
18945
- def get(self, auth_header: str, rid: str) -> "scout_notebook_api_Notebook":
18945
+ def get(self, auth_header: str, rid: str, snapshot: Optional[str] = None) -> "scout_notebook_api_Notebook":
18946
18946
  _conjure_encoder = ConjureEncoder()
18947
18947
 
18948
18948
  _headers: Dict[str, Any] = {
@@ -18951,6 +18951,7 @@ a RunNotFound error will be thrown.
18951
18951
  }
18952
18952
 
18953
18953
  _params: Dict[str, Any] = {
18954
+ 'snapshot': _conjure_encoder.default(snapshot),
18954
18955
  }
18955
18956
 
18956
18957
  _path_params: Dict[str, str] = {
@@ -31948,6 +31949,103 @@ scout_chartdefinition_api_StalenessVisualisationVisitor.__qualname__ = "Stalenes
31948
31949
  scout_chartdefinition_api_StalenessVisualisationVisitor.__module__ = "nominal_api.scout_chartdefinition_api"
31949
31950
 
31950
31951
 
31952
+ class scout_chartdefinition_api_StructCellConfig(ConjureBeanType):
31953
+
31954
+ @builtins.classmethod
31955
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
31956
+ return {
31957
+ 'visualisation': ConjureFieldDefinition('visualisation', OptionalTypeWrapper[scout_chartdefinition_api_StructVisualisation])
31958
+ }
31959
+
31960
+ __slots__: List[str] = ['_visualisation']
31961
+
31962
+ def __init__(self, visualisation: Optional["scout_chartdefinition_api_StructVisualisation"] = None) -> None:
31963
+ self._visualisation = visualisation
31964
+
31965
+ @builtins.property
31966
+ def visualisation(self) -> Optional["scout_chartdefinition_api_StructVisualisation"]:
31967
+ return self._visualisation
31968
+
31969
+
31970
+ scout_chartdefinition_api_StructCellConfig.__name__ = "StructCellConfig"
31971
+ scout_chartdefinition_api_StructCellConfig.__qualname__ = "StructCellConfig"
31972
+ scout_chartdefinition_api_StructCellConfig.__module__ = "nominal_api.scout_chartdefinition_api"
31973
+
31974
+
31975
+ class scout_chartdefinition_api_StructRawVisualisation(ConjureBeanType):
31976
+ """A raw struct visualisation (renders the JSON as-is)
31977
+ """
31978
+
31979
+ @builtins.classmethod
31980
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
31981
+ return {
31982
+ }
31983
+
31984
+ __slots__: List[str] = []
31985
+
31986
+
31987
+
31988
+ scout_chartdefinition_api_StructRawVisualisation.__name__ = "StructRawVisualisation"
31989
+ scout_chartdefinition_api_StructRawVisualisation.__qualname__ = "StructRawVisualisation"
31990
+ scout_chartdefinition_api_StructRawVisualisation.__module__ = "nominal_api.scout_chartdefinition_api"
31991
+
31992
+
31993
+ class scout_chartdefinition_api_StructVisualisation(ConjureUnionType):
31994
+ _raw: Optional["scout_chartdefinition_api_StructRawVisualisation"] = None
31995
+
31996
+ @builtins.classmethod
31997
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
31998
+ return {
31999
+ 'raw': ConjureFieldDefinition('raw', scout_chartdefinition_api_StructRawVisualisation)
32000
+ }
32001
+
32002
+ def __init__(
32003
+ self,
32004
+ raw: Optional["scout_chartdefinition_api_StructRawVisualisation"] = None,
32005
+ type_of_union: Optional[str] = None
32006
+ ) -> None:
32007
+ if type_of_union is None:
32008
+ if (raw is not None) != 1:
32009
+ raise ValueError('a union must contain a single member')
32010
+
32011
+ if raw is not None:
32012
+ self._raw = raw
32013
+ self._type = 'raw'
32014
+
32015
+ elif type_of_union == 'raw':
32016
+ if raw is None:
32017
+ raise ValueError('a union value must not be None')
32018
+ self._raw = raw
32019
+ self._type = 'raw'
32020
+
32021
+ @builtins.property
32022
+ def raw(self) -> Optional["scout_chartdefinition_api_StructRawVisualisation"]:
32023
+ return self._raw
32024
+
32025
+ def accept(self, visitor) -> Any:
32026
+ if not isinstance(visitor, scout_chartdefinition_api_StructVisualisationVisitor):
32027
+ raise ValueError('{} is not an instance of scout_chartdefinition_api_StructVisualisationVisitor'.format(visitor.__class__.__name__))
32028
+ if self._type == 'raw' and self.raw is not None:
32029
+ return visitor._raw(self.raw)
32030
+
32031
+
32032
+ scout_chartdefinition_api_StructVisualisation.__name__ = "StructVisualisation"
32033
+ scout_chartdefinition_api_StructVisualisation.__qualname__ = "StructVisualisation"
32034
+ scout_chartdefinition_api_StructVisualisation.__module__ = "nominal_api.scout_chartdefinition_api"
32035
+
32036
+
32037
+ class scout_chartdefinition_api_StructVisualisationVisitor:
32038
+
32039
+ @abstractmethod
32040
+ def _raw(self, raw: "scout_chartdefinition_api_StructRawVisualisation") -> Any:
32041
+ pass
32042
+
32043
+
32044
+ scout_chartdefinition_api_StructVisualisationVisitor.__name__ = "StructVisualisationVisitor"
32045
+ scout_chartdefinition_api_StructVisualisationVisitor.__qualname__ = "StructVisualisationVisitor"
32046
+ scout_chartdefinition_api_StructVisualisationVisitor.__module__ = "nominal_api.scout_chartdefinition_api"
32047
+
32048
+
31951
32049
  class scout_chartdefinition_api_Threshold(ConjureBeanType):
31952
32050
 
31953
32051
  @builtins.classmethod
@@ -39344,6 +39442,7 @@ class scout_comparisonnotebook_api_AggregationType(ConjureUnionType):
39344
39442
  _mean: Optional["scout_comparisonnotebook_api_Mean"] = None
39345
39443
  _standard_deviation: Optional["scout_comparisonnotebook_api_StandardDeviation"] = None
39346
39444
  _count: Optional["scout_comparisonnotebook_api_Count"] = None
39445
+ _root_mean_square: Optional["scout_comparisonnotebook_api_RootMeanSquare"] = None
39347
39446
 
39348
39447
  @builtins.classmethod
39349
39448
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -39352,7 +39451,8 @@ class scout_comparisonnotebook_api_AggregationType(ConjureUnionType):
39352
39451
  'min': ConjureFieldDefinition('min', scout_comparisonnotebook_api_Min),
39353
39452
  'mean': ConjureFieldDefinition('mean', scout_comparisonnotebook_api_Mean),
39354
39453
  'standard_deviation': ConjureFieldDefinition('standardDeviation', scout_comparisonnotebook_api_StandardDeviation),
39355
- 'count': ConjureFieldDefinition('count', scout_comparisonnotebook_api_Count)
39454
+ 'count': ConjureFieldDefinition('count', scout_comparisonnotebook_api_Count),
39455
+ 'root_mean_square': ConjureFieldDefinition('rootMeanSquare', scout_comparisonnotebook_api_RootMeanSquare)
39356
39456
  }
39357
39457
 
39358
39458
  def __init__(
@@ -39362,10 +39462,11 @@ class scout_comparisonnotebook_api_AggregationType(ConjureUnionType):
39362
39462
  mean: Optional["scout_comparisonnotebook_api_Mean"] = None,
39363
39463
  standard_deviation: Optional["scout_comparisonnotebook_api_StandardDeviation"] = None,
39364
39464
  count: Optional["scout_comparisonnotebook_api_Count"] = None,
39465
+ root_mean_square: Optional["scout_comparisonnotebook_api_RootMeanSquare"] = None,
39365
39466
  type_of_union: Optional[str] = None
39366
39467
  ) -> None:
39367
39468
  if type_of_union is None:
39368
- if (max is not None) + (min is not None) + (mean is not None) + (standard_deviation is not None) + (count is not None) != 1:
39469
+ if (max is not None) + (min is not None) + (mean is not None) + (standard_deviation is not None) + (count is not None) + (root_mean_square is not None) != 1:
39369
39470
  raise ValueError('a union must contain a single member')
39370
39471
 
39371
39472
  if max is not None:
@@ -39383,6 +39484,9 @@ class scout_comparisonnotebook_api_AggregationType(ConjureUnionType):
39383
39484
  if count is not None:
39384
39485
  self._count = count
39385
39486
  self._type = 'count'
39487
+ if root_mean_square is not None:
39488
+ self._root_mean_square = root_mean_square
39489
+ self._type = 'rootMeanSquare'
39386
39490
 
39387
39491
  elif type_of_union == 'max':
39388
39492
  if max is None:
@@ -39409,6 +39513,11 @@ class scout_comparisonnotebook_api_AggregationType(ConjureUnionType):
39409
39513
  raise ValueError('a union value must not be None')
39410
39514
  self._count = count
39411
39515
  self._type = 'count'
39516
+ elif type_of_union == 'rootMeanSquare':
39517
+ if root_mean_square is None:
39518
+ raise ValueError('a union value must not be None')
39519
+ self._root_mean_square = root_mean_square
39520
+ self._type = 'rootMeanSquare'
39412
39521
 
39413
39522
  @builtins.property
39414
39523
  def max(self) -> Optional["scout_comparisonnotebook_api_Max"]:
@@ -39430,6 +39539,10 @@ class scout_comparisonnotebook_api_AggregationType(ConjureUnionType):
39430
39539
  def count(self) -> Optional["scout_comparisonnotebook_api_Count"]:
39431
39540
  return self._count
39432
39541
 
39542
+ @builtins.property
39543
+ def root_mean_square(self) -> Optional["scout_comparisonnotebook_api_RootMeanSquare"]:
39544
+ return self._root_mean_square
39545
+
39433
39546
  def accept(self, visitor) -> Any:
39434
39547
  if not isinstance(visitor, scout_comparisonnotebook_api_AggregationTypeVisitor):
39435
39548
  raise ValueError('{} is not an instance of scout_comparisonnotebook_api_AggregationTypeVisitor'.format(visitor.__class__.__name__))
@@ -39443,6 +39556,8 @@ class scout_comparisonnotebook_api_AggregationType(ConjureUnionType):
39443
39556
  return visitor._standard_deviation(self.standard_deviation)
39444
39557
  if self._type == 'count' and self.count is not None:
39445
39558
  return visitor._count(self.count)
39559
+ if self._type == 'rootMeanSquare' and self.root_mean_square is not None:
39560
+ return visitor._root_mean_square(self.root_mean_square)
39446
39561
 
39447
39562
 
39448
39563
  scout_comparisonnotebook_api_AggregationType.__name__ = "AggregationType"
@@ -39472,6 +39587,10 @@ class scout_comparisonnotebook_api_AggregationTypeVisitor:
39472
39587
  def _count(self, count: "scout_comparisonnotebook_api_Count") -> Any:
39473
39588
  pass
39474
39589
 
39590
+ @abstractmethod
39591
+ def _root_mean_square(self, root_mean_square: "scout_comparisonnotebook_api_RootMeanSquare") -> Any:
39592
+ pass
39593
+
39475
39594
 
39476
39595
  scout_comparisonnotebook_api_AggregationTypeVisitor.__name__ = "AggregationTypeVisitor"
39477
39596
  scout_comparisonnotebook_api_AggregationTypeVisitor.__qualname__ = "AggregationTypeVisitor"
@@ -40533,6 +40652,22 @@ scout_comparisonnotebook_api_RangeAggregationDefinition.__qualname__ = "RangeAgg
40533
40652
  scout_comparisonnotebook_api_RangeAggregationDefinition.__module__ = "nominal_api.scout_comparisonnotebook_api"
40534
40653
 
40535
40654
 
40655
+ class scout_comparisonnotebook_api_RootMeanSquare(ConjureBeanType):
40656
+
40657
+ @builtins.classmethod
40658
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
40659
+ return {
40660
+ }
40661
+
40662
+ __slots__: List[str] = []
40663
+
40664
+
40665
+
40666
+ scout_comparisonnotebook_api_RootMeanSquare.__name__ = "RootMeanSquare"
40667
+ scout_comparisonnotebook_api_RootMeanSquare.__qualname__ = "RootMeanSquare"
40668
+ scout_comparisonnotebook_api_RootMeanSquare.__module__ = "nominal_api.scout_comparisonnotebook_api"
40669
+
40670
+
40536
40671
  class scout_comparisonnotebook_api_ScatterPlotValueAxes(ConjureBeanType):
40537
40672
  """specifies the axes configurations for a given x and y axis.
40538
40673
  """
@@ -47820,6 +47955,38 @@ scout_compute_api_ExponentialResultDetails.__qualname__ = "ExponentialResultDeta
47820
47955
  scout_compute_api_ExponentialResultDetails.__module__ = "nominal_api.scout_compute_api"
47821
47956
 
47822
47957
 
47958
+ class scout_compute_api_ExtractStructFromStructSeries(ConjureBeanType):
47959
+
47960
+ @builtins.classmethod
47961
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
47962
+ return {
47963
+ 'input': ConjureFieldDefinition('input', scout_compute_api_StructSeries),
47964
+ 'field_path': ConjureFieldDefinition('fieldPath', scout_compute_api_StringConstant)
47965
+ }
47966
+
47967
+ __slots__: List[str] = ['_input', '_field_path']
47968
+
47969
+ def __init__(self, field_path: "scout_compute_api_StringConstant", input: "scout_compute_api_StructSeries") -> None:
47970
+ self._input = input
47971
+ self._field_path = field_path
47972
+
47973
+ @builtins.property
47974
+ def input(self) -> "scout_compute_api_StructSeries":
47975
+ return self._input
47976
+
47977
+ @builtins.property
47978
+ def field_path(self) -> "scout_compute_api_StringConstant":
47979
+ """Path to the field to extract as a struct. Nested fields are separated by periods and field names cannot contain periods.
47980
+ Returns an empty struct if the path is invalid or does not resolve to a valid JSON struct.
47981
+ """
47982
+ return self._field_path
47983
+
47984
+
47985
+ scout_compute_api_ExtractStructFromStructSeries.__name__ = "ExtractStructFromStructSeries"
47986
+ scout_compute_api_ExtractStructFromStructSeries.__qualname__ = "ExtractStructFromStructSeries"
47987
+ scout_compute_api_ExtractStructFromStructSeries.__module__ = "nominal_api.scout_compute_api"
47988
+
47989
+
47823
47990
  class scout_compute_api_Fft(ConjureBeanType):
47824
47991
  """Returns the single sided amplitude spectrum of the input series.
47825
47992
  """
@@ -55637,13 +55804,15 @@ class scout_compute_api_StructSeries(ConjureUnionType):
55637
55804
  _channel: Optional["scout_compute_api_ChannelSeries"] = None
55638
55805
  _raw: Optional["scout_compute_api_Reference"] = None
55639
55806
  _derived: Optional["scout_compute_api_DerivedSeries"] = None
55807
+ _extract_from_struct: Optional["scout_compute_api_ExtractStructFromStructSeries"] = None
55640
55808
 
55641
55809
  @builtins.classmethod
55642
55810
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
55643
55811
  return {
55644
55812
  'channel': ConjureFieldDefinition('channel', scout_compute_api_ChannelSeries),
55645
55813
  'raw': ConjureFieldDefinition('raw', scout_compute_api_Reference),
55646
- 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries)
55814
+ 'derived': ConjureFieldDefinition('derived', scout_compute_api_DerivedSeries),
55815
+ 'extract_from_struct': ConjureFieldDefinition('extractFromStruct', scout_compute_api_ExtractStructFromStructSeries)
55647
55816
  }
55648
55817
 
55649
55818
  def __init__(
@@ -55651,10 +55820,11 @@ class scout_compute_api_StructSeries(ConjureUnionType):
55651
55820
  channel: Optional["scout_compute_api_ChannelSeries"] = None,
55652
55821
  raw: Optional["scout_compute_api_Reference"] = None,
55653
55822
  derived: Optional["scout_compute_api_DerivedSeries"] = None,
55823
+ extract_from_struct: Optional["scout_compute_api_ExtractStructFromStructSeries"] = None,
55654
55824
  type_of_union: Optional[str] = None
55655
55825
  ) -> None:
55656
55826
  if type_of_union is None:
55657
- if (channel is not None) + (raw is not None) + (derived is not None) != 1:
55827
+ if (channel is not None) + (raw is not None) + (derived is not None) + (extract_from_struct is not None) != 1:
55658
55828
  raise ValueError('a union must contain a single member')
55659
55829
 
55660
55830
  if channel is not None:
@@ -55666,6 +55836,9 @@ class scout_compute_api_StructSeries(ConjureUnionType):
55666
55836
  if derived is not None:
55667
55837
  self._derived = derived
55668
55838
  self._type = 'derived'
55839
+ if extract_from_struct is not None:
55840
+ self._extract_from_struct = extract_from_struct
55841
+ self._type = 'extractFromStruct'
55669
55842
 
55670
55843
  elif type_of_union == 'channel':
55671
55844
  if channel is None:
@@ -55682,6 +55855,11 @@ class scout_compute_api_StructSeries(ConjureUnionType):
55682
55855
  raise ValueError('a union value must not be None')
55683
55856
  self._derived = derived
55684
55857
  self._type = 'derived'
55858
+ elif type_of_union == 'extractFromStruct':
55859
+ if extract_from_struct is None:
55860
+ raise ValueError('a union value must not be None')
55861
+ self._extract_from_struct = extract_from_struct
55862
+ self._type = 'extractFromStruct'
55685
55863
 
55686
55864
  @builtins.property
55687
55865
  def channel(self) -> Optional["scout_compute_api_ChannelSeries"]:
@@ -55695,6 +55873,10 @@ class scout_compute_api_StructSeries(ConjureUnionType):
55695
55873
  def derived(self) -> Optional["scout_compute_api_DerivedSeries"]:
55696
55874
  return self._derived
55697
55875
 
55876
+ @builtins.property
55877
+ def extract_from_struct(self) -> Optional["scout_compute_api_ExtractStructFromStructSeries"]:
55878
+ return self._extract_from_struct
55879
+
55698
55880
  def accept(self, visitor) -> Any:
55699
55881
  if not isinstance(visitor, scout_compute_api_StructSeriesVisitor):
55700
55882
  raise ValueError('{} is not an instance of scout_compute_api_StructSeriesVisitor'.format(visitor.__class__.__name__))
@@ -55704,6 +55886,8 @@ class scout_compute_api_StructSeries(ConjureUnionType):
55704
55886
  return visitor._raw(self.raw)
55705
55887
  if self._type == 'derived' and self.derived is not None:
55706
55888
  return visitor._derived(self.derived)
55889
+ if self._type == 'extractFromStruct' and self.extract_from_struct is not None:
55890
+ return visitor._extract_from_struct(self.extract_from_struct)
55707
55891
 
55708
55892
 
55709
55893
  scout_compute_api_StructSeries.__name__ = "StructSeries"
@@ -55725,6 +55909,10 @@ class scout_compute_api_StructSeriesVisitor:
55725
55909
  def _derived(self, derived: "scout_compute_api_DerivedSeries") -> Any:
55726
55910
  pass
55727
55911
 
55912
+ @abstractmethod
55913
+ def _extract_from_struct(self, extract_from_struct: "scout_compute_api_ExtractStructFromStructSeries") -> Any:
55914
+ pass
55915
+
55728
55916
 
55729
55917
  scout_compute_api_StructSeriesVisitor.__name__ = "StructSeriesVisitor"
55730
55918
  scout_compute_api_StructSeriesVisitor.__qualname__ = "StructSeriesVisitor"
@@ -61328,6 +61516,35 @@ scout_compute_resolved_api_ExponentialCurve.__qualname__ = "ExponentialCurve"
61328
61516
  scout_compute_resolved_api_ExponentialCurve.__module__ = "nominal_api.scout_compute_resolved_api"
61329
61517
 
61330
61518
 
61519
+ class scout_compute_resolved_api_ExtractStructFromStructSeriesNode(ConjureBeanType):
61520
+
61521
+ @builtins.classmethod
61522
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
61523
+ return {
61524
+ 'input': ConjureFieldDefinition('input', scout_compute_resolved_api_StructSeriesNode),
61525
+ 'field_path': ConjureFieldDefinition('fieldPath', str)
61526
+ }
61527
+
61528
+ __slots__: List[str] = ['_input', '_field_path']
61529
+
61530
+ def __init__(self, field_path: str, input: "scout_compute_resolved_api_StructSeriesNode") -> None:
61531
+ self._input = input
61532
+ self._field_path = field_path
61533
+
61534
+ @builtins.property
61535
+ def input(self) -> "scout_compute_resolved_api_StructSeriesNode":
61536
+ return self._input
61537
+
61538
+ @builtins.property
61539
+ def field_path(self) -> str:
61540
+ return self._field_path
61541
+
61542
+
61543
+ scout_compute_resolved_api_ExtractStructFromStructSeriesNode.__name__ = "ExtractStructFromStructSeriesNode"
61544
+ scout_compute_resolved_api_ExtractStructFromStructSeriesNode.__qualname__ = "ExtractStructFromStructSeriesNode"
61545
+ scout_compute_resolved_api_ExtractStructFromStructSeriesNode.__module__ = "nominal_api.scout_compute_resolved_api"
61546
+
61547
+
61331
61548
  class scout_compute_resolved_api_ExtremaRangesNode(ConjureBeanType):
61332
61549
 
61333
61550
  @builtins.classmethod
@@ -65920,41 +66137,58 @@ scout_compute_resolved_api_StorageLocatorVisitor.__module__ = "nominal_api.scout
65920
66137
 
65921
66138
  class scout_compute_resolved_api_StructSeriesNode(ConjureUnionType):
65922
66139
  _raw: Optional["scout_compute_resolved_api_ResolvedSeries"] = None
66140
+ _extract_from_struct: Optional["scout_compute_resolved_api_ExtractStructFromStructSeriesNode"] = None
65923
66141
 
65924
66142
  @builtins.classmethod
65925
66143
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
65926
66144
  return {
65927
- 'raw': ConjureFieldDefinition('raw', scout_compute_resolved_api_ResolvedSeries)
66145
+ 'raw': ConjureFieldDefinition('raw', scout_compute_resolved_api_ResolvedSeries),
66146
+ 'extract_from_struct': ConjureFieldDefinition('extractFromStruct', scout_compute_resolved_api_ExtractStructFromStructSeriesNode)
65928
66147
  }
65929
66148
 
65930
66149
  def __init__(
65931
66150
  self,
65932
66151
  raw: Optional["scout_compute_resolved_api_ResolvedSeries"] = None,
66152
+ extract_from_struct: Optional["scout_compute_resolved_api_ExtractStructFromStructSeriesNode"] = None,
65933
66153
  type_of_union: Optional[str] = None
65934
66154
  ) -> None:
65935
66155
  if type_of_union is None:
65936
- if (raw is not None) != 1:
66156
+ if (raw is not None) + (extract_from_struct is not None) != 1:
65937
66157
  raise ValueError('a union must contain a single member')
65938
66158
 
65939
66159
  if raw is not None:
65940
66160
  self._raw = raw
65941
66161
  self._type = 'raw'
66162
+ if extract_from_struct is not None:
66163
+ self._extract_from_struct = extract_from_struct
66164
+ self._type = 'extractFromStruct'
65942
66165
 
65943
66166
  elif type_of_union == 'raw':
65944
66167
  if raw is None:
65945
66168
  raise ValueError('a union value must not be None')
65946
66169
  self._raw = raw
65947
66170
  self._type = 'raw'
66171
+ elif type_of_union == 'extractFromStruct':
66172
+ if extract_from_struct is None:
66173
+ raise ValueError('a union value must not be None')
66174
+ self._extract_from_struct = extract_from_struct
66175
+ self._type = 'extractFromStruct'
65948
66176
 
65949
66177
  @builtins.property
65950
66178
  def raw(self) -> Optional["scout_compute_resolved_api_ResolvedSeries"]:
65951
66179
  return self._raw
65952
66180
 
66181
+ @builtins.property
66182
+ def extract_from_struct(self) -> Optional["scout_compute_resolved_api_ExtractStructFromStructSeriesNode"]:
66183
+ return self._extract_from_struct
66184
+
65953
66185
  def accept(self, visitor) -> Any:
65954
66186
  if not isinstance(visitor, scout_compute_resolved_api_StructSeriesNodeVisitor):
65955
66187
  raise ValueError('{} is not an instance of scout_compute_resolved_api_StructSeriesNodeVisitor'.format(visitor.__class__.__name__))
65956
66188
  if self._type == 'raw' and self.raw is not None:
65957
66189
  return visitor._raw(self.raw)
66190
+ if self._type == 'extractFromStruct' and self.extract_from_struct is not None:
66191
+ return visitor._extract_from_struct(self.extract_from_struct)
65958
66192
 
65959
66193
 
65960
66194
  scout_compute_resolved_api_StructSeriesNode.__name__ = "StructSeriesNode"
@@ -65968,6 +66202,10 @@ class scout_compute_resolved_api_StructSeriesNodeVisitor:
65968
66202
  def _raw(self, raw: "scout_compute_resolved_api_ResolvedSeries") -> Any:
65969
66203
  pass
65970
66204
 
66205
+ @abstractmethod
66206
+ def _extract_from_struct(self, extract_from_struct: "scout_compute_resolved_api_ExtractStructFromStructSeriesNode") -> Any:
66207
+ pass
66208
+
65971
66209
 
65972
66210
  scout_compute_resolved_api_StructSeriesNodeVisitor.__name__ = "StructSeriesNodeVisitor"
65973
66211
  scout_compute_resolved_api_StructSeriesNodeVisitor.__qualname__ = "StructSeriesNodeVisitor"
@@ -81642,6 +81880,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81642
81880
  _end_time_inclusive: Optional["scout_run_api_UtcTimestamp"] = None
81643
81881
  _end_time: Optional["scout_run_api_TimeframeFilter"] = None
81644
81882
  _time_range: Optional["scout_run_api_TimeRangeFilter"] = None
81883
+ _created_at: Optional["scout_run_api_TimeframeFilter"] = None
81645
81884
  _exact_match: Optional[str] = None
81646
81885
  _search_text: Optional[str] = None
81647
81886
  _asset: Optional[str] = None
@@ -81671,6 +81910,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81671
81910
  'end_time_inclusive': ConjureFieldDefinition('endTimeInclusive', scout_run_api_UtcTimestamp),
81672
81911
  'end_time': ConjureFieldDefinition('endTime', scout_run_api_TimeframeFilter),
81673
81912
  'time_range': ConjureFieldDefinition('timeRange', scout_run_api_TimeRangeFilter),
81913
+ 'created_at': ConjureFieldDefinition('createdAt', scout_run_api_TimeframeFilter),
81674
81914
  'exact_match': ConjureFieldDefinition('exactMatch', str),
81675
81915
  'search_text': ConjureFieldDefinition('searchText', str),
81676
81916
  'asset': ConjureFieldDefinition('asset', scout_rids_api_AssetRid),
@@ -81700,6 +81940,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81700
81940
  end_time_inclusive: Optional["scout_run_api_UtcTimestamp"] = None,
81701
81941
  end_time: Optional["scout_run_api_TimeframeFilter"] = None,
81702
81942
  time_range: Optional["scout_run_api_TimeRangeFilter"] = None,
81943
+ created_at: Optional["scout_run_api_TimeframeFilter"] = None,
81703
81944
  exact_match: Optional[str] = None,
81704
81945
  search_text: Optional[str] = None,
81705
81946
  asset: Optional[str] = None,
@@ -81723,7 +81964,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81723
81964
  type_of_union: Optional[str] = None
81724
81965
  ) -> None:
81725
81966
  if type_of_union is None:
81726
- if (start_time_inclusive is not None) + (start_time is not None) + (end_time_inclusive is not None) + (end_time is not None) + (time_range is not None) + (exact_match is not None) + (search_text is not None) + (asset is not None) + (assets is not None) + (is_single_asset is not None) + (label is not None) + (labels is not None) + (property is not None) + (properties is not None) + (data_source_series_tag is not None) + (data_source_ref_name is not None) + (data_source is not None) + (run_number is not None) + (run_prefix is not None) + (check_alert_states_filter is not None) + (archived is not None) + (and_ is not None) + (or_ is not None) + (not_ is not None) + (workspace is not None) != 1:
81967
+ if (start_time_inclusive is not None) + (start_time is not None) + (end_time_inclusive is not None) + (end_time is not None) + (time_range is not None) + (created_at is not None) + (exact_match is not None) + (search_text is not None) + (asset is not None) + (assets is not None) + (is_single_asset is not None) + (label is not None) + (labels is not None) + (property is not None) + (properties is not None) + (data_source_series_tag is not None) + (data_source_ref_name is not None) + (data_source is not None) + (run_number is not None) + (run_prefix is not None) + (check_alert_states_filter is not None) + (archived is not None) + (and_ is not None) + (or_ is not None) + (not_ is not None) + (workspace is not None) != 1:
81727
81968
  raise ValueError('a union must contain a single member')
81728
81969
 
81729
81970
  if start_time_inclusive is not None:
@@ -81741,6 +81982,9 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81741
81982
  if time_range is not None:
81742
81983
  self._time_range = time_range
81743
81984
  self._type = 'timeRange'
81985
+ if created_at is not None:
81986
+ self._created_at = created_at
81987
+ self._type = 'createdAt'
81744
81988
  if exact_match is not None:
81745
81989
  self._exact_match = exact_match
81746
81990
  self._type = 'exactMatch'
@@ -81827,6 +82071,11 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81827
82071
  raise ValueError('a union value must not be None')
81828
82072
  self._time_range = time_range
81829
82073
  self._type = 'timeRange'
82074
+ elif type_of_union == 'createdAt':
82075
+ if created_at is None:
82076
+ raise ValueError('a union value must not be None')
82077
+ self._created_at = created_at
82078
+ self._type = 'createdAt'
81830
82079
  elif type_of_union == 'exactMatch':
81831
82080
  if exact_match is None:
81832
82081
  raise ValueError('a union value must not be None')
@@ -81948,6 +82197,10 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81948
82197
  def time_range(self) -> Optional["scout_run_api_TimeRangeFilter"]:
81949
82198
  return self._time_range
81950
82199
 
82200
+ @builtins.property
82201
+ def created_at(self) -> Optional["scout_run_api_TimeframeFilter"]:
82202
+ return self._created_at
82203
+
81951
82204
  @builtins.property
81952
82205
  def exact_match(self) -> Optional[str]:
81953
82206
  """Performs case insensitive exact substring match search on the title.
@@ -82047,6 +82300,8 @@ class scout_run_api_SearchQuery(ConjureUnionType):
82047
82300
  return visitor._end_time(self.end_time)
82048
82301
  if self._type == 'timeRange' and self.time_range is not None:
82049
82302
  return visitor._time_range(self.time_range)
82303
+ if self._type == 'createdAt' and self.created_at is not None:
82304
+ return visitor._created_at(self.created_at)
82050
82305
  if self._type == 'exactMatch' and self.exact_match is not None:
82051
82306
  return visitor._exact_match(self.exact_match)
82052
82307
  if self._type == 'searchText' and self.search_text is not None:
@@ -82116,6 +82371,10 @@ class scout_run_api_SearchQueryVisitor:
82116
82371
  def _time_range(self, time_range: "scout_run_api_TimeRangeFilter") -> Any:
82117
82372
  pass
82118
82373
 
82374
+ @abstractmethod
82375
+ def _created_at(self, created_at: "scout_run_api_TimeframeFilter") -> Any:
82376
+ pass
82377
+
82119
82378
  @abstractmethod
82120
82379
  def _exact_match(self, exact_match: str) -> Any:
82121
82380
  pass
@@ -86987,6 +87246,40 @@ at the segment-level.
86987
87246
  _decoder = ConjureDecoder()
86988
87247
  return _decoder.decode(_response.json(), scout_video_api_CreateSegmentsResponse, self._return_none_for_unknown_union_types)
86989
87248
 
87249
+ def create_video_stream_segments(self, auth_header: str, request: "scout_video_api_CreateSegmentsRequest", stream_uuid: str, video_rid: str) -> "scout_video_api_CreateSegmentsResponse":
87250
+ """Creates segments for a video stream. Similar to createVideoFileSegments but for streaming video.
87251
+ """
87252
+ _conjure_encoder = ConjureEncoder()
87253
+
87254
+ _headers: Dict[str, Any] = {
87255
+ 'Accept': 'application/json',
87256
+ 'Content-Type': 'application/json',
87257
+ 'Authorization': auth_header,
87258
+ }
87259
+
87260
+ _params: Dict[str, Any] = {
87261
+ }
87262
+
87263
+ _path_params: Dict[str, str] = {
87264
+ 'videoRid': quote(str(_conjure_encoder.default(video_rid)), safe=''),
87265
+ 'streamUuid': quote(str(_conjure_encoder.default(stream_uuid)), safe=''),
87266
+ }
87267
+
87268
+ _json: Any = _conjure_encoder.default(request)
87269
+
87270
+ _path = '/video/v1/videos/{videoRid}/streams/{streamUuid}/create-segments'
87271
+ _path = _path.format(**_path_params)
87272
+
87273
+ _response: Response = self._request(
87274
+ 'POST',
87275
+ self._uri + _path,
87276
+ params=_params,
87277
+ headers=_headers,
87278
+ json=_json)
87279
+
87280
+ _decoder = ConjureDecoder()
87281
+ return _decoder.decode(_response.json(), scout_video_api_CreateSegmentsResponse, self._return_none_for_unknown_union_types)
87282
+
86990
87283
  def get_segment_by_timestamp(self, auth_header: str, request: "scout_video_api_GetSegmentByTimestampRequest", video_rid: str) -> Optional["scout_video_api_Segment"]:
86991
87284
  """Returns metadata for the segment within a video containing the requested absolute timestamp.
86992
87285
  """
@@ -87617,7 +87910,7 @@ Enforces read permission on the video.
87617
87910
  _decoder = ConjureDecoder()
87618
87911
  return None if _response.status_code == 204 else _decoder.decode(_response.json(), OptionalTypeWrapper[scout_video_api_GenerateWhepStreamResponse], self._return_none_for_unknown_union_types)
87619
87912
 
87620
- def upload_segment_from_media_mtx(self, auth_header: str, body: Any, content_length: int, duration: str, path: str) -> None:
87913
+ def upload_segment_from_media_mtx(self, auth_header: str, body: Any, content_length: int, duration: str, file_path: str, stream_path: str) -> None:
87621
87914
  """MediaMTX segment upload endpoint. Receives video segments from MediaMTX hooks.
87622
87915
  Validates JWT and logs session. Future: create video segments from uploaded files.
87623
87916
  """
@@ -87631,7 +87924,8 @@ Validates JWT and logs session. Future: create video segments from uploaded file
87631
87924
  }
87632
87925
 
87633
87926
  _params: Dict[str, Any] = {
87634
- 'path': _conjure_encoder.default(path),
87927
+ 'streamPath': _conjure_encoder.default(stream_path),
87928
+ 'filePath': _conjure_encoder.default(file_path),
87635
87929
  'duration': _conjure_encoder.default(duration),
87636
87930
  }
87637
87931
 
@@ -93496,7 +93790,7 @@ message WriteRequestNominal {
93496
93790
  message Series {
93497
93791
  Channel channel = 1;
93498
93792
  map<string, string> tags = 2; // Key-value pairs for series tags
93499
- Points points = 3; // Contains either double or string points
93793
+ Points points = 3; // Contains double, string, integer, or array points
93500
93794
  }
93501
93795
 
93502
93796
  message Channel {
@@ -93508,6 +93802,7 @@ message Points {
93508
93802
  DoublePoints double_points = 1;
93509
93803
  StringPoints string_points = 2;
93510
93804
  IntegerPoints integer_points = 3;
93805
+ ArrayPoints array_points = 4;
93511
93806
  }
93512
93807
  }
93513
93808
 
@@ -93523,6 +93818,21 @@ message IntegerPoints {
93523
93818
  repeated IntegerPoint points = 1;
93524
93819
  }
93525
93820
 
93821
+ message ArrayPoints {
93822
+ oneof array_type {
93823
+ DoubleArrayPoints double_array_points = 1;
93824
+ StringArrayPoints string_array_points = 2;
93825
+ }
93826
+ }
93827
+
93828
+ message DoubleArrayPoints {
93829
+ repeated DoubleArrayPoint points = 1;
93830
+ }
93831
+
93832
+ message StringArrayPoints {
93833
+ repeated StringArrayPoint points = 1;
93834
+ }
93835
+
93526
93836
  message DoublePoint {
93527
93837
  google.protobuf.Timestamp timestamp = 1;
93528
93838
  double value = 2;
@@ -93537,13 +93847,24 @@ message IntegerPoint {
93537
93847
  google.protobuf.Timestamp timestamp = 1;
93538
93848
  int64 value = 2;
93539
93849
  }
93850
+
93851
+ message DoubleArrayPoint {
93852
+ google.protobuf.Timestamp timestamp = 1;
93853
+ repeated double value = 2;
93854
+ }
93855
+
93856
+ message StringArrayPoint {
93857
+ google.protobuf.Timestamp timestamp = 1;
93858
+ repeated string value = 2;
93859
+ }
93540
93860
  ```
93541
93861
 
93542
93862
  Each request can contain multiple series, where each series consists of:
93543
93863
  - A channel name
93544
93864
  - A map of tags (key-value pairs)
93545
- - A collection of points, which can be either double or string values
93865
+ - A collection of points, which can be double, string, integer, or array (double/string) values
93546
93866
  - Each point includes a timestamp (using google.protobuf.Timestamp) and its value
93867
+ - Array points contain repeated values (array<double> or array<string>)
93547
93868
 
93548
93869
  The endpoint requires the Content-Type header to be set to "application/x-protobuf".
93549
93870
  If the payload is compressed, the appropriate Content-Encoding header must be included.
@@ -93783,13 +94104,15 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93783
94104
  _string: Optional[List["storage_writer_api_StringPoint"]] = None
93784
94105
  _double: Optional[List["storage_writer_api_DoublePoint"]] = None
93785
94106
  _int_: Optional[List["storage_writer_api_IntPoint"]] = None
94107
+ _array: Optional["storage_writer_api_ArrayPoints"] = None
93786
94108
 
93787
94109
  @builtins.classmethod
93788
94110
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
93789
94111
  return {
93790
94112
  'string': ConjureFieldDefinition('string', List[storage_writer_api_StringPoint]),
93791
94113
  'double': ConjureFieldDefinition('double', List[storage_writer_api_DoublePoint]),
93792
- 'int_': ConjureFieldDefinition('int', List[storage_writer_api_IntPoint])
94114
+ 'int_': ConjureFieldDefinition('int', List[storage_writer_api_IntPoint]),
94115
+ 'array': ConjureFieldDefinition('array', storage_writer_api_ArrayPoints)
93793
94116
  }
93794
94117
 
93795
94118
  def __init__(
@@ -93797,10 +94120,11 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93797
94120
  string: Optional[List["storage_writer_api_StringPoint"]] = None,
93798
94121
  double: Optional[List["storage_writer_api_DoublePoint"]] = None,
93799
94122
  int_: Optional[List["storage_writer_api_IntPoint"]] = None,
94123
+ array: Optional["storage_writer_api_ArrayPoints"] = None,
93800
94124
  type_of_union: Optional[str] = None
93801
94125
  ) -> None:
93802
94126
  if type_of_union is None:
93803
- if (string is not None) + (double is not None) + (int_ is not None) != 1:
94127
+ if (string is not None) + (double is not None) + (int_ is not None) + (array is not None) != 1:
93804
94128
  raise ValueError('a union must contain a single member')
93805
94129
 
93806
94130
  if string is not None:
@@ -93812,6 +94136,9 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93812
94136
  if int_ is not None:
93813
94137
  self._int_ = int_
93814
94138
  self._type = 'int'
94139
+ if array is not None:
94140
+ self._array = array
94141
+ self._type = 'array'
93815
94142
 
93816
94143
  elif type_of_union == 'string':
93817
94144
  if string is None:
@@ -93828,6 +94155,11 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93828
94155
  raise ValueError('a union value must not be None')
93829
94156
  self._int_ = int_
93830
94157
  self._type = 'int'
94158
+ elif type_of_union == 'array':
94159
+ if array is None:
94160
+ raise ValueError('a union value must not be None')
94161
+ self._array = array
94162
+ self._type = 'array'
93831
94163
 
93832
94164
  @builtins.property
93833
94165
  def string(self) -> Optional[List["storage_writer_api_StringPoint"]]:
@@ -93841,6 +94173,10 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93841
94173
  def int_(self) -> Optional[List["storage_writer_api_IntPoint"]]:
93842
94174
  return self._int_
93843
94175
 
94176
+ @builtins.property
94177
+ def array(self) -> Optional["storage_writer_api_ArrayPoints"]:
94178
+ return self._array
94179
+
93844
94180
  def accept(self, visitor) -> Any:
93845
94181
  if not isinstance(visitor, storage_writer_api_PointsExternalVisitor):
93846
94182
  raise ValueError('{} is not an instance of storage_writer_api_PointsExternalVisitor'.format(visitor.__class__.__name__))
@@ -93850,6 +94186,8 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93850
94186
  return visitor._double(self.double)
93851
94187
  if self._type == 'int' and self.int_ is not None:
93852
94188
  return visitor._int(self.int_)
94189
+ if self._type == 'array' and self.array is not None:
94190
+ return visitor._array(self.array)
93853
94191
 
93854
94192
 
93855
94193
  storage_writer_api_PointsExternal.__name__ = "PointsExternal"
@@ -93871,6 +94209,10 @@ class storage_writer_api_PointsExternalVisitor:
93871
94209
  def _int(self, int_: List["storage_writer_api_IntPoint"]) -> Any:
93872
94210
  pass
93873
94211
 
94212
+ @abstractmethod
94213
+ def _array(self, array: "storage_writer_api_ArrayPoints") -> Any:
94214
+ pass
94215
+
93874
94216
 
93875
94217
  storage_writer_api_PointsExternalVisitor.__name__ = "PointsExternalVisitor"
93876
94218
  storage_writer_api_PointsExternalVisitor.__qualname__ = "PointsExternalVisitor"
@@ -148,6 +148,10 @@ from .._impl import (
148
148
  scout_chartdefinition_api_StalenessConfiguration as StalenessConfiguration,
149
149
  scout_chartdefinition_api_StalenessVisualisation as StalenessVisualisation,
150
150
  scout_chartdefinition_api_StalenessVisualisationVisitor as StalenessVisualisationVisitor,
151
+ scout_chartdefinition_api_StructCellConfig as StructCellConfig,
152
+ scout_chartdefinition_api_StructRawVisualisation as StructRawVisualisation,
153
+ scout_chartdefinition_api_StructVisualisation as StructVisualisation,
154
+ scout_chartdefinition_api_StructVisualisationVisitor as StructVisualisationVisitor,
151
155
  scout_chartdefinition_api_Threshold as Threshold,
152
156
  scout_chartdefinition_api_ThresholdDisconnectedValues as ThresholdDisconnectedValues,
153
157
  scout_chartdefinition_api_ThresholdLatch as ThresholdLatch,
@@ -346,6 +350,10 @@ __all__ = [
346
350
  'StalenessConfiguration',
347
351
  'StalenessVisualisation',
348
352
  'StalenessVisualisationVisitor',
353
+ 'StructCellConfig',
354
+ 'StructRawVisualisation',
355
+ 'StructVisualisation',
356
+ 'StructVisualisationVisitor',
349
357
  'Threshold',
350
358
  'ThresholdDisconnectedValues',
351
359
  'ThresholdLatch',
@@ -38,6 +38,7 @@ from .._impl import (
38
38
  scout_comparisonnotebook_api_Min as Min,
39
39
  scout_comparisonnotebook_api_RangeAggregationContext as RangeAggregationContext,
40
40
  scout_comparisonnotebook_api_RangeAggregationDefinition as RangeAggregationDefinition,
41
+ scout_comparisonnotebook_api_RootMeanSquare as RootMeanSquare,
41
42
  scout_comparisonnotebook_api_ScatterPlotValueAxes as ScatterPlotValueAxes,
42
43
  scout_comparisonnotebook_api_StandardDeviation as StandardDeviation,
43
44
  scout_comparisonnotebook_api_SupplementalComparisonWorkbookContext as SupplementalComparisonWorkbookContext,
@@ -92,6 +93,7 @@ __all__ = [
92
93
  'Min',
93
94
  'RangeAggregationContext',
94
95
  'RangeAggregationDefinition',
96
+ 'RootMeanSquare',
95
97
  'ScatterPlotValueAxes',
96
98
  'StandardDeviation',
97
99
  'SupplementalComparisonWorkbookContext',
@@ -145,6 +145,7 @@ from .._impl import (
145
145
  scout_compute_api_ExcludeNegativeValues as ExcludeNegativeValues,
146
146
  scout_compute_api_ExponentialCurve as ExponentialCurve,
147
147
  scout_compute_api_ExponentialResultDetails as ExponentialResultDetails,
148
+ scout_compute_api_ExtractStructFromStructSeries as ExtractStructFromStructSeries,
148
149
  scout_compute_api_Fft as Fft,
149
150
  scout_compute_api_FftWindow as FftWindow,
150
151
  scout_compute_api_FilterByExpressionSeries as FilterByExpressionSeries,
@@ -529,6 +530,7 @@ __all__ = [
529
530
  'ExcludeNegativeValues',
530
531
  'ExponentialCurve',
531
532
  'ExponentialResultDetails',
533
+ 'ExtractStructFromStructSeries',
532
534
  'Fft',
533
535
  'FftWindow',
534
536
  'FilterByExpressionSeries',
@@ -44,6 +44,7 @@ from .._impl import (
44
44
  scout_compute_resolved_api_EnumUnionSeriesNode as EnumUnionSeriesNode,
45
45
  scout_compute_resolved_api_EventSearchNode as EventSearchNode,
46
46
  scout_compute_resolved_api_ExponentialCurve as ExponentialCurve,
47
+ scout_compute_resolved_api_ExtractStructFromStructSeriesNode as ExtractStructFromStructSeriesNode,
47
48
  scout_compute_resolved_api_ExtremaRangesNode as ExtremaRangesNode,
48
49
  scout_compute_resolved_api_FftNode as FftNode,
49
50
  scout_compute_resolved_api_FilterByExpressionSeriesNode as FilterByExpressionSeriesNode,
@@ -213,6 +214,7 @@ __all__ = [
213
214
  'EnumUnionSeriesNode',
214
215
  'EventSearchNode',
215
216
  'ExponentialCurve',
217
+ 'ExtractStructFromStructSeriesNode',
216
218
  'ExtremaRangesNode',
217
219
  'FftNode',
218
220
  'FilterByExpressionSeriesNode',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.981.0
3
+ Version: 0.989.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.981.0',
9
+ version='0.989.0',
10
10
  python_requires='>=3.8',
11
11
  package_data={"": ["py.typed"]},
12
12
  packages=find_packages(),
File without changes