nominal-api 0.981.0__tar.gz → 0.983.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.983.0}/PKG-INFO +1 -1
  2. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/__init__.py +1 -1
  3. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/_impl.py +77 -7
  4. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api.egg-info/PKG-INFO +1 -1
  5. {nominal_api-0.981.0 → nominal_api-0.983.0}/setup.py +1 -1
  6. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/api/__init__.py +0 -0
  7. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/api_ids/__init__.py +0 -0
  8. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/api_rids/__init__.py +0 -0
  9. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/attachments_api/__init__.py +0 -0
  10. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/authentication_api/__init__.py +0 -0
  11. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/authorization/__init__.py +0 -0
  12. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/comments_api/__init__.py +0 -0
  13. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/connect_download/__init__.py +0 -0
  14. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/datasource/__init__.py +0 -0
  15. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/datasource_api/__init__.py +0 -0
  16. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/datasource_logset/__init__.py +0 -0
  17. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/datasource_logset_api/__init__.py +0 -0
  18. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/datasource_pagination_api/__init__.py +0 -0
  19. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/event/__init__.py +0 -0
  20. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/ingest_api/__init__.py +0 -0
  21. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/ingest_manifest/__init__.py +0 -0
  22. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/ingest_workflow_api/__init__.py +0 -0
  23. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/module/__init__.py +0 -0
  24. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/module_internal/__init__.py +0 -0
  25. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/modules_api/__init__.py +0 -0
  26. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/persistent_compute_api/__init__.py +0 -0
  27. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/py.typed +0 -0
  28. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout/__init__.py +0 -0
  29. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_api/__init__.py +0 -0
  30. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_asset_api/__init__.py +0 -0
  31. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_assets/__init__.py +0 -0
  32. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_catalog/__init__.py +0 -0
  33. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_channelvariables_api/__init__.py +0 -0
  34. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_chart_api/__init__.py +0 -0
  35. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_chartdefinition_api/__init__.py +0 -0
  36. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_checklistexecution_api/__init__.py +0 -0
  37. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_checks_api/__init__.py +0 -0
  38. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_comparisonnotebook_api/__init__.py +0 -0
  39. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_comparisonrun_api/__init__.py +0 -0
  40. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_compute_api/__init__.py +0 -0
  41. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_compute_api_deprecated/__init__.py +0 -0
  42. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_compute_resolved_api/__init__.py +0 -0
  43. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_dataexport_api/__init__.py +0 -0
  44. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_datareview_api/__init__.py +0 -0
  45. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_datasource/__init__.py +0 -0
  46. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_datasource_connection/__init__.py +0 -0
  47. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_datasource_connection_api/__init__.py +0 -0
  48. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_datasource_connection_api_influx/__init__.py +0 -0
  49. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_favorites/__init__.py +0 -0
  50. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_favorites_api/__init__.py +0 -0
  51. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_integrations_api/__init__.py +0 -0
  52. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_internal_search_api/__init__.py +0 -0
  53. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_jobs_api/__init__.py +0 -0
  54. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_layout_api/__init__.py +0 -0
  55. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_metadata/__init__.py +0 -0
  56. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_notebook_api/__init__.py +0 -0
  57. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_plotting/__init__.py +0 -0
  58. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_rids_api/__init__.py +0 -0
  59. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_run_api/__init__.py +0 -0
  60. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_savedviews/__init__.py +0 -0
  61. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_savedviews_api/__init__.py +0 -0
  62. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_template_api/__init__.py +0 -0
  63. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_units_api/__init__.py +0 -0
  64. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_versioning_api/__init__.py +0 -0
  65. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_video/__init__.py +0 -0
  66. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_video_api/__init__.py +0 -0
  67. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/scout_workbookcommon_api/__init__.py +0 -0
  68. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/secrets_api/__init__.py +0 -0
  69. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/security_api_workspace/__init__.py +0 -0
  70. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/storage_datasource_api/__init__.py +0 -0
  71. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/storage_deletion_api/__init__.py +0 -0
  72. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/storage_series_api/__init__.py +0 -0
  73. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/storage_writer_api/__init__.py +0 -0
  74. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/themes_api/__init__.py +0 -0
  75. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_channelmetadata/__init__.py +0 -0
  76. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_channelmetadata_api/__init__.py +0 -0
  77. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_logicalseries/__init__.py +0 -0
  78. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_logicalseries_api/__init__.py +0 -0
  79. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_metadata/__init__.py +0 -0
  80. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_metadata_api/__init__.py +0 -0
  81. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_seriescache/__init__.py +0 -0
  82. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/timeseries_seriescache_api/__init__.py +0 -0
  83. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/upload_api/__init__.py +0 -0
  84. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api/usercreation_api/__init__.py +0 -0
  85. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api.egg-info/SOURCES.txt +0 -0
  86. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api.egg-info/dependency_links.txt +0 -0
  87. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api.egg-info/requires.txt +0 -0
  88. {nominal_api-0.981.0 → nominal_api-0.983.0}/nominal_api.egg-info/top_level.txt +0 -0
  89. {nominal_api-0.981.0 → nominal_api-0.983.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.983.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.983.0"
86
86
 
@@ -81642,6 +81642,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81642
81642
  _end_time_inclusive: Optional["scout_run_api_UtcTimestamp"] = None
81643
81643
  _end_time: Optional["scout_run_api_TimeframeFilter"] = None
81644
81644
  _time_range: Optional["scout_run_api_TimeRangeFilter"] = None
81645
+ _created_at: Optional["scout_run_api_TimeframeFilter"] = None
81645
81646
  _exact_match: Optional[str] = None
81646
81647
  _search_text: Optional[str] = None
81647
81648
  _asset: Optional[str] = None
@@ -81671,6 +81672,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81671
81672
  'end_time_inclusive': ConjureFieldDefinition('endTimeInclusive', scout_run_api_UtcTimestamp),
81672
81673
  'end_time': ConjureFieldDefinition('endTime', scout_run_api_TimeframeFilter),
81673
81674
  'time_range': ConjureFieldDefinition('timeRange', scout_run_api_TimeRangeFilter),
81675
+ 'created_at': ConjureFieldDefinition('createdAt', scout_run_api_TimeframeFilter),
81674
81676
  'exact_match': ConjureFieldDefinition('exactMatch', str),
81675
81677
  'search_text': ConjureFieldDefinition('searchText', str),
81676
81678
  'asset': ConjureFieldDefinition('asset', scout_rids_api_AssetRid),
@@ -81700,6 +81702,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81700
81702
  end_time_inclusive: Optional["scout_run_api_UtcTimestamp"] = None,
81701
81703
  end_time: Optional["scout_run_api_TimeframeFilter"] = None,
81702
81704
  time_range: Optional["scout_run_api_TimeRangeFilter"] = None,
81705
+ created_at: Optional["scout_run_api_TimeframeFilter"] = None,
81703
81706
  exact_match: Optional[str] = None,
81704
81707
  search_text: Optional[str] = None,
81705
81708
  asset: Optional[str] = None,
@@ -81723,7 +81726,7 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81723
81726
  type_of_union: Optional[str] = None
81724
81727
  ) -> None:
81725
81728
  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:
81729
+ 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
81730
  raise ValueError('a union must contain a single member')
81728
81731
 
81729
81732
  if start_time_inclusive is not None:
@@ -81741,6 +81744,9 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81741
81744
  if time_range is not None:
81742
81745
  self._time_range = time_range
81743
81746
  self._type = 'timeRange'
81747
+ if created_at is not None:
81748
+ self._created_at = created_at
81749
+ self._type = 'createdAt'
81744
81750
  if exact_match is not None:
81745
81751
  self._exact_match = exact_match
81746
81752
  self._type = 'exactMatch'
@@ -81827,6 +81833,11 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81827
81833
  raise ValueError('a union value must not be None')
81828
81834
  self._time_range = time_range
81829
81835
  self._type = 'timeRange'
81836
+ elif type_of_union == 'createdAt':
81837
+ if created_at is None:
81838
+ raise ValueError('a union value must not be None')
81839
+ self._created_at = created_at
81840
+ self._type = 'createdAt'
81830
81841
  elif type_of_union == 'exactMatch':
81831
81842
  if exact_match is None:
81832
81843
  raise ValueError('a union value must not be None')
@@ -81948,6 +81959,10 @@ class scout_run_api_SearchQuery(ConjureUnionType):
81948
81959
  def time_range(self) -> Optional["scout_run_api_TimeRangeFilter"]:
81949
81960
  return self._time_range
81950
81961
 
81962
+ @builtins.property
81963
+ def created_at(self) -> Optional["scout_run_api_TimeframeFilter"]:
81964
+ return self._created_at
81965
+
81951
81966
  @builtins.property
81952
81967
  def exact_match(self) -> Optional[str]:
81953
81968
  """Performs case insensitive exact substring match search on the title.
@@ -82047,6 +82062,8 @@ class scout_run_api_SearchQuery(ConjureUnionType):
82047
82062
  return visitor._end_time(self.end_time)
82048
82063
  if self._type == 'timeRange' and self.time_range is not None:
82049
82064
  return visitor._time_range(self.time_range)
82065
+ if self._type == 'createdAt' and self.created_at is not None:
82066
+ return visitor._created_at(self.created_at)
82050
82067
  if self._type == 'exactMatch' and self.exact_match is not None:
82051
82068
  return visitor._exact_match(self.exact_match)
82052
82069
  if self._type == 'searchText' and self.search_text is not None:
@@ -82116,6 +82133,10 @@ class scout_run_api_SearchQueryVisitor:
82116
82133
  def _time_range(self, time_range: "scout_run_api_TimeRangeFilter") -> Any:
82117
82134
  pass
82118
82135
 
82136
+ @abstractmethod
82137
+ def _created_at(self, created_at: "scout_run_api_TimeframeFilter") -> Any:
82138
+ pass
82139
+
82119
82140
  @abstractmethod
82120
82141
  def _exact_match(self, exact_match: str) -> Any:
82121
82142
  pass
@@ -87617,7 +87638,7 @@ Enforces read permission on the video.
87617
87638
  _decoder = ConjureDecoder()
87618
87639
  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
87640
 
87620
- def upload_segment_from_media_mtx(self, auth_header: str, body: Any, content_length: int, duration: str, path: str) -> None:
87641
+ 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
87642
  """MediaMTX segment upload endpoint. Receives video segments from MediaMTX hooks.
87622
87643
  Validates JWT and logs session. Future: create video segments from uploaded files.
87623
87644
  """
@@ -87631,7 +87652,8 @@ Validates JWT and logs session. Future: create video segments from uploaded file
87631
87652
  }
87632
87653
 
87633
87654
  _params: Dict[str, Any] = {
87634
- 'path': _conjure_encoder.default(path),
87655
+ 'streamPath': _conjure_encoder.default(stream_path),
87656
+ 'filePath': _conjure_encoder.default(file_path),
87635
87657
  'duration': _conjure_encoder.default(duration),
87636
87658
  }
87637
87659
 
@@ -93496,7 +93518,7 @@ message WriteRequestNominal {
93496
93518
  message Series {
93497
93519
  Channel channel = 1;
93498
93520
  map<string, string> tags = 2; // Key-value pairs for series tags
93499
- Points points = 3; // Contains either double or string points
93521
+ Points points = 3; // Contains double, string, integer, or array points
93500
93522
  }
93501
93523
 
93502
93524
  message Channel {
@@ -93508,6 +93530,7 @@ message Points {
93508
93530
  DoublePoints double_points = 1;
93509
93531
  StringPoints string_points = 2;
93510
93532
  IntegerPoints integer_points = 3;
93533
+ ArrayPoints array_points = 4;
93511
93534
  }
93512
93535
  }
93513
93536
 
@@ -93523,6 +93546,21 @@ message IntegerPoints {
93523
93546
  repeated IntegerPoint points = 1;
93524
93547
  }
93525
93548
 
93549
+ message ArrayPoints {
93550
+ oneof array_type {
93551
+ DoubleArrayPoints double_array_points = 1;
93552
+ StringArrayPoints string_array_points = 2;
93553
+ }
93554
+ }
93555
+
93556
+ message DoubleArrayPoints {
93557
+ repeated DoubleArrayPoint points = 1;
93558
+ }
93559
+
93560
+ message StringArrayPoints {
93561
+ repeated StringArrayPoint points = 1;
93562
+ }
93563
+
93526
93564
  message DoublePoint {
93527
93565
  google.protobuf.Timestamp timestamp = 1;
93528
93566
  double value = 2;
@@ -93537,13 +93575,24 @@ message IntegerPoint {
93537
93575
  google.protobuf.Timestamp timestamp = 1;
93538
93576
  int64 value = 2;
93539
93577
  }
93578
+
93579
+ message DoubleArrayPoint {
93580
+ google.protobuf.Timestamp timestamp = 1;
93581
+ repeated double value = 2;
93582
+ }
93583
+
93584
+ message StringArrayPoint {
93585
+ google.protobuf.Timestamp timestamp = 1;
93586
+ repeated string value = 2;
93587
+ }
93540
93588
  ```
93541
93589
 
93542
93590
  Each request can contain multiple series, where each series consists of:
93543
93591
  - A channel name
93544
93592
  - A map of tags (key-value pairs)
93545
- - A collection of points, which can be either double or string values
93593
+ - A collection of points, which can be double, string, integer, or array (double/string) values
93546
93594
  - Each point includes a timestamp (using google.protobuf.Timestamp) and its value
93595
+ - Array points contain repeated values (array<double> or array<string>)
93547
93596
 
93548
93597
  The endpoint requires the Content-Type header to be set to "application/x-protobuf".
93549
93598
  If the payload is compressed, the appropriate Content-Encoding header must be included.
@@ -93783,13 +93832,15 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93783
93832
  _string: Optional[List["storage_writer_api_StringPoint"]] = None
93784
93833
  _double: Optional[List["storage_writer_api_DoublePoint"]] = None
93785
93834
  _int_: Optional[List["storage_writer_api_IntPoint"]] = None
93835
+ _array: Optional["storage_writer_api_ArrayPoints"] = None
93786
93836
 
93787
93837
  @builtins.classmethod
93788
93838
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
93789
93839
  return {
93790
93840
  'string': ConjureFieldDefinition('string', List[storage_writer_api_StringPoint]),
93791
93841
  'double': ConjureFieldDefinition('double', List[storage_writer_api_DoublePoint]),
93792
- 'int_': ConjureFieldDefinition('int', List[storage_writer_api_IntPoint])
93842
+ 'int_': ConjureFieldDefinition('int', List[storage_writer_api_IntPoint]),
93843
+ 'array': ConjureFieldDefinition('array', storage_writer_api_ArrayPoints)
93793
93844
  }
93794
93845
 
93795
93846
  def __init__(
@@ -93797,10 +93848,11 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93797
93848
  string: Optional[List["storage_writer_api_StringPoint"]] = None,
93798
93849
  double: Optional[List["storage_writer_api_DoublePoint"]] = None,
93799
93850
  int_: Optional[List["storage_writer_api_IntPoint"]] = None,
93851
+ array: Optional["storage_writer_api_ArrayPoints"] = None,
93800
93852
  type_of_union: Optional[str] = None
93801
93853
  ) -> None:
93802
93854
  if type_of_union is None:
93803
- if (string is not None) + (double is not None) + (int_ is not None) != 1:
93855
+ if (string is not None) + (double is not None) + (int_ is not None) + (array is not None) != 1:
93804
93856
  raise ValueError('a union must contain a single member')
93805
93857
 
93806
93858
  if string is not None:
@@ -93812,6 +93864,9 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93812
93864
  if int_ is not None:
93813
93865
  self._int_ = int_
93814
93866
  self._type = 'int'
93867
+ if array is not None:
93868
+ self._array = array
93869
+ self._type = 'array'
93815
93870
 
93816
93871
  elif type_of_union == 'string':
93817
93872
  if string is None:
@@ -93828,6 +93883,11 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93828
93883
  raise ValueError('a union value must not be None')
93829
93884
  self._int_ = int_
93830
93885
  self._type = 'int'
93886
+ elif type_of_union == 'array':
93887
+ if array is None:
93888
+ raise ValueError('a union value must not be None')
93889
+ self._array = array
93890
+ self._type = 'array'
93831
93891
 
93832
93892
  @builtins.property
93833
93893
  def string(self) -> Optional[List["storage_writer_api_StringPoint"]]:
@@ -93841,6 +93901,10 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93841
93901
  def int_(self) -> Optional[List["storage_writer_api_IntPoint"]]:
93842
93902
  return self._int_
93843
93903
 
93904
+ @builtins.property
93905
+ def array(self) -> Optional["storage_writer_api_ArrayPoints"]:
93906
+ return self._array
93907
+
93844
93908
  def accept(self, visitor) -> Any:
93845
93909
  if not isinstance(visitor, storage_writer_api_PointsExternalVisitor):
93846
93910
  raise ValueError('{} is not an instance of storage_writer_api_PointsExternalVisitor'.format(visitor.__class__.__name__))
@@ -93850,6 +93914,8 @@ class storage_writer_api_PointsExternal(ConjureUnionType):
93850
93914
  return visitor._double(self.double)
93851
93915
  if self._type == 'int' and self.int_ is not None:
93852
93916
  return visitor._int(self.int_)
93917
+ if self._type == 'array' and self.array is not None:
93918
+ return visitor._array(self.array)
93853
93919
 
93854
93920
 
93855
93921
  storage_writer_api_PointsExternal.__name__ = "PointsExternal"
@@ -93871,6 +93937,10 @@ class storage_writer_api_PointsExternalVisitor:
93871
93937
  def _int(self, int_: List["storage_writer_api_IntPoint"]) -> Any:
93872
93938
  pass
93873
93939
 
93940
+ @abstractmethod
93941
+ def _array(self, array: "storage_writer_api_ArrayPoints") -> Any:
93942
+ pass
93943
+
93874
93944
 
93875
93945
  storage_writer_api_PointsExternalVisitor.__name__ = "PointsExternalVisitor"
93876
93946
  storage_writer_api_PointsExternalVisitor.__qualname__ = "PointsExternalVisitor"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.981.0
3
+ Version: 0.983.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.983.0',
10
10
  python_requires='>=3.8',
11
11
  package_data={"": ["py.typed"]},
12
12
  packages=find_packages(),
File without changes