nominal-api 0.597.0__tar.gz → 0.598.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.

Potentially problematic release.


This version of nominal-api might be problematic. Click here for more details.

Files changed (82) hide show
  1. {nominal_api-0.597.0 → nominal_api-0.598.0}/PKG-INFO +1 -1
  2. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/__init__.py +1 -1
  3. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/_impl.py +490 -38
  4. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_chartdefinition_api/__init__.py +1 -0
  5. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_video_api/__init__.py +8 -0
  6. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api.egg-info/PKG-INFO +1 -1
  7. {nominal_api-0.597.0 → nominal_api-0.598.0}/setup.py +1 -1
  8. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/api/__init__.py +0 -0
  9. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/api_ids/__init__.py +0 -0
  10. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/api_rids/__init__.py +0 -0
  11. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/attachments_api/__init__.py +0 -0
  12. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/authentication_api/__init__.py +0 -0
  13. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/authorization/__init__.py +0 -0
  14. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/comments_api/__init__.py +0 -0
  15. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/connect_download/__init__.py +0 -0
  16. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/datasource/__init__.py +0 -0
  17. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/datasource_api/__init__.py +0 -0
  18. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/datasource_logset/__init__.py +0 -0
  19. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/datasource_logset_api/__init__.py +0 -0
  20. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/datasource_pagination_api/__init__.py +0 -0
  21. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/event/__init__.py +0 -0
  22. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/ingest_api/__init__.py +0 -0
  23. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/persistent_compute_api/__init__.py +0 -0
  24. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/py.typed +0 -0
  25. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout/__init__.py +0 -0
  26. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_api/__init__.py +0 -0
  27. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_asset_api/__init__.py +0 -0
  28. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_assets/__init__.py +0 -0
  29. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_catalog/__init__.py +0 -0
  30. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_channelvariables_api/__init__.py +0 -0
  31. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_chart_api/__init__.py +0 -0
  32. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_checklistexecution_api/__init__.py +0 -0
  33. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_checks_api/__init__.py +0 -0
  34. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_comparisonnotebook_api/__init__.py +0 -0
  35. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_comparisonrun_api/__init__.py +0 -0
  36. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_compute_api/__init__.py +0 -0
  37. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_compute_api_deprecated/__init__.py +0 -0
  38. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_compute_representation_api/__init__.py +0 -0
  39. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_compute_resolved_api/__init__.py +0 -0
  40. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_dataexport_api/__init__.py +0 -0
  41. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_datareview_api/__init__.py +0 -0
  42. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_datasource/__init__.py +0 -0
  43. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_datasource_connection/__init__.py +0 -0
  44. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_datasource_connection_api/__init__.py +0 -0
  45. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_datasource_connection_api_influx/__init__.py +0 -0
  46. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_favorites/__init__.py +0 -0
  47. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_favorites_api/__init__.py +0 -0
  48. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_integrations_api/__init__.py +0 -0
  49. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_internal_search_api/__init__.py +0 -0
  50. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_jobs_api/__init__.py +0 -0
  51. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_layout_api/__init__.py +0 -0
  52. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_metadata/__init__.py +0 -0
  53. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_notebook_api/__init__.py +0 -0
  54. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_plotting/__init__.py +0 -0
  55. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_rids_api/__init__.py +0 -0
  56. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_run_api/__init__.py +0 -0
  57. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_template_api/__init__.py +0 -0
  58. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_units_api/__init__.py +0 -0
  59. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_versioning_api/__init__.py +0 -0
  60. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_video/__init__.py +0 -0
  61. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/scout_workbookcommon_api/__init__.py +0 -0
  62. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/secrets_api/__init__.py +0 -0
  63. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/security_api_workspace/__init__.py +0 -0
  64. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/storage_datasource_api/__init__.py +0 -0
  65. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/storage_deletion_api/__init__.py +0 -0
  66. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/storage_series_api/__init__.py +0 -0
  67. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/storage_writer_api/__init__.py +0 -0
  68. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/themes_api/__init__.py +0 -0
  69. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_archetype/__init__.py +0 -0
  70. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_archetype_api/__init__.py +0 -0
  71. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_channelmetadata/__init__.py +0 -0
  72. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_channelmetadata_api/__init__.py +0 -0
  73. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_logicalseries/__init__.py +0 -0
  74. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_logicalseries_api/__init__.py +0 -0
  75. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_seriescache/__init__.py +0 -0
  76. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/timeseries_seriescache_api/__init__.py +0 -0
  77. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api/upload_api/__init__.py +0 -0
  78. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api.egg-info/SOURCES.txt +0 -0
  79. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api.egg-info/dependency_links.txt +0 -0
  80. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api.egg-info/requires.txt +0 -0
  81. {nominal_api-0.597.0 → nominal_api-0.598.0}/nominal_api.egg-info/top_level.txt +0 -0
  82. {nominal_api-0.597.0 → nominal_api-0.598.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.597.0
3
+ Version: 0.598.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<3,>=2.8.0
@@ -75,5 +75,5 @@ __all__ = [
75
75
 
76
76
  __conjure_generator_version__ = "4.9.0"
77
77
 
78
- __version__ = "0.597.0"
78
+ __version__ = "0.598.0"
79
79
 
@@ -8422,14 +8422,16 @@ class ingest_api_JournalJsonOpts(ConjureBeanType):
8422
8422
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8423
8423
  return {
8424
8424
  'source': ConjureFieldDefinition('source', ingest_api_IngestSource),
8425
- 'target': ConjureFieldDefinition('target', ingest_api_DatasetIngestTarget)
8425
+ 'target': ConjureFieldDefinition('target', ingest_api_DatasetIngestTarget),
8426
+ 'channel': ConjureFieldDefinition('channel', OptionalTypeWrapper[api_Channel])
8426
8427
  }
8427
8428
 
8428
- __slots__: List[str] = ['_source', '_target']
8429
+ __slots__: List[str] = ['_source', '_target', '_channel']
8429
8430
 
8430
- def __init__(self, source: "ingest_api_IngestSource", target: "ingest_api_DatasetIngestTarget") -> None:
8431
+ def __init__(self, source: "ingest_api_IngestSource", target: "ingest_api_DatasetIngestTarget", channel: Optional[str] = None) -> None:
8431
8432
  self._source = source
8432
8433
  self._target = target
8434
+ self._channel = channel
8433
8435
 
8434
8436
  @builtins.property
8435
8437
  def source(self) -> "ingest_api_IngestSource":
@@ -8439,6 +8441,14 @@ class ingest_api_JournalJsonOpts(ConjureBeanType):
8439
8441
  def target(self) -> "ingest_api_DatasetIngestTarget":
8440
8442
  return self._target
8441
8443
 
8444
+ @builtins.property
8445
+ def channel(self) -> Optional[str]:
8446
+ """
8447
+ If provided, ingests logs to the given channel.
8448
+ By default, log data will be ingested to a channel named 'logs'.
8449
+ """
8450
+ return self._channel
8451
+
8442
8452
 
8443
8453
  ingest_api_JournalJsonOpts.__name__ = "JournalJsonOpts"
8444
8454
  ingest_api_JournalJsonOpts.__qualname__ = "JournalJsonOpts"
@@ -16079,12 +16089,13 @@ class scout_catalog_EnrichedDataset(ConjureBeanType):
16079
16089
  'timestamp_type': ConjureFieldDefinition('timestampType', scout_catalog_WeakTimestampType),
16080
16090
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
16081
16091
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
16082
- 'granularity': ConjureFieldDefinition('granularity', api_Granularity)
16092
+ 'granularity': ConjureFieldDefinition('granularity', api_Granularity),
16093
+ 'allow_streaming': ConjureFieldDefinition('allowStreaming', bool)
16083
16094
  }
16084
16095
 
16085
- __slots__: List[str] = ['_rid', '_uuid', '_name', '_description', '_display_name', '_metadata', '_handle', '_ingest_date', '_ingest_status', '_origin_metadata', '_last_ingest_status', '_retention_policy', '_source', '_bounds', '_timestamp_type', '_labels', '_properties', '_granularity']
16096
+ __slots__: List[str] = ['_rid', '_uuid', '_name', '_description', '_display_name', '_metadata', '_handle', '_ingest_date', '_ingest_status', '_origin_metadata', '_last_ingest_status', '_retention_policy', '_source', '_bounds', '_timestamp_type', '_labels', '_properties', '_granularity', '_allow_streaming']
16086
16097
 
16087
- def __init__(self, display_name: str, granularity: "api_Granularity", ingest_date: str, labels: List[str], last_ingest_status: "api_IngestStatusV2", name: str, origin_metadata: "scout_catalog_DatasetOriginMetadata", properties: Dict[str, str], retention_policy: "scout_catalog_RetentionPolicy", rid: str, timestamp_type: "scout_catalog_WeakTimestampType", uuid: str, bounds: Optional["scout_catalog_Bounds"] = None, description: Optional[str] = None, handle: Optional["scout_catalog_Handle"] = None, ingest_status: Optional["scout_catalog_IngestStatus"] = None, metadata: Optional[Dict[str, str]] = None, source: Optional[str] = None) -> None:
16098
+ def __init__(self, allow_streaming: bool, display_name: str, granularity: "api_Granularity", ingest_date: str, labels: List[str], last_ingest_status: "api_IngestStatusV2", name: str, origin_metadata: "scout_catalog_DatasetOriginMetadata", properties: Dict[str, str], retention_policy: "scout_catalog_RetentionPolicy", rid: str, timestamp_type: "scout_catalog_WeakTimestampType", uuid: str, bounds: Optional["scout_catalog_Bounds"] = None, description: Optional[str] = None, handle: Optional["scout_catalog_Handle"] = None, ingest_status: Optional["scout_catalog_IngestStatus"] = None, metadata: Optional[Dict[str, str]] = None, source: Optional[str] = None) -> None:
16088
16099
  self._rid = rid
16089
16100
  self._uuid = uuid
16090
16101
  self._name = name
@@ -16103,6 +16114,7 @@ class scout_catalog_EnrichedDataset(ConjureBeanType):
16103
16114
  self._labels = labels
16104
16115
  self._properties = properties
16105
16116
  self._granularity = granularity
16117
+ self._allow_streaming = allow_streaming
16106
16118
 
16107
16119
  @builtins.property
16108
16120
  def rid(self) -> str:
@@ -16176,6 +16188,10 @@ class scout_catalog_EnrichedDataset(ConjureBeanType):
16176
16188
  def granularity(self) -> "api_Granularity":
16177
16189
  return self._granularity
16178
16190
 
16191
+ @builtins.property
16192
+ def allow_streaming(self) -> bool:
16193
+ return self._allow_streaming
16194
+
16179
16195
 
16180
16196
  scout_catalog_EnrichedDataset.__name__ = "EnrichedDataset"
16181
16197
  scout_catalog_EnrichedDataset.__qualname__ = "EnrichedDataset"
@@ -17140,7 +17156,7 @@ class scout_catalog_SearchDatasetsRequest(ConjureBeanType):
17140
17156
  @builtins.property
17141
17157
  def page_size(self) -> Optional[int]:
17142
17158
  """
17143
- Defaults to 100. Will throw if larger than 1_000.
17159
+ Defaults to 100. Will throw if larger than 1000.
17144
17160
  """
17145
17161
  return self._page_size
17146
17162
 
@@ -18607,6 +18623,27 @@ scout_chartdefinition_api_GeoAdditionalVariable.__qualname__ = "GeoAdditionalVar
18607
18623
  scout_chartdefinition_api_GeoAdditionalVariable.__module__ = "nominal_api.scout_chartdefinition_api"
18608
18624
 
18609
18625
 
18626
+ class scout_chartdefinition_api_GeoBaseTileset(ConjureEnumType):
18627
+ """
18628
+ The base map style. Default STREET if unspecified.
18629
+ """
18630
+
18631
+ STREET = 'STREET'
18632
+ '''STREET'''
18633
+ SATELLITE = 'SATELLITE'
18634
+ '''SATELLITE'''
18635
+ UNKNOWN = 'UNKNOWN'
18636
+ '''UNKNOWN'''
18637
+
18638
+ def __reduce_ex__(self, proto):
18639
+ return self.__class__, (self.name,)
18640
+
18641
+
18642
+ scout_chartdefinition_api_GeoBaseTileset.__name__ = "GeoBaseTileset"
18643
+ scout_chartdefinition_api_GeoBaseTileset.__qualname__ = "GeoBaseTileset"
18644
+ scout_chartdefinition_api_GeoBaseTileset.__module__ = "nominal_api.scout_chartdefinition_api"
18645
+
18646
+
18610
18647
  class scout_chartdefinition_api_GeoCustomFeature(ConjureUnionType):
18611
18648
  """Additional static objects on the map, such as a point representing a tower"""
18612
18649
  _point: Optional["scout_chartdefinition_api_GeoPoint"] = None
@@ -18980,15 +19017,17 @@ class scout_chartdefinition_api_GeoVizDefinitionV1(ConjureBeanType):
18980
19017
  'plots': ConjureFieldDefinition('plots', List[scout_chartdefinition_api_GeoPlotFromLatLong]),
18981
19018
  'title': ConjureFieldDefinition('title', OptionalTypeWrapper[str]),
18982
19019
  'custom_features': ConjureFieldDefinition('customFeatures', List[scout_chartdefinition_api_GeoCustomFeature]),
19020
+ 'base_tileset': ConjureFieldDefinition('baseTileset', OptionalTypeWrapper[scout_chartdefinition_api_GeoBaseTileset]),
18983
19021
  'additional_tileset': ConjureFieldDefinition('additionalTileset', OptionalTypeWrapper[scout_chartdefinition_api_GeoAdditionalTileset])
18984
19022
  }
18985
19023
 
18986
- __slots__: List[str] = ['_plots', '_title', '_custom_features', '_additional_tileset']
19024
+ __slots__: List[str] = ['_plots', '_title', '_custom_features', '_base_tileset', '_additional_tileset']
18987
19025
 
18988
- def __init__(self, custom_features: List["scout_chartdefinition_api_GeoCustomFeature"], plots: List["scout_chartdefinition_api_GeoPlotFromLatLong"], additional_tileset: Optional["scout_chartdefinition_api_GeoAdditionalTileset"] = None, title: Optional[str] = None) -> None:
19026
+ def __init__(self, custom_features: List["scout_chartdefinition_api_GeoCustomFeature"], plots: List["scout_chartdefinition_api_GeoPlotFromLatLong"], additional_tileset: Optional["scout_chartdefinition_api_GeoAdditionalTileset"] = None, base_tileset: Optional["scout_chartdefinition_api_GeoBaseTileset"] = None, title: Optional[str] = None) -> None:
18989
19027
  self._plots = plots
18990
19028
  self._title = title
18991
19029
  self._custom_features = custom_features
19030
+ self._base_tileset = base_tileset
18992
19031
  self._additional_tileset = additional_tileset
18993
19032
 
18994
19033
  @builtins.property
@@ -19003,6 +19042,10 @@ class scout_chartdefinition_api_GeoVizDefinitionV1(ConjureBeanType):
19003
19042
  def custom_features(self) -> List["scout_chartdefinition_api_GeoCustomFeature"]:
19004
19043
  return self._custom_features
19005
19044
 
19045
+ @builtins.property
19046
+ def base_tileset(self) -> Optional["scout_chartdefinition_api_GeoBaseTileset"]:
19047
+ return self._base_tileset
19048
+
19006
19049
  @builtins.property
19007
19050
  def additional_tileset(self) -> Optional["scout_chartdefinition_api_GeoAdditionalTileset"]:
19008
19051
  return self._additional_tileset
@@ -64026,9 +64069,6 @@ class scout_video_VideoFileService(Service):
64026
64069
  return _decoder.decode(_response.json(), List[scout_video_api_VideoFile], self._return_none_for_unknown_union_types)
64027
64070
 
64028
64071
  def list_files_in_video(self, auth_header: str, video_rid: str) -> List["scout_video_api_VideoFile"]:
64029
- """
64030
- Returns all video files and their metadata associated with the given video RID.
64031
- """
64032
64072
 
64033
64073
  _headers: Dict[str, Any] = {
64034
64074
  'Accept': 'application/json',
@@ -64057,6 +64097,38 @@ class scout_video_VideoFileService(Service):
64057
64097
  _decoder = ConjureDecoder()
64058
64098
  return _decoder.decode(_response.json(), List[scout_video_api_VideoFile], self._return_none_for_unknown_union_types)
64059
64099
 
64100
+ def list_files_in_video_paginated(self, auth_header: str, video_rid: "scout_video_api_ListFilesInVideoRequest") -> "scout_video_api_ListFilesInVideoResponse":
64101
+ """
64102
+ Returns a paginated list of all video files and their metadata associated with the given video RID.
64103
+ """
64104
+
64105
+ _headers: Dict[str, Any] = {
64106
+ 'Accept': 'application/json',
64107
+ 'Content-Type': 'application/json',
64108
+ 'Authorization': auth_header,
64109
+ }
64110
+
64111
+ _params: Dict[str, Any] = {
64112
+ }
64113
+
64114
+ _path_params: Dict[str, Any] = {
64115
+ }
64116
+
64117
+ _json: Any = ConjureEncoder().default(video_rid)
64118
+
64119
+ _path = '/video-files/v1/video-files/list-files-in-video-paginated'
64120
+ _path = _path.format(**_path_params)
64121
+
64122
+ _response: Response = self._request(
64123
+ 'POST',
64124
+ self._uri + _path,
64125
+ params=_params,
64126
+ headers=_headers,
64127
+ json=_json)
64128
+
64129
+ _decoder = ConjureDecoder()
64130
+ return _decoder.decode(_response.json(), scout_video_api_ListFilesInVideoResponse, self._return_none_for_unknown_union_types)
64131
+
64060
64132
  def update(self, auth_header: str, request: "scout_video_api_UpdateVideoFileRequest", video_file_rid: str) -> "scout_video_api_VideoFile":
64061
64133
  """
64062
64134
  Updates the metadata for a video file associated with the given RID.
@@ -64683,6 +64755,35 @@ class scout_video_VideoService(Service):
64683
64755
  _decoder = ConjureDecoder()
64684
64756
  return _decoder.decode(_response.json(), Dict[api_rids_VideoRid, scout_video_api_DetailedIngestStatus], self._return_none_for_unknown_union_types)
64685
64757
 
64758
+ def get_enriched_ingest_status(self, auth_header: str, request: "scout_video_api_GetEnrichedVideoIngestStatusRequest") -> Optional["scout_video_api_EnrichedVideoIngestStatus"]:
64759
+
64760
+ _headers: Dict[str, Any] = {
64761
+ 'Accept': 'application/json',
64762
+ 'Content-Type': 'application/json',
64763
+ 'Authorization': auth_header,
64764
+ }
64765
+
64766
+ _params: Dict[str, Any] = {
64767
+ }
64768
+
64769
+ _path_params: Dict[str, Any] = {
64770
+ }
64771
+
64772
+ _json: Any = ConjureEncoder().default(request)
64773
+
64774
+ _path = '/video/v1/videos/enriched-ingest-status'
64775
+ _path = _path.format(**_path_params)
64776
+
64777
+ _response: Response = self._request(
64778
+ 'POST',
64779
+ self._uri + _path,
64780
+ params=_params,
64781
+ headers=_headers,
64782
+ json=_json)
64783
+
64784
+ _decoder = ConjureDecoder()
64785
+ return None if _response.status_code == 204 else _decoder.decode(_response.json(), OptionalTypeWrapper[scout_video_api_EnrichedVideoIngestStatus], self._return_none_for_unknown_union_types)
64786
+
64686
64787
  def archive(self, auth_header: str, video_rid: str) -> None:
64687
64788
  """
64688
64789
  Archives a video, which excludes it from search and hides it from being publicly visible, but does not
@@ -64814,6 +64915,78 @@ frame-timestamp mapping.
64814
64915
  _decoder = ConjureDecoder()
64815
64916
  return _decoder.decode(_response.json(), List[scout_video_api_SegmentSummary], self._return_none_for_unknown_union_types)
64816
64917
 
64918
+ def get_playlist_in_bounds(self, auth_header: str, request: "scout_video_api_GetPlaylistInBoundsRequest", video_rid: str) -> Any:
64919
+ """
64920
+ Generates an HLS playlist for a video with the given video rid to enable playback within an optional set of
64921
+ bounds. The HLS playlist will contain links to all of the segments in the video that overlap with the given
64922
+ bounds.
64923
+ playlist will be limited to the given bounds.
64924
+ """
64925
+
64926
+ _headers: Dict[str, Any] = {
64927
+ 'Accept': 'application/octet-stream',
64928
+ 'Content-Type': 'application/json',
64929
+ 'Authorization': auth_header,
64930
+ }
64931
+
64932
+ _params: Dict[str, Any] = {
64933
+ }
64934
+
64935
+ _path_params: Dict[str, Any] = {
64936
+ 'videoRid': video_rid,
64937
+ }
64938
+
64939
+ _json: Any = ConjureEncoder().default(request)
64940
+
64941
+ _path = '/video/v1/videos/{videoRid}/playlist-in-bounds'
64942
+ _path = _path.format(**_path_params)
64943
+
64944
+ _response: Response = self._request(
64945
+ 'POST',
64946
+ self._uri + _path,
64947
+ params=_params,
64948
+ headers=_headers,
64949
+ stream=True,
64950
+ json=_json)
64951
+
64952
+ _raw = _response.raw
64953
+ _raw.decode_content = True
64954
+ return _raw
64955
+
64956
+ def get_segment_summaries_in_bounds(self, auth_header: str, request: "scout_video_api_GetSegmentSummariesInBoundsRequest", video_rid: str) -> List["scout_video_api_SegmentSummary"]:
64957
+ """
64958
+ Returns the min and max absolute and media timestamps for each segment in a video that overlap with an
64959
+ optional set of bounds.
64960
+ """
64961
+
64962
+ _headers: Dict[str, Any] = {
64963
+ 'Accept': 'application/json',
64964
+ 'Content-Type': 'application/json',
64965
+ 'Authorization': auth_header,
64966
+ }
64967
+
64968
+ _params: Dict[str, Any] = {
64969
+ }
64970
+
64971
+ _path_params: Dict[str, Any] = {
64972
+ 'videoRid': video_rid,
64973
+ }
64974
+
64975
+ _json: Any = ConjureEncoder().default(request)
64976
+
64977
+ _path = '/video/v1/videos/{videoRid}/segment-summaries-in-bounds'
64978
+ _path = _path.format(**_path_params)
64979
+
64980
+ _response: Response = self._request(
64981
+ 'POST',
64982
+ self._uri + _path,
64983
+ params=_params,
64984
+ headers=_headers,
64985
+ json=_json)
64986
+
64987
+ _decoder = ConjureDecoder()
64988
+ return _decoder.decode(_response.json(), List[scout_video_api_SegmentSummary], self._return_none_for_unknown_union_types)
64989
+
64817
64990
 
64818
64991
  scout_video_VideoService.__name__ = "VideoService"
64819
64992
  scout_video_VideoService.__qualname__ = "VideoService"
@@ -64998,13 +65171,13 @@ class scout_video_api_CreateVideoRequest(ConjureBeanType):
64998
65171
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
64999
65172
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
65000
65173
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
65001
- 'origin_metadata': ConjureFieldDefinition('originMetadata', scout_video_api_VideoOriginMetadata),
65174
+ 'origin_metadata': ConjureFieldDefinition('originMetadata', OptionalTypeWrapper[scout_video_api_VideoOriginMetadata]),
65002
65175
  'workspace': ConjureFieldDefinition('workspace', OptionalTypeWrapper[api_ids_WorkspaceId])
65003
65176
  }
65004
65177
 
65005
65178
  __slots__: List[str] = ['_title', '_description', '_labels', '_properties', '_origin_metadata', '_workspace']
65006
65179
 
65007
- def __init__(self, labels: List[str], origin_metadata: "scout_video_api_VideoOriginMetadata", properties: Dict[str, str], title: str, description: Optional[str] = None, workspace: Optional[str] = None) -> None:
65180
+ def __init__(self, labels: List[str], properties: Dict[str, str], title: str, description: Optional[str] = None, origin_metadata: Optional["scout_video_api_VideoOriginMetadata"] = None, workspace: Optional[str] = None) -> None:
65008
65181
  self._title = title
65009
65182
  self._description = description
65010
65183
  self._labels = labels
@@ -65029,7 +65202,7 @@ class scout_video_api_CreateVideoRequest(ConjureBeanType):
65029
65202
  return self._properties
65030
65203
 
65031
65204
  @builtins.property
65032
- def origin_metadata(self) -> "scout_video_api_VideoOriginMetadata":
65205
+ def origin_metadata(self) -> Optional["scout_video_api_VideoOriginMetadata"]:
65033
65206
  return self._origin_metadata
65034
65207
 
65035
65208
  @builtins.property
@@ -65148,6 +65321,41 @@ scout_video_api_DetailedIngestStatusVisitor.__qualname__ = "DetailedIngestStatus
65148
65321
  scout_video_api_DetailedIngestStatusVisitor.__module__ = "nominal_api.scout_video_api"
65149
65322
 
65150
65323
 
65324
+ class scout_video_api_EnrichedVideoIngestStatus(ConjureBeanType):
65325
+
65326
+ @builtins.classmethod
65327
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
65328
+ return {
65329
+ 'status': ConjureFieldDefinition('status', scout_video_api_VideoIngestStatus),
65330
+ 'file_ingest_status': ConjureFieldDefinition('fileIngestStatus', Dict[api_rids_VideoFileRid, scout_video_api_VideoFileIngestStatus]),
65331
+ 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
65332
+ }
65333
+
65334
+ __slots__: List[str] = ['_status', '_file_ingest_status', '_next_page_token']
65335
+
65336
+ def __init__(self, file_ingest_status: Dict[str, "scout_video_api_VideoFileIngestStatus"], status: "scout_video_api_VideoIngestStatus", next_page_token: Optional[str] = None) -> None:
65337
+ self._status = status
65338
+ self._file_ingest_status = file_ingest_status
65339
+ self._next_page_token = next_page_token
65340
+
65341
+ @builtins.property
65342
+ def status(self) -> "scout_video_api_VideoIngestStatus":
65343
+ return self._status
65344
+
65345
+ @builtins.property
65346
+ def file_ingest_status(self) -> Dict[str, "scout_video_api_VideoFileIngestStatus"]:
65347
+ return self._file_ingest_status
65348
+
65349
+ @builtins.property
65350
+ def next_page_token(self) -> Optional[str]:
65351
+ return self._next_page_token
65352
+
65353
+
65354
+ scout_video_api_EnrichedVideoIngestStatus.__name__ = "EnrichedVideoIngestStatus"
65355
+ scout_video_api_EnrichedVideoIngestStatus.__qualname__ = "EnrichedVideoIngestStatus"
65356
+ scout_video_api_EnrichedVideoIngestStatus.__module__ = "nominal_api.scout_video_api"
65357
+
65358
+
65151
65359
  class scout_video_api_ErrorIngestStatus(ConjureBeanType):
65152
65360
 
65153
65361
  @builtins.classmethod
@@ -65171,6 +65379,35 @@ scout_video_api_ErrorIngestStatus.__qualname__ = "ErrorIngestStatus"
65171
65379
  scout_video_api_ErrorIngestStatus.__module__ = "nominal_api.scout_video_api"
65172
65380
 
65173
65381
 
65382
+ class scout_video_api_GetEnrichedVideoIngestStatusRequest(ConjureBeanType):
65383
+
65384
+ @builtins.classmethod
65385
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
65386
+ return {
65387
+ 'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid),
65388
+ 'token': ConjureFieldDefinition('token', OptionalTypeWrapper[api_Token])
65389
+ }
65390
+
65391
+ __slots__: List[str] = ['_video_rid', '_token']
65392
+
65393
+ def __init__(self, video_rid: str, token: Optional[str] = None) -> None:
65394
+ self._video_rid = video_rid
65395
+ self._token = token
65396
+
65397
+ @builtins.property
65398
+ def video_rid(self) -> str:
65399
+ return self._video_rid
65400
+
65401
+ @builtins.property
65402
+ def token(self) -> Optional[str]:
65403
+ return self._token
65404
+
65405
+
65406
+ scout_video_api_GetEnrichedVideoIngestStatusRequest.__name__ = "GetEnrichedVideoIngestStatusRequest"
65407
+ scout_video_api_GetEnrichedVideoIngestStatusRequest.__qualname__ = "GetEnrichedVideoIngestStatusRequest"
65408
+ scout_video_api_GetEnrichedVideoIngestStatusRequest.__module__ = "nominal_api.scout_video_api"
65409
+
65410
+
65174
65411
  class scout_video_api_GetIngestStatusResponse(ConjureBeanType):
65175
65412
 
65176
65413
  @builtins.classmethod
@@ -65194,6 +65431,29 @@ scout_video_api_GetIngestStatusResponse.__qualname__ = "GetIngestStatusResponse"
65194
65431
  scout_video_api_GetIngestStatusResponse.__module__ = "nominal_api.scout_video_api"
65195
65432
 
65196
65433
 
65434
+ class scout_video_api_GetPlaylistInBoundsRequest(ConjureBeanType):
65435
+
65436
+ @builtins.classmethod
65437
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
65438
+ return {
65439
+ 'bounds': ConjureFieldDefinition('bounds', OptionalTypeWrapper[scout_video_api_Bounds])
65440
+ }
65441
+
65442
+ __slots__: List[str] = ['_bounds']
65443
+
65444
+ def __init__(self, bounds: Optional["scout_video_api_Bounds"] = None) -> None:
65445
+ self._bounds = bounds
65446
+
65447
+ @builtins.property
65448
+ def bounds(self) -> Optional["scout_video_api_Bounds"]:
65449
+ return self._bounds
65450
+
65451
+
65452
+ scout_video_api_GetPlaylistInBoundsRequest.__name__ = "GetPlaylistInBoundsRequest"
65453
+ scout_video_api_GetPlaylistInBoundsRequest.__qualname__ = "GetPlaylistInBoundsRequest"
65454
+ scout_video_api_GetPlaylistInBoundsRequest.__module__ = "nominal_api.scout_video_api"
65455
+
65456
+
65197
65457
  class scout_video_api_GetSegmentByTimestampRequest(ConjureBeanType):
65198
65458
 
65199
65459
  @builtins.classmethod
@@ -65230,6 +65490,29 @@ scout_video_api_GetSegmentByTimestampRequest.__qualname__ = "GetSegmentByTimesta
65230
65490
  scout_video_api_GetSegmentByTimestampRequest.__module__ = "nominal_api.scout_video_api"
65231
65491
 
65232
65492
 
65493
+ class scout_video_api_GetSegmentSummariesInBoundsRequest(ConjureBeanType):
65494
+
65495
+ @builtins.classmethod
65496
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
65497
+ return {
65498
+ 'bounds': ConjureFieldDefinition('bounds', OptionalTypeWrapper[scout_video_api_Bounds])
65499
+ }
65500
+
65501
+ __slots__: List[str] = ['_bounds']
65502
+
65503
+ def __init__(self, bounds: Optional["scout_video_api_Bounds"] = None) -> None:
65504
+ self._bounds = bounds
65505
+
65506
+ @builtins.property
65507
+ def bounds(self) -> Optional["scout_video_api_Bounds"]:
65508
+ return self._bounds
65509
+
65510
+
65511
+ scout_video_api_GetSegmentSummariesInBoundsRequest.__name__ = "GetSegmentSummariesInBoundsRequest"
65512
+ scout_video_api_GetSegmentSummariesInBoundsRequest.__qualname__ = "GetSegmentSummariesInBoundsRequest"
65513
+ scout_video_api_GetSegmentSummariesInBoundsRequest.__module__ = "nominal_api.scout_video_api"
65514
+
65515
+
65233
65516
  class scout_video_api_GetVideosRequest(ConjureBeanType):
65234
65517
 
65235
65518
  @builtins.classmethod
@@ -65305,6 +65588,64 @@ scout_video_api_IngestError.__qualname__ = "IngestError"
65305
65588
  scout_video_api_IngestError.__module__ = "nominal_api.scout_video_api"
65306
65589
 
65307
65590
 
65591
+ class scout_video_api_ListFilesInVideoRequest(ConjureBeanType):
65592
+
65593
+ @builtins.classmethod
65594
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
65595
+ return {
65596
+ 'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid),
65597
+ 'token': ConjureFieldDefinition('token', OptionalTypeWrapper[api_Token])
65598
+ }
65599
+
65600
+ __slots__: List[str] = ['_video_rid', '_token']
65601
+
65602
+ def __init__(self, video_rid: str, token: Optional[str] = None) -> None:
65603
+ self._video_rid = video_rid
65604
+ self._token = token
65605
+
65606
+ @builtins.property
65607
+ def video_rid(self) -> str:
65608
+ return self._video_rid
65609
+
65610
+ @builtins.property
65611
+ def token(self) -> Optional[str]:
65612
+ return self._token
65613
+
65614
+
65615
+ scout_video_api_ListFilesInVideoRequest.__name__ = "ListFilesInVideoRequest"
65616
+ scout_video_api_ListFilesInVideoRequest.__qualname__ = "ListFilesInVideoRequest"
65617
+ scout_video_api_ListFilesInVideoRequest.__module__ = "nominal_api.scout_video_api"
65618
+
65619
+
65620
+ class scout_video_api_ListFilesInVideoResponse(ConjureBeanType):
65621
+
65622
+ @builtins.classmethod
65623
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
65624
+ return {
65625
+ 'files': ConjureFieldDefinition('files', List[scout_video_api_VideoFile]),
65626
+ 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
65627
+ }
65628
+
65629
+ __slots__: List[str] = ['_files', '_next_page_token']
65630
+
65631
+ def __init__(self, files: List["scout_video_api_VideoFile"], next_page_token: Optional[str] = None) -> None:
65632
+ self._files = files
65633
+ self._next_page_token = next_page_token
65634
+
65635
+ @builtins.property
65636
+ def files(self) -> List["scout_video_api_VideoFile"]:
65637
+ return self._files
65638
+
65639
+ @builtins.property
65640
+ def next_page_token(self) -> Optional[str]:
65641
+ return self._next_page_token
65642
+
65643
+
65644
+ scout_video_api_ListFilesInVideoResponse.__name__ = "ListFilesInVideoResponse"
65645
+ scout_video_api_ListFilesInVideoResponse.__qualname__ = "ListFilesInVideoResponse"
65646
+ scout_video_api_ListFilesInVideoResponse.__module__ = "nominal_api.scout_video_api"
65647
+
65648
+
65308
65649
  class scout_video_api_McapTimestampManifest(ConjureBeanType):
65309
65650
  """
65310
65651
  Timestamps are derived from the mcap file containing the video frames.
@@ -66100,14 +66441,20 @@ class scout_video_api_UpdateIngestStatusRequest(ConjureBeanType):
66100
66441
  @builtins.classmethod
66101
66442
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
66102
66443
  return {
66444
+ 'video': ConjureFieldDefinition('video', api_rids_VideoRid),
66103
66445
  'ingest_status': ConjureFieldDefinition('ingestStatus', scout_video_api_VideoFileIngestStatus)
66104
66446
  }
66105
66447
 
66106
- __slots__: List[str] = ['_ingest_status']
66448
+ __slots__: List[str] = ['_video', '_ingest_status']
66107
66449
 
66108
- def __init__(self, ingest_status: "scout_video_api_VideoFileIngestStatus") -> None:
66450
+ def __init__(self, ingest_status: "scout_video_api_VideoFileIngestStatus", video: str) -> None:
66451
+ self._video = video
66109
66452
  self._ingest_status = ingest_status
66110
66453
 
66454
+ @builtins.property
66455
+ def video(self) -> str:
66456
+ return self._video
66457
+
66111
66458
  @builtins.property
66112
66459
  def ingest_status(self) -> "scout_video_api_VideoFileIngestStatus":
66113
66460
  return self._ingest_status
@@ -66126,26 +66473,20 @@ class scout_video_api_UpdateVideoFileRequest(ConjureBeanType):
66126
66473
  @builtins.classmethod
66127
66474
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
66128
66475
  return {
66129
- 'video_rid': ConjureFieldDefinition('videoRid', OptionalTypeWrapper[api_rids_VideoRid]),
66130
66476
  'title': ConjureFieldDefinition('title', OptionalTypeWrapper[str]),
66131
66477
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
66132
66478
  'starting_timestamp': ConjureFieldDefinition('startingTimestamp', OptionalTypeWrapper[api_Timestamp]),
66133
66479
  'scale_parameter': ConjureFieldDefinition('scaleParameter', OptionalTypeWrapper[scout_video_api_ScaleParameter])
66134
66480
  }
66135
66481
 
66136
- __slots__: List[str] = ['_video_rid', '_title', '_description', '_starting_timestamp', '_scale_parameter']
66482
+ __slots__: List[str] = ['_title', '_description', '_starting_timestamp', '_scale_parameter']
66137
66483
 
66138
- def __init__(self, description: Optional[str] = None, scale_parameter: Optional["scout_video_api_ScaleParameter"] = None, starting_timestamp: Optional["api_Timestamp"] = None, title: Optional[str] = None, video_rid: Optional[str] = None) -> None:
66139
- self._video_rid = video_rid
66484
+ def __init__(self, description: Optional[str] = None, scale_parameter: Optional["scout_video_api_ScaleParameter"] = None, starting_timestamp: Optional["api_Timestamp"] = None, title: Optional[str] = None) -> None:
66140
66485
  self._title = title
66141
66486
  self._description = description
66142
66487
  self._starting_timestamp = starting_timestamp
66143
66488
  self._scale_parameter = scale_parameter
66144
66489
 
66145
- @builtins.property
66146
- def video_rid(self) -> Optional[str]:
66147
- return self._video_rid
66148
-
66149
66490
  @builtins.property
66150
66491
  def title(self) -> Optional[str]:
66151
66492
  return self._title
@@ -66233,13 +66574,13 @@ class scout_video_api_Video(ConjureBeanType):
66233
66574
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
66234
66575
  'created_by': ConjureFieldDefinition('createdBy', str),
66235
66576
  'created_at': ConjureFieldDefinition('createdAt', str),
66236
- 'origin_metadata': ConjureFieldDefinition('originMetadata', scout_video_api_VideoOriginMetadata),
66577
+ 'origin_metadata': ConjureFieldDefinition('originMetadata', OptionalTypeWrapper[scout_video_api_VideoOriginMetadata]),
66237
66578
  'all_segments_metadata': ConjureFieldDefinition('allSegmentsMetadata', OptionalTypeWrapper[scout_video_api_VideoAllSegmentsMetadata])
66238
66579
  }
66239
66580
 
66240
66581
  __slots__: List[str] = ['_rid', '_title', '_description', '_labels', '_properties', '_created_by', '_created_at', '_origin_metadata', '_all_segments_metadata']
66241
66582
 
66242
- def __init__(self, created_at: str, created_by: str, labels: List[str], origin_metadata: "scout_video_api_VideoOriginMetadata", properties: Dict[str, str], rid: str, title: str, all_segments_metadata: Optional["scout_video_api_VideoAllSegmentsMetadata"] = None, description: Optional[str] = None) -> None:
66583
+ def __init__(self, created_at: str, created_by: str, labels: List[str], properties: Dict[str, str], rid: str, title: str, all_segments_metadata: Optional["scout_video_api_VideoAllSegmentsMetadata"] = None, description: Optional[str] = None, origin_metadata: Optional["scout_video_api_VideoOriginMetadata"] = None) -> None:
66243
66584
  self._rid = rid
66244
66585
  self._title = title
66245
66586
  self._description = description
@@ -66279,7 +66620,7 @@ class scout_video_api_Video(ConjureBeanType):
66279
66620
  return self._created_at
66280
66621
 
66281
66622
  @builtins.property
66282
- def origin_metadata(self) -> "scout_video_api_VideoOriginMetadata":
66623
+ def origin_metadata(self) -> Optional["scout_video_api_VideoOriginMetadata"]:
66283
66624
  return self._origin_metadata
66284
66625
 
66285
66626
  @builtins.property
@@ -66300,7 +66641,7 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66300
66641
  'rid': ConjureFieldDefinition('rid', api_rids_VideoRid),
66301
66642
  'num_frames': ConjureFieldDefinition('numFrames', int),
66302
66643
  'num_segments': ConjureFieldDefinition('numSegments', int),
66303
- 'scale_factor': ConjureFieldDefinition('scaleFactor', float),
66644
+ 'scale_factor': ConjureFieldDefinition('scaleFactor', OptionalTypeWrapper[float]),
66304
66645
  'min_absolute_timestamp': ConjureFieldDefinition('minAbsoluteTimestamp', api_Timestamp),
66305
66646
  'max_absolute_timestamp': ConjureFieldDefinition('maxAbsoluteTimestamp', api_Timestamp),
66306
66647
  'media_duration_seconds': ConjureFieldDefinition('mediaDurationSeconds', float),
@@ -66313,7 +66654,7 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66313
66654
 
66314
66655
  __slots__: List[str] = ['_rid', '_num_frames', '_num_segments', '_scale_factor', '_min_absolute_timestamp', '_max_absolute_timestamp', '_media_duration_seconds', '_media_frame_rate', '_min_timestamp', '_max_timestamp', '_duration_seconds', '_frame_rate']
66315
66656
 
66316
- def __init__(self, max_absolute_timestamp: "api_Timestamp", media_duration_seconds: float, media_frame_rate: float, min_absolute_timestamp: "api_Timestamp", num_frames: int, num_segments: int, rid: str, scale_factor: float, duration_seconds: Optional[float] = None, frame_rate: Optional[float] = None, max_timestamp: Optional["api_Timestamp"] = None, min_timestamp: Optional["api_Timestamp"] = None) -> None:
66657
+ def __init__(self, max_absolute_timestamp: "api_Timestamp", media_duration_seconds: float, media_frame_rate: float, min_absolute_timestamp: "api_Timestamp", num_frames: int, num_segments: int, rid: str, duration_seconds: Optional[float] = None, frame_rate: Optional[float] = None, max_timestamp: Optional["api_Timestamp"] = None, min_timestamp: Optional["api_Timestamp"] = None, scale_factor: Optional[float] = None) -> None:
66317
66658
  self._rid = rid
66318
66659
  self._num_frames = num_frames
66319
66660
  self._num_segments = num_segments
@@ -66340,7 +66681,10 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66340
66681
  return self._num_segments
66341
66682
 
66342
66683
  @builtins.property
66343
- def scale_factor(self) -> float:
66684
+ def scale_factor(self) -> Optional[float]:
66685
+ """
66686
+ deprecated, in favor of per-file VideoFileSegmentsMetadata scaleFactor. Will be removed after April 15th.
66687
+ """
66344
66688
  return self._scale_factor
66345
66689
 
66346
66690
  @builtins.property
@@ -66368,28 +66712,28 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66368
66712
  @builtins.property
66369
66713
  def min_timestamp(self) -> Optional["api_Timestamp"]:
66370
66714
  """
66371
- deprecated
66715
+ deprecated. Will be removed after April 15th.
66372
66716
  """
66373
66717
  return self._min_timestamp
66374
66718
 
66375
66719
  @builtins.property
66376
66720
  def max_timestamp(self) -> Optional["api_Timestamp"]:
66377
66721
  """
66378
- deprecated
66722
+ deprecated. Will be removed after April 15th.
66379
66723
  """
66380
66724
  return self._max_timestamp
66381
66725
 
66382
66726
  @builtins.property
66383
66727
  def duration_seconds(self) -> Optional[float]:
66384
66728
  """
66385
- deprecated
66729
+ deprecated. Will be removed after April 15th.
66386
66730
  """
66387
66731
  return self._duration_seconds
66388
66732
 
66389
66733
  @builtins.property
66390
66734
  def frame_rate(self) -> Optional[float]:
66391
66735
  """
66392
- deprecated
66736
+ deprecated. Will be removed after April 15th.
66393
66737
  """
66394
66738
  return self._frame_rate
66395
66739
 
@@ -66768,6 +67112,104 @@ scout_video_api_VideoFileTimestampManifestVisitor.__qualname__ = "VideoFileTimes
66768
67112
  scout_video_api_VideoFileTimestampManifestVisitor.__module__ = "nominal_api.scout_video_api"
66769
67113
 
66770
67114
 
67115
+ class scout_video_api_VideoIngestStatus(ConjureUnionType):
67116
+ _ready: Optional["api_Empty"] = None
67117
+ _in_progress: Optional["api_Empty"] = None
67118
+ _error: Optional["api_Empty"] = None
67119
+
67120
+ @builtins.classmethod
67121
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
67122
+ return {
67123
+ 'ready': ConjureFieldDefinition('ready', api_Empty),
67124
+ 'in_progress': ConjureFieldDefinition('inProgress', api_Empty),
67125
+ 'error': ConjureFieldDefinition('error', api_Empty)
67126
+ }
67127
+
67128
+ def __init__(
67129
+ self,
67130
+ ready: Optional["api_Empty"] = None,
67131
+ in_progress: Optional["api_Empty"] = None,
67132
+ error: Optional["api_Empty"] = None,
67133
+ type_of_union: Optional[str] = None
67134
+ ) -> None:
67135
+ if type_of_union is None:
67136
+ if (ready is not None) + (in_progress is not None) + (error is not None) != 1:
67137
+ raise ValueError('a union must contain a single member')
67138
+
67139
+ if ready is not None:
67140
+ self._ready = ready
67141
+ self._type = 'ready'
67142
+ if in_progress is not None:
67143
+ self._in_progress = in_progress
67144
+ self._type = 'inProgress'
67145
+ if error is not None:
67146
+ self._error = error
67147
+ self._type = 'error'
67148
+
67149
+ elif type_of_union == 'ready':
67150
+ if ready is None:
67151
+ raise ValueError('a union value must not be None')
67152
+ self._ready = ready
67153
+ self._type = 'ready'
67154
+ elif type_of_union == 'inProgress':
67155
+ if in_progress is None:
67156
+ raise ValueError('a union value must not be None')
67157
+ self._in_progress = in_progress
67158
+ self._type = 'inProgress'
67159
+ elif type_of_union == 'error':
67160
+ if error is None:
67161
+ raise ValueError('a union value must not be None')
67162
+ self._error = error
67163
+ self._type = 'error'
67164
+
67165
+ @builtins.property
67166
+ def ready(self) -> Optional["api_Empty"]:
67167
+ return self._ready
67168
+
67169
+ @builtins.property
67170
+ def in_progress(self) -> Optional["api_Empty"]:
67171
+ return self._in_progress
67172
+
67173
+ @builtins.property
67174
+ def error(self) -> Optional["api_Empty"]:
67175
+ return self._error
67176
+
67177
+ def accept(self, visitor) -> Any:
67178
+ if not isinstance(visitor, scout_video_api_VideoIngestStatusVisitor):
67179
+ raise ValueError('{} is not an instance of scout_video_api_VideoIngestStatusVisitor'.format(visitor.__class__.__name__))
67180
+ if self._type == 'ready' and self.ready is not None:
67181
+ return visitor._ready(self.ready)
67182
+ if self._type == 'inProgress' and self.in_progress is not None:
67183
+ return visitor._in_progress(self.in_progress)
67184
+ if self._type == 'error' and self.error is not None:
67185
+ return visitor._error(self.error)
67186
+
67187
+
67188
+ scout_video_api_VideoIngestStatus.__name__ = "VideoIngestStatus"
67189
+ scout_video_api_VideoIngestStatus.__qualname__ = "VideoIngestStatus"
67190
+ scout_video_api_VideoIngestStatus.__module__ = "nominal_api.scout_video_api"
67191
+
67192
+
67193
+ class scout_video_api_VideoIngestStatusVisitor:
67194
+
67195
+ @abstractmethod
67196
+ def _ready(self, ready: "api_Empty") -> Any:
67197
+ pass
67198
+
67199
+ @abstractmethod
67200
+ def _in_progress(self, in_progress: "api_Empty") -> Any:
67201
+ pass
67202
+
67203
+ @abstractmethod
67204
+ def _error(self, error: "api_Empty") -> Any:
67205
+ pass
67206
+
67207
+
67208
+ scout_video_api_VideoIngestStatusVisitor.__name__ = "VideoIngestStatusVisitor"
67209
+ scout_video_api_VideoIngestStatusVisitor.__qualname__ = "VideoIngestStatusVisitor"
67210
+ scout_video_api_VideoIngestStatusVisitor.__module__ = "nominal_api.scout_video_api"
67211
+
67212
+
66771
67213
  class scout_video_api_VideoOriginMetadata(ConjureBeanType):
66772
67214
 
66773
67215
  @builtins.classmethod
@@ -69201,18 +69643,28 @@ class storage_writer_api_WriteLogsRequest(ConjureBeanType):
69201
69643
  @builtins.classmethod
69202
69644
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
69203
69645
  return {
69204
- 'logs': ConjureFieldDefinition('logs', List[storage_writer_api_LogPoint])
69646
+ 'logs': ConjureFieldDefinition('logs', List[storage_writer_api_LogPoint]),
69647
+ 'channel': ConjureFieldDefinition('channel', OptionalTypeWrapper[api_Channel])
69205
69648
  }
69206
69649
 
69207
- __slots__: List[str] = ['_logs']
69650
+ __slots__: List[str] = ['_logs', '_channel']
69208
69651
 
69209
- def __init__(self, logs: List["storage_writer_api_LogPoint"]) -> None:
69652
+ def __init__(self, logs: List["storage_writer_api_LogPoint"], channel: Optional[str] = None) -> None:
69210
69653
  self._logs = logs
69654
+ self._channel = channel
69211
69655
 
69212
69656
  @builtins.property
69213
69657
  def logs(self) -> List["storage_writer_api_LogPoint"]:
69214
69658
  return self._logs
69215
69659
 
69660
+ @builtins.property
69661
+ def channel(self) -> Optional[str]:
69662
+ """
69663
+ If provided, the channel to which to write logs.
69664
+ If not provided, defaults to "logs"
69665
+ """
69666
+ return self._channel
69667
+
69216
69668
 
69217
69669
  storage_writer_api_WriteLogsRequest.__name__ = "WriteLogsRequest"
69218
69670
  storage_writer_api_WriteLogsRequest.__qualname__ = "WriteLogsRequest"
@@ -31,6 +31,7 @@ from .._impl import (
31
31
  scout_chartdefinition_api_FrequencyPlot as FrequencyPlot,
32
32
  scout_chartdefinition_api_GeoAdditionalTileset as GeoAdditionalTileset,
33
33
  scout_chartdefinition_api_GeoAdditionalVariable as GeoAdditionalVariable,
34
+ scout_chartdefinition_api_GeoBaseTileset as GeoBaseTileset,
34
35
  scout_chartdefinition_api_GeoCustomFeature as GeoCustomFeature,
35
36
  scout_chartdefinition_api_GeoCustomFeatureVisitor as GeoCustomFeatureVisitor,
36
37
  scout_chartdefinition_api_GeoLineStyle as GeoLineStyle,
@@ -8,13 +8,19 @@ from .._impl import (
8
8
  scout_video_api_CreateVideoRequest as CreateVideoRequest,
9
9
  scout_video_api_DetailedIngestStatus as DetailedIngestStatus,
10
10
  scout_video_api_DetailedIngestStatusVisitor as DetailedIngestStatusVisitor,
11
+ scout_video_api_EnrichedVideoIngestStatus as EnrichedVideoIngestStatus,
11
12
  scout_video_api_ErrorIngestStatus as ErrorIngestStatus,
12
13
  scout_video_api_ErrorType as ErrorType,
14
+ scout_video_api_GetEnrichedVideoIngestStatusRequest as GetEnrichedVideoIngestStatusRequest,
13
15
  scout_video_api_GetIngestStatusResponse as GetIngestStatusResponse,
16
+ scout_video_api_GetPlaylistInBoundsRequest as GetPlaylistInBoundsRequest,
14
17
  scout_video_api_GetSegmentByTimestampRequest as GetSegmentByTimestampRequest,
18
+ scout_video_api_GetSegmentSummariesInBoundsRequest as GetSegmentSummariesInBoundsRequest,
15
19
  scout_video_api_GetVideosRequest as GetVideosRequest,
16
20
  scout_video_api_GetVideosResponse as GetVideosResponse,
17
21
  scout_video_api_IngestError as IngestError,
22
+ scout_video_api_ListFilesInVideoRequest as ListFilesInVideoRequest,
23
+ scout_video_api_ListFilesInVideoResponse as ListFilesInVideoResponse,
18
24
  scout_video_api_McapTimestampManifest as McapTimestampManifest,
19
25
  scout_video_api_NoTimestampManifest as NoTimestampManifest,
20
26
  scout_video_api_ScaleParameter as ScaleParameter,
@@ -45,6 +51,8 @@ from .._impl import (
45
51
  scout_video_api_VideoFileSegmentsMetadata as VideoFileSegmentsMetadata,
46
52
  scout_video_api_VideoFileTimestampManifest as VideoFileTimestampManifest,
47
53
  scout_video_api_VideoFileTimestampManifestVisitor as VideoFileTimestampManifestVisitor,
54
+ scout_video_api_VideoIngestStatus as VideoIngestStatus,
55
+ scout_video_api_VideoIngestStatusVisitor as VideoIngestStatusVisitor,
48
56
  scout_video_api_VideoOriginMetadata as VideoOriginMetadata,
49
57
  scout_video_api_VideoTimestampManifest as VideoTimestampManifest,
50
58
  scout_video_api_VideoTimestampManifestVisitor as VideoTimestampManifestVisitor,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.597.0
3
+ Version: 0.598.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<3,>=2.8.0
@@ -6,7 +6,7 @@ from setuptools import (
6
6
 
7
7
  setup(
8
8
  name='nominal-api',
9
- version='0.597.0',
9
+ version='0.598.0',
10
10
  python_requires='>=3.8',
11
11
  package_data={"": ["py.typed"]},
12
12
  packages=find_packages(),
File without changes